From 8dc8985eb32198788bef7ad21cf3f1726d840b6f Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 18 八月 2023 19:33:23 +0800
Subject: [PATCH] 111

---
 server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java |  145 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 144 insertions(+), 1 deletions(-)

diff --git a/server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java
index 9954f48..78cc8f8 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderExtServiceImpl.java
@@ -807,12 +807,14 @@
                 }
                 if(Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.create)
                 ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.material)
+                ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.producing)
                 ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.check)
                 ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.done)){
                     //缁熻宸插垎閰嶆湭鎶ュ伐鏁伴噺
                     distributeNoDoneNum += Constants.formatIntegerNum(order.getPlanNum());
                 }
                 if(Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.baogong)
+                        ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.producing)
                         || Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.instock)){
                    doneNum += Constants.formatIntegerNum(order.getUnqualifiedNum()) + Constants.formatIntegerNum(order.getQualifiedNum());
                    int tNum =Constants.formatIntegerNum(order.getUnqualifiedNum()) + Constants.formatIntegerNum(order.getQualifiedNum());
@@ -855,7 +857,7 @@
             if(!Objects.isNull(plan.getWorkPlansId())){
                 //鏇存柊涓昏鍗曟暟鎹俊鎭�
                if(plansMapper.selectCount(new QueryWrapper<Plans>()
-                        .in("STATUS",0,1,4,5)
+                        .eq("STATUS",Constants.PLAN_STATUS.done)
                         .eq("DELETED",Constants.ZERO)
                         .ne("id",p.getId())
                         .eq("WORK_PLANS_ID",plan.getWorkPlansId()))<=Constants.ZERO){
@@ -892,6 +894,147 @@
 
     }
 
+
+
+    @Override
+    @Async
+    public void statisticNumAsync(Workorder param){
+        if(param.getPlanId()== null){
+            if(param.getId()== null){
+                return;
+            }
+            Workorder wModel = new Workorder();
+            wModel.setDeleted(Constants.ZERO);
+            wModel.setId(param.getId());
+            wModel = workorderExtMapper.selectOne(wModel);
+            if(wModel== null){
+                return;
+            }
+            param.setPlanId(wModel.getPlanId());
+        }
+        Plans plan = plansExtMapper.selectById(param.getPlanId());
+        if(plan == null){
+            return;
+        }
+        JSONObject json = new JSONObject();
+        QueryWorkorderExtDTO qw = new QueryWorkorderExtDTO();
+        qw.setPlanId(param.getPlanId());
+        qw.setDeleted(Constants.ZERO);
+        //鏌ヨ鍏ㄩ儴宸ュ崟鏁版嵁
+        List<WorkorderExtListVO> orderList = workorderExtMapper.selectList(qw);
+        //宸插畬宸ユ暟閲�
+        int doneNum=0;
+        //宸插垎閰嶆暟閲�
+        //宸叉姤宸ュ伐鍗曪紙鍖呮嫭宸ュ崟鐘舵�侊細宸叉姤宸ャ�佸凡鍏ュ簱锛夌殑瀹屽伐鏁伴噺锛堝寘鎷細鍚堟牸銆佷笉鑹�佹姤搴燂級
+        //+鏈姤宸ュ伐鍗曪紙鍖呮嫭宸ュ崟鐘舵�侊細宸插垱寤恒�佸凡澶囨枡銆佸凡妫�楠屻�佸凡瀹屽伐锛夌殑宸插垎閰嶆暟閲�
+        int distributNum=0;
+        //宸插垎閰嶆湭鎶ュ伐鏁伴噺=鏈姤宸ュ伐鍗曪紙宸ュ崟鐘舵�侊細宸插垱寤恒�佸凡澶囨枡銆佸凡妫�楠屻�佸凡瀹屽伐锛夌殑璁″垝鐢熶骇鏁伴噺涔嬪拰锛�
+        int distributeNoDoneNum=0;
+        //鍚堟牸鏁伴噺=宸叉姤宸ュ伐鍗曪紙宸ュ崟鐘舵�侊細宸叉姤宸ャ�佸凡鍏ュ簱锛変骇鍑轰负鍚堟牸鐨勬暟閲忎箣鍜岋紱
+        int qulifiedNum=0;
+        //涓嶈壇鏁伴噺=宸叉姤宸ュ伐鍗曪紙宸ュ崟鐘舵�侊細宸叉姤宸ャ�佸凡鍏ュ簱锛変骇鍑轰负涓嶈壇鐨勬暟閲忎箣鍜岋紱
+        int unqulifiedNum =0;
+        int allOrderNum =0;
+        if(orderList!=null && orderList.size()>0){
+            QueryWorkorderRecordExtDTO rw = new QueryWorkorderRecordExtDTO();
+            rw.setPlanId(param.getPlanId());
+            rw.setDeleted(Constants.ZERO);
+            //鏌ヨ鍏ㄩ儴宸ュ崟浜у嚭鍜屾姇鏂欐暟鎹�
+            List<WorkorderRecordExtListVO> allRecordList = workorderRecordExtMapper.selectListNew(rw);
+            for(WorkorderExtListVO order : orderList){
+                if(Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.cancel)){
+                    //鍙栨秷鐨勫伐鍗曚笉绱鏁伴噺
+                    continue;
+                }
+                if(Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.create)
+                        ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.material)
+                        ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.producing)
+                        ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.check)
+                        ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.done)){
+                    //缁熻宸插垎閰嶆湭鎶ュ伐鏁伴噺
+                    distributeNoDoneNum += Constants.formatIntegerNum(order.getPlanNum());
+                }
+                if(Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.baogong)
+                        ||Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.producing)
+                        || Constants.equalsInteger(order.getStatus(),Constants.WORKORDER_STATUS.instock)){
+                    doneNum += Constants.formatIntegerNum(order.getUnqualifiedNum()) + Constants.formatIntegerNum(order.getQualifiedNum());
+                    int tNum =Constants.formatIntegerNum(order.getUnqualifiedNum()) + Constants.formatIntegerNum(order.getQualifiedNum());
+                    distributNum += tNum;
+                    allOrderNum += tNum;
+                }else {
+                    distributNum += Constants.formatIntegerNum(order.getPlanNum());
+                }
+
+                List<WorkorderRecordExtListVO> rList = getRecordListById(order.getId(),allRecordList);
+                if(rList!=null){
+                    for(WorkorderRecordExtListVO item : rList){
+                        if(Constants.equalsInteger(item.getType(),Constants.WORKORDER_RECORD_TYPE.produce)
+                                && item.getOmodel()!=null
+                                && (Constants.equalsInteger(item.getOmodel().getStatus() ,Constants.WORKORDER_STATUS.baogong)
+                                ||Constants.equalsInteger(item.getOmodel().getStatus() ,Constants.WORKORDER_STATUS.instock))){
+                            //濡傛灉鏄悎鏍间骇鍑猴紝绱鏁伴噺
+                            qulifiedNum += Constants.formatBigdecimal(BigDecimal.valueOf(item.getQualifiedNum())).intValue();
+                            //濡傛灉鏄笉鑹骇鍑猴紝绱鏁伴噺
+                            unqulifiedNum += Constants.formatBigdecimal(BigDecimal.valueOf(item.getUnqualifiedNum())).intValue();
+                        }
+                    }
+                }
+            }
+        }
+        json.put(Constants.STATISTIC.distributeNoDone,distributeNoDoneNum);
+        json.put(Constants.STATISTIC.done,doneNum);
+        json.put(Constants.STATISTIC.distribute,distributNum);
+        json.put(Constants.STATISTIC.qulified,qulifiedNum);
+        json.put(Constants.STATISTIC.unqulified,unqulifiedNum);
+
+        UpdateWrapper updateWrapper = new UpdateWrapper();
+        Plans p = new Plans();
+        p.setId(param.getPlanId());
+        p.setStatisticInfo(json.toJSONString());
+        p.setUpdateTime(DateUtil.getCurrentDate());
+        if( Constants.formatIntegerNum(plan.getNum())  <= allOrderNum){
+            //濡傛灉婊¤冻璁″垝宸插畬宸ワ紝鏇存柊璁″垝鐘舵��
+            p.setStatus(Constants.PLAN_STATUS.done);
+            if(!Objects.isNull(plan.getWorkPlansId())){
+                //鏇存柊涓昏鍗曟暟鎹俊鎭�
+                if(plansMapper.selectCount(new QueryWrapper<Plans>()
+                        .eq("STATUS",Constants.PLAN_STATUS.done)
+                        .eq("DELETED",Constants.ZERO)
+                        .ne("id",p.getId())
+                        .eq("WORK_PLANS_ID",plan.getWorkPlansId()))<=Constants.ZERO){
+                    WorkPlans  workPlans = workPlansExtMapper.selectById(plan.getWorkPlansId());
+                    if(!Objects.isNull(workPlans)){
+                        workPlans.setStatus(Constants.WORKPLANHISTORY_TYPE.done);
+                        workPlans.setUpdateTime(new Date());
+                        workPlansExtMapper.updateById(workPlans);
+                        planHistoryExtMapper.insert(initPlanHistoryByModel(workPlans,null,Constants.WORKPLANHISTORY_TYPE.done));
+                    }
+                };
+            }
+            //
+            plan.getWorkPlansId();
+
+            updateWrapper.set("STATUS",p.getStatus());
+            if(Constants.equalsInteger(plan.getStatus(),Constants.PLAN_STATUS.distribute)){
+                //濡傛灉宸插垎閰�
+                planHistoryExtMapper.insertBatch(Arrays.asList(PlansExtServiceImpl.initHistoryByModel(plan,null,Constants.PLANHISTORY_TYPE.done)));
+            }
+//          planHistoryService.create(PlansExtServiceImpl.initHistoryByModel(plan,null,Constants.PLANHISTORY_TYPE.done));
+        }
+        //鏇存柊缁熻淇℃伅
+//        plansExtMapper.updateById(p);
+        updateWrapper.eq("ID",param.getPlanId());
+        updateWrapper.set("STATISTIC_INFO",json.toJSONString());
+        updateWrapper.set("UPDATE_TIME",DateUtil.getCurrentDate());
+        plansExtMapper.update(null,updateWrapper);
+//        Workorder order = new Workorder();
+//        order.setUpdateTime(DateUtil.getCurrentDate());
+//        //宸插叧闂�
+//        order.setId(param.getId());
+//        workorderExtMapper.updateById(order);
+
+    }
+
     /**
      * 妫�娴嬫暟鎹湁鏁堟��
      * @param param

--
Gitblit v1.9.3