From 2837bdd57f72e386bbf9a725e7b3a13e5eb9e930 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 21 八月 2023 09:19:57 +0800
Subject: [PATCH] 修复bug

---
 server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
index 64c293b..961192c 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -92,6 +92,8 @@
     private WorkorderRecordStandardService workorderRecordStandardService;
     @Autowired
     private UnqualifiedRecordMapper unqualifiedRecordMapper;
+    @Autowired
+    private CompanyUserExtMapper companyUserExtMapper;
 
     @Override
     public  PlansExtListVO findById(Integer id){
@@ -639,7 +641,7 @@
         List<WorkorderHistory> whList = new ArrayList<>();
         Workorder order = new Workorder();
         order.setCreateTime(DateUtil.getCurrentDate());
-        order.setCreateUser(user.getId());
+        order.setCreateUser(param.getCreateUser());
         order.setDeleted(Constants.ZERO);
         order.setStatus(Constants.WORKORDER_STATUS.create);
         order.setPlanId(mp.getId());
@@ -668,9 +670,9 @@
         order.setQrcodeId(barcodeParamExtService.getByType(user.getCompany().getId(),mp.getDepartId(),Constants.BARCODEPARAM_TYPE.workorder));
         order.setProUserList(param.getProUserList());
         order.setProGroupId(param.getProGroupId());
-        //鏌ヨ鐢熶骇鐝粍鍜屼汉鍛樻槸鍚﹀悎娉�
-        checkUserAndGroup(order,mp,user);
         workorderExtMapper.insert(order);
+        //鏌ヨ鐢熶骇鐝粍鍜屼汉鍛樻槸鍚﹀悎娉�
+        checkUserAndGroupNew(order,mp,user);
         //宸ュ崟鍘嗗彶鏁版嵁
         whList.add(WorkorderExtServiceImpl.initHistoryByModel(order,user.getId(),Constants.WORKORDER_HISTORY_STATUS.create));
         workorderHistoryExtMapper.insertBatch(whList);
@@ -681,6 +683,34 @@
             workorderUserExtMapper.insert(wu);
         }
         return order;
+    }
+
+
+    private void checkUserAndGroupNew(Workorder param, PlansExtListVO  model,LoginUserInfo user) throws BusinessException{
+        QueryDeviceExtDTO ud = new QueryDeviceExtDTO();
+        ud.setDeleted(Constants.ZERO);
+        ud.setId(param.getProGroupId());
+        ud.setRootDepartId(user.getRootDepartment().getId());
+        //鏌ヨ鐢ㄦ埛璁惧鍏宠仈鍏崇郴
+        DeviceExtListVO d = deviceExtMapper.selectByModel( ud );
+        if(d == null){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鐢熶骇璁惧淇℃伅涓嶆纭紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+        }
+
+        List<WorkorderUser> userList = new ArrayList<>();
+        for(Integer userId : param.getProUserList()){
+            WorkorderUser u = new WorkorderUser();
+            u.setProUserId(userId);
+            u.setPlanId(model.getId());
+            u.setCreateUser(user.getId());
+            u.setDeleted(Constants.ZERO);
+            u.setCreateTime(DateUtil.getCurrentDate());
+            u.setRootDepartId(model.getRootDepartId());
+            u.setDepartId(model.getDepartId());
+            userList.add(u);
+        }
+        param.setWorkorderUserList(userList);
+
     }
 
     private void checkUserAndGroup(Workorder param, PlansExtListVO  model,LoginUserInfo user) throws BusinessException{
@@ -1587,6 +1617,8 @@
     public void autoWorkReport(LoginUserInfo user, AutoWorkReportDTO autoWorkReportDTO){
         if(Objects.isNull(autoWorkReportDTO)
             || Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO())
+            || Objects.isNull(autoWorkReportDTO.getProUserList())
+            || Objects.isNull(autoWorkReportDTO.getProUserList().size()==0)
             || Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum())|| autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum().compareTo(BigDecimal.ZERO) < Constants.ZERO
             || Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum())|| autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().compareTo(BigDecimal.ZERO) < Constants.ZERO){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -1614,7 +1646,7 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒锛氫骇鍑烘暟鎹�");
         }
         //宸ュ崟宸插垎閰嶆暟閲�
-        Integer produceNum = workorderList.stream().map(s -> s.getPlanNum()).reduce(Constants.ZERO, Integer::sum);
+        Integer produceNum = workorderList.stream().map(s -> s.getUnqualifiedNum() + s.getQualifiedNum()).reduce(Constants.ZERO, Integer::sum);
         Integer surplusNum = plans.getNum() - produceNum;
         if(num.compareTo(BigDecimal.valueOf(surplusNum))>0){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭褰撳墠宸ュ簭璁″垝鍙姤宸ユ暟閲�");
@@ -1622,6 +1654,8 @@
         Workorder param = new Workorder();
         param.setPlanId(autoWorkReportDTO.getPlansId());
         param.setPlanDate(new Date());
+//        CompanyUser companyUser= companyUserExtMapper.selectById(autoWorkReportDTO.getProUserList().get(Constants.ZERO));
+        param.setCreateUser(autoWorkReportDTO.getProUserList().get(Constants.ZERO));
         param.setProGroupId(autoWorkReportDTO.getProGroupId());
         param.setProUserList(autoWorkReportDTO.getProUserList());
         param.setPlanNum(num.intValue());
@@ -1638,7 +1672,7 @@
         }
         //宸ュ崟浜у嚭璁板綍
         autoWorkReportDTO.getCreateWorkorderRecordDTO().setWorkorderId(workorder.getId());
-        WorkorderRecord workorderRecord = workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user);
+        WorkorderRecord workorderRecord = workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user,autoWorkReportDTO.getProUserList().get(Constants.ZERO));
         //宸ュ崟鎶ュ伐
         workorderRecordStandardService.comfirmDone(workorder,false);
         //鏇存柊宸ュ崟鐘舵��

--
Gitblit v1.9.3