Fancy
2024-08-27 732b40515d87a1780a5986227513d507076ca5eb
fix order search
2个文件已修改
57 ■■■■ 已修改文件
pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml
@@ -107,7 +107,7 @@
            </if>
        </trim>
    </select>
    <select id="selectAll" resultType="com.dy.pmsGlobal.pojoPr.PrOrder">
    <select id="selectAll" resultMap="BaseResultMap2">
        select
        <include refid="Base_Column_List" />
        from pr_order p
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
@@ -40,6 +40,7 @@
    public void setUserUtil(UserUtil userUtil) {
        this.userUtil = userUtil;
    }
    @Transactional
    public int save(PrOrder p) {
        p.id = null;
@@ -123,25 +124,27 @@
    }
    private void changeRate(PrOrder prOrder) {
        List<PrOrderItem> items = prOrder.items;
        for (int i = 1; i < items.size(); i++) {
            for (int j = i - 1; j >= 0; j--) {
                //拿着i依次跟上一个比较,如果产品相同,则上一个记录complete_number - number 如果 > 0 分给i ,如果 < 0 则将 complete_number 置为0
                if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) {
                    int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber();
                    if (remainNumber > 0) {
                        items.get(j).setCompleteNumber(items.get(j).getNumber());
                        items.get(j).setCompleteRate("100.00%");
                        items.get(i).setCompleteNumber(remainNumber);
                        BigDecimal remainBig = new BigDecimal(remainNumber * 100);
                        BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber());
                        BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP);
                        items.get(i).setCompleteRate(result.toString() +"%");
                    }else{
                        items.get(i).setCompleteNumber(0);
                        items.get(i).setCompleteRate("0.00%");
        if (prOrder.items != null) {
            List<PrOrderItem> items = prOrder.items;
            for (int i = 1; i < items.size(); i++) {
                for (int j = i - 1; j >= 0; j--) {
                    //拿着i依次跟上一个比较,如果产品相同,则上一个记录complete_number - number 如果 > 0 分给i ,如果 < 0 则将 complete_number 置为0
                    if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) {
                        int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber();
                        if (remainNumber > 0) {
                            items.get(j).setCompleteNumber(items.get(j).getNumber());
                            items.get(j).setCompleteRate("100.00%");
                            items.get(i).setCompleteNumber(remainNumber);
                            BigDecimal remainBig = new BigDecimal(remainNumber * 100);
                            BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber());
                            BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP);
                            items.get(i).setCompleteRate(result.toString() + "%");
                        } else {
                            items.get(i).setCompleteNumber(0);
                            items.get(i).setCompleteRate("0.00%");
                        }
                        break;
                    }
                    break;
                }
            }
        }
@@ -155,27 +158,29 @@
        }
        return orderList;
    }
    /**
     * 只更新状态,不更新其他字段
     * @param order
     * 更新状态  如果有在执行中的任务,不让暂停
     *
     * @param order 更新状态  如果有在执行中的任务,不让暂停
     * @return
     */
   @Transactional
    @Transactional
    public int updateStatus(PrOrder order) {
        if(order.status == OrderStatusEnum.NORMAL.getCode()){
        if (order.status == OrderStatusEnum.NORMAL.getCode()) {
            PrOrder prOrder = orderDao.selectByPrimaryKey(order.id);
            prOrder.status = order.status;
            extractedCheck(prOrder);
        }
       PrOrder param = new PrOrder();
        param.id =order.id;
        PrOrder param = new PrOrder();
        param.id = order.id;
        param.status = order.status;
        return orderDao.updateByPrimaryKeySelective(param);
    }
    //如果交期小于当前时间,不允许设置为正常
    private void extractedCheck(PrOrder order) {
        if(order.status == OrderStatusEnum.NORMAL.getCode()){
        if (order.status == OrderStatusEnum.NORMAL.getCode()) {
            String deliveryDateStr = order.getDeliveryDate();
            LocalDate endDate = LocalDate.parse(deliveryDateStr, DateTimeFormatter.ISO_LOCAL_DATE);
            LocalDate nextDay = endDate.plusDays(1);