ezhizao_zx 4 months ago
parent
commit
0590edc783

+ 173 - 153
src/main/java/cn/ezhizao/project/business/product/controller/BizDayworkItemController.java

@@ -87,7 +87,7 @@ public class BizDayworkItemController extends BaseController {
     private IBizTurnoverService bizTurnoverService;
 
     @Resource
-    private  IBizLotService bizLotService;
+    private IBizLotService bizLotService;
 
 
     @Resource
@@ -113,6 +113,7 @@ public class BizDayworkItemController extends BaseController {
     private IBizTakeStockPeriodService bizTakeStockPeriodService;
     @Resource
     private IBizOutsourcedOrderDetailProcessService bizOutsourcedOrderDetailProcessService;
+
     /**
      * 查询报工记录列表
      */
@@ -126,9 +127,9 @@ public class BizDayworkItemController extends BaseController {
         bizDayworkItem.setUserId(user.getUserId());
         List<BizDayworkItem> list = bizDayworkItemService.getList(bizDayworkItem);
         //如果是废品回用,ProcessSequence从新表拿
-        if(bizDayworkItem.getIsAmend() ==1  ||bizDayworkItem.getIsWasteRecycling() ==1 ) {
-            BizLot bizLot = bizLotService.query().eq("id",bizDayworkItem.getLotId()).list().get(0);
-            List<BizLotTechnologicalProcessDetail> bizTechnologicalWasteRecyclingDetails = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id",bizLot.getTechnologicalProcessId()).orderByAsc("process_step_number").list();
+        if (bizDayworkItem.getIsAmend() == 1 || bizDayworkItem.getIsWasteRecycling() == 1) {
+            BizLot bizLot = bizLotService.query().eq("id", bizDayworkItem.getLotId()).list().get(0);
+            List<BizLotTechnologicalProcessDetail> bizTechnologicalWasteRecyclingDetails = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id", bizLot.getTechnologicalProcessId()).orderByAsc("process_step_number").list();
             BizLotTechnologicalProcessDetail lotTechnologicalProcessDetail = bizLotTechnologicalProcessDetailService.query().eq("id", list.get(0).getTechnologicalProcessDetailId()).one();
             BizTechnologicalProcessDetail bizTechnologicalProcessDetail = new BizTechnologicalProcessDetail();
             bizTechnologicalProcessDetail.setProcessId(lotTechnologicalProcessDetail.getProcessId());
@@ -141,7 +142,7 @@ public class BizDayworkItemController extends BaseController {
             //查询所有工段下的工序
             List<BizDeptProcess> deptProcessList = bizDeptProcessService.query().list();
             List<BizProcess> processList = new ArrayList<>();
-            for(BizLotTechnologicalProcessDetail bizTechnologicalWasteRecyclingDetail : bizTechnologicalWasteRecyclingDetails) {
+            for (BizLotTechnologicalProcessDetail bizTechnologicalWasteRecyclingDetail : bizTechnologicalWasteRecyclingDetails) {
                 BizProcess process = new BizProcess();
                 process.setId(bizTechnologicalWasteRecyclingDetail.getProcessId());
                 process.setProcessCode(bizTechnologicalWasteRecyclingDetail.getProcessCode());
@@ -151,8 +152,10 @@ public class BizDayworkItemController extends BaseController {
                 process.setDeptProcess(deptProcessList.stream().filter(deptProcess -> deptProcess.getProcessId().equals(bizTechnologicalWasteRecyclingDetail.getProcessId())).collect(Collectors.toList()));
                 processList.add(process);
             }
-            list.stream().forEach(item -> {item.setProcessSequence(processList);});
-            if(bizDayworkItem.getProcessStepNumber() != null) {
+            list.stream().forEach(item -> {
+                item.setProcessSequence(processList);
+            });
+            if (bizDayworkItem.getProcessStepNumber() != null) {
                 list.forEach(item -> {
                     item.setProcess(
                             item.getProcessSequence().stream()
@@ -188,7 +191,7 @@ public class BizDayworkItemController extends BaseController {
                 }
             }
             // 设置上一工段,周转用
-            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().lt("status", 4).eq("lot_id",item.getLotId()).eq("process_step_number", item.getProcessStepNumber()).list();
+            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().lt("status", 4).eq("lot_id", item.getLotId()).eq("process_step_number", item.getProcessStepNumber()).list();
             for (int i = 0; i < dayworkItemList.size(); i++) {
                 if (dayworkItemList.get(i).getDeptName() != null && !"".equals(dayworkItemList.get(i).getDeptName())) {
                     item.setPreDeptName(dayworkItemList.get(i).getDeptName());
@@ -203,15 +206,16 @@ public class BizDayworkItemController extends BaseController {
 
         return getDataTable(itemList);
     }
+
     @GetMapping("/assistList")
     @Log(title = "查询报工记录", businessType = BusinessType.SELECT)
     public TableDataInfo assistList(BizDayworkItem bizDayworkItem) {
         //0420
         List<BizDayworkItem> list = bizDayworkItemService.getAssistList(bizDayworkItem);
         //如果是废品回用,ProcessSequence从新表拿
-        if(bizDayworkItem.getIsAmend() ==1  ||bizDayworkItem.getIsWasteRecycling() ==1 ) {
-            BizLot bizLot = bizLotService.query().eq("id",bizDayworkItem.getLotId()).list().get(0);
-            List<BizLotTechnologicalProcessDetail> bizTechnologicalWasteRecyclingDetails = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id",bizLot.getTechnologicalProcessId()).orderByAsc("process_step_number").list();
+        if (bizDayworkItem.getIsAmend() == 1 || bizDayworkItem.getIsWasteRecycling() == 1) {
+            BizLot bizLot = bizLotService.query().eq("id", bizDayworkItem.getLotId()).list().get(0);
+            List<BizLotTechnologicalProcessDetail> bizTechnologicalWasteRecyclingDetails = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id", bizLot.getTechnologicalProcessId()).orderByAsc("process_step_number").list();
             BizLotTechnologicalProcessDetail lotTechnologicalProcessDetail = bizLotTechnologicalProcessDetailService.query().eq("id", list.get(0).getTechnologicalProcessDetailId()).one();
             BizTechnologicalProcessDetail bizTechnologicalProcessDetail = new BizTechnologicalProcessDetail();
             bizTechnologicalProcessDetail.setProcessId(lotTechnologicalProcessDetail.getProcessId());
@@ -224,7 +228,7 @@ public class BizDayworkItemController extends BaseController {
             //查询所有工段下的工序
             List<BizDeptProcess> deptProcessList = bizDeptProcessService.query().list();
             List<BizProcess> processList = new ArrayList<>();
-            for(BizLotTechnologicalProcessDetail bizTechnologicalWasteRecyclingDetail : bizTechnologicalWasteRecyclingDetails) {
+            for (BizLotTechnologicalProcessDetail bizTechnologicalWasteRecyclingDetail : bizTechnologicalWasteRecyclingDetails) {
                 BizProcess process = new BizProcess();
                 process.setId(bizTechnologicalWasteRecyclingDetail.getProcessId());
                 process.setProcessCode(bizTechnologicalWasteRecyclingDetail.getProcessCode());
@@ -234,8 +238,10 @@ public class BizDayworkItemController extends BaseController {
                 process.setDeptProcess(deptProcessList.stream().filter(deptProcess -> deptProcess.getProcessId().equals(bizTechnologicalWasteRecyclingDetail.getProcessId())).collect(Collectors.toList()));
                 processList.add(process);
             }
-            list.stream().forEach(item -> {item.setProcessSequence(processList);});
-            if(bizDayworkItem.getProcessStepNumber() != null) {
+            list.stream().forEach(item -> {
+                item.setProcessSequence(processList);
+            });
+            if (bizDayworkItem.getProcessStepNumber() != null) {
                 list.forEach(item -> {
                     item.setProcess(
                             item.getProcessSequence().stream()
@@ -271,7 +277,7 @@ public class BizDayworkItemController extends BaseController {
                 }
             }
             // 设置上一工段,周转用
-            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().lt("status", 4).eq("lot_id",item.getLotId()).eq("process_step_number", item.getProcessStepNumber()).list();
+            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().lt("status", 4).eq("lot_id", item.getLotId()).eq("process_step_number", item.getProcessStepNumber()).list();
             for (int i = 0; i < dayworkItemList.size(); i++) {
                 if (dayworkItemList.get(i).getDeptName() != null && !"".equals(dayworkItemList.get(i).getDeptName())) {
                     item.setPreDeptName(dayworkItemList.get(i).getDeptName());
@@ -288,7 +294,6 @@ public class BizDayworkItemController extends BaseController {
     }
 
 
-
     /**
      * 查询当前是否为首序
      */
@@ -299,10 +304,10 @@ public class BizDayworkItemController extends BaseController {
         //根据dayWorkId查询出当前工序的报工记录(按照工序筛选每道工序只查询一条数据)
         List<BizDayworkItem> list = bizDayworkItemService.getItemScreen(dayWorkId);
         //查询出来的数据等于1条则为首序
-        if(list.size() == 1){
-            map.put("isFirstOrder",true);
-        }else{
-            map.put("isFirstOrder",false);
+        if (list.size() == 1) {
+            map.put("isFirstOrder", true);
+        } else {
+            map.put("isFirstOrder", false);
         }
         return success(map);
     }
@@ -352,13 +357,13 @@ public class BizDayworkItemController extends BaseController {
         if (!list.isEmpty()) {
             processId = list.get(0).getProcessId();
         }
-        if(!list.isEmpty()) {
+        if (!list.isEmpty()) {
             List<Long> technologicalIds = list.stream().filter(item -> item.getIsAmend() == 1 || item.getIsWasteRecycling() == 1).map(BizDayworkItem::getTechnologicalProcessId).collect(Collectors.toList());
-            List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetailList = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", technologicalIds.isEmpty() ? Collections.singletonList(0L) :list.stream().filter(item -> item.getIsAmend() == 1 || item.getIsWasteRecycling() == 1).map(BizDayworkItem::getTechnologicalProcessId).collect(Collectors.toList())).list();
+            List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetailList = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", technologicalIds.isEmpty() ? Collections.singletonList(0L) : list.stream().filter(item -> item.getIsAmend() == 1 || item.getIsWasteRecycling() == 1).map(BizDayworkItem::getTechnologicalProcessId).collect(Collectors.toList())).list();
             List<Long> processIds = bizLotTechnologicalProcessDetailList.stream().map(BizLotTechnologicalProcessDetail::getProcessId).distinct().collect(Collectors.toList());
-            List<BizDeptProcess> deptProcessList = bizDeptProcessService.query().in("process_id", processIds.isEmpty()? Collections.singletonList(0L) : processIds).list();
+            List<BizDeptProcess> deptProcessList = bizDeptProcessService.query().in("process_id", processIds.isEmpty() ? Collections.singletonList(0L) : processIds).list();
             list.forEach(info -> {
-                if(info.getTurnoverType().equals("1")) {
+                if (info.getTurnoverType().equals("1")) {
                     info.setTurnoverArea(info.getPlace());
                 }
                 List<BizProcess> tempList = new ArrayList<>();
@@ -425,16 +430,17 @@ public class BizDayworkItemController extends BaseController {
         ExcelUtil<BizDayworkItem> util = new ExcelUtil<BizDayworkItem>(BizDayworkItem.class);
         util.exportExcel(response, list, "报工记录数据");
     }
+
     @PostMapping("/getInnerTurnoverByDeptId")
     @Log(title = "查询工段内部周转", businessType = BusinessType.SELECT)
     public AjaxResult getInnerTurnoverByDeptId(@RequestBody BizDayworkItem bizDayworkItem) {
         List<BizDaywork> dayworkList = bizDayworkItemService.getInnerListByDeptId(bizDayworkItem);
-        if(!dayworkList.isEmpty()){
+        if (!dayworkList.isEmpty()) {
             List<Long> dayworkIds = dayworkList.stream().map(BizDaywork::getId).collect(Collectors.toList());
             //正常批次的工序集合
             List<Long> normalTechnologicalProcessIds = dayworkList.stream().filter(item -> item.getIsWasteRecycling() == 0 && item.getIsAmend() == 0).map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
-            List<BizTechnologicalProcessDetail> normalDetailList = bizTechnologicalProcessDetailService.query().ne("tenant_id",9).in("technological_process_id", normalTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : normalTechnologicalProcessIds).orderByAsc("process_step_number").list();
-           //不正常批次的工序集合
+            List<BizTechnologicalProcessDetail> normalDetailList = bizTechnologicalProcessDetailService.query().ne("tenant_id", 9).in("technological_process_id", normalTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : normalTechnologicalProcessIds).orderByAsc("process_step_number").list();
+            //不正常批次的工序集合
             List<Long> abNormalTechnologicalProcessIds = dayworkList.stream().filter(item -> item.getIsWasteRecycling() == 1 || item.getIsAmend() == 1).map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
             List<BizLotTechnologicalProcessDetail> abNormalDetailList = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", abNormalTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : abNormalTechnologicalProcessIds).orderByAsc("process_step_number").list();
             List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().in("daywork_id", dayworkIds).list();
@@ -443,7 +449,7 @@ public class BizDayworkItemController extends BaseController {
                 String lastProcessStepNumber = dayworkItem.get(0).getProcessStepNumber();
                 //当前工序报工信息
                 List<BizDayworkItem> lastDayworkItem = dayworkItem.stream().filter(item -> item.getProcessStepNumber().equals(lastProcessStepNumber) && (item.getStatus().equals("2") || item.getStatus().equals("3"))).collect(Collectors.toList());
-               //合格数量求和
+                //合格数量求和
                 daywork.setTemporaryProcessQualifiedNum(lastDayworkItem.stream().mapToInt(BizDayworkItem::getQualifiedNum).sum());
                 //周转的报工信息
                 BizDayworkItem turnoverItem = dayworkItem.stream().filter(item -> item.getProcessStepNumber().equals(lastProcessStepNumber) && item.getStatus().equals("4")).collect(Collectors.toList()).get(0);
@@ -495,6 +501,7 @@ public class BizDayworkItemController extends BaseController {
         }
         return success(dayworkList);
     }
+
     @PostMapping("/updateDayworkItemInnerTurnover")
     @Log(title = "保存内部周转", businessType = BusinessType.SELECT)
     public AjaxResult updateDayworkItemInnerTurnover(@RequestBody List<BizDayworkItem> bizDayworkItem) {
@@ -504,15 +511,16 @@ public class BizDayworkItemController extends BaseController {
 
         return success(bizDayworkItemService.updateBatchById(bizDayworkItem));
     }
+
     @PostMapping("/getOutTurnoverByDeptId")
     @Log(title = "查询工段外部周转", businessType = BusinessType.SELECT)
     public AjaxResult getOutTurnoverByDeptId(@RequestBody BizDayworkItem bizDayworkItem) {
         List<BizDaywork> dayworkList = bizDayworkItemService.getOutListByDeptId(bizDayworkItem);
-        if(!dayworkList.isEmpty()){
+        if (!dayworkList.isEmpty()) {
             List<Long> dayworkIds = dayworkList.stream().map(BizDaywork::getId).collect(Collectors.toList());
             //正常批次的工序集合
             List<Long> normalTechnologicalProcessIds = dayworkList.stream().filter(item -> item.getIsWasteRecycling() == 0 && item.getIsAmend() == 0).map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
-            List<BizTechnologicalProcessDetail> normalDetailList = bizTechnologicalProcessDetailService.query().ne("tenant_id",9).in("technological_process_id", normalTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : normalTechnologicalProcessIds).orderByAsc("process_step_number").list();
+            List<BizTechnologicalProcessDetail> normalDetailList = bizTechnologicalProcessDetailService.query().ne("tenant_id", 9).in("technological_process_id", normalTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : normalTechnologicalProcessIds).orderByAsc("process_step_number").list();
             //不正常批次的工序集合
             List<Long> abNormalTechnologicalProcessIds = dayworkList.stream().filter(item -> item.getIsWasteRecycling() == 1 || item.getIsAmend() == 1).map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
             List<BizLotTechnologicalProcessDetail> abNormalDetailList = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", abNormalTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : abNormalTechnologicalProcessIds).orderByAsc("process_step_number").list();
@@ -572,6 +580,7 @@ public class BizDayworkItemController extends BaseController {
         }
         return success(dayworkList);
     }
+
     /**
      * 获取报工记录详细信息
      */
@@ -590,7 +599,7 @@ public class BizDayworkItemController extends BaseController {
     public AjaxResult startStatus(BizDayworkItem bizDayworkItem) {
         List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query()
                 .eq("daywork_id", bizDayworkItem.getDayworkId()).orderByDesc("create_time").list();
-        if(!dayworkItemList.isEmpty()) {
+        if (!dayworkItemList.isEmpty()) {
             String processStepNumber = dayworkItemList.get(0).getProcessStepNumber();
             List<BizDayworkItem> list = bizDayworkItemService.query()
                     .eq("daywork_id", bizDayworkItem.getDayworkId())
@@ -671,10 +680,10 @@ public class BizDayworkItemController extends BaseController {
         daywork = list.get(0);
 
         //如果是修改工单,则获取该工单工序
-        if(daywork.getIsAmend()==1 || daywork.getIsWasteRecycling()==1){
-            List<BizProcess> processList=new ArrayList<>();
+        if (daywork.getIsAmend() == 1 || daywork.getIsWasteRecycling() == 1) {
+            List<BizProcess> processList = new ArrayList<>();
             List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetail = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id", daywork.getTechnologicalProcessId()).list();
-            bizLotTechnologicalProcessDetail.forEach(item->{
+            bizLotTechnologicalProcessDetail.forEach(item -> {
                 BizProcess itemProcess = new BizProcess();
                 itemProcess.setProcessCode(item.getProcessCode());
                 itemProcess.setProcessAlias(item.getProcessAlias());
@@ -682,10 +691,10 @@ public class BizDayworkItemController extends BaseController {
                 processList.add(itemProcess);
             });
             daywork.setProcessSequence(processList);
-        }else {
-            List<BizProcess> processList=new ArrayList<>();
-            List<BizTechnologicalProcessDetail> bizTechnologicalProcessDetail = bizTechnologicalProcessDetailService.query().eq("technological_process_id", daywork.getTechnologicalProcessId()).ne("tenant_id",9).list();
-            bizTechnologicalProcessDetail.forEach(item->{
+        } else {
+            List<BizProcess> processList = new ArrayList<>();
+            List<BizTechnologicalProcessDetail> bizTechnologicalProcessDetail = bizTechnologicalProcessDetailService.query().eq("technological_process_id", daywork.getTechnologicalProcessId()).ne("tenant_id", 9).list();
+            bizTechnologicalProcessDetail.forEach(item -> {
                 BizProcess itemProcess = new BizProcess();
                 itemProcess.setProcessCode(item.getProcessCode());
                 itemProcess.setProcessAlias(item.getProcessAlias());
@@ -695,7 +704,7 @@ public class BizDayworkItemController extends BaseController {
             daywork.setProcessSequence(processList);
         }
 
-        if(daywork.getIsAmend()==1){
+        if (daywork.getIsAmend() == 1) {
             bizDayworkItem.setFormDayworkItemId(1L);
         }
         //并且计算该报工批次的当前工序下的合格数总量
@@ -802,12 +811,11 @@ public class BizDayworkItemController extends BaseController {
         }
 
         //保存箱数
-        List<BizDayworkItem>bizDayworkItems =new ArrayList<>();
+        List<BizDayworkItem> bizDayworkItems = new ArrayList<>();
         bizDayworkItems.add(bizDayworkItem);
         bizDayworkItemService.saveCarrierNum(bizDayworkItems);
 
 
-
         // 自动派活
         SysDept sysDept = sysDeptMapper.selectDeptById(bizDayworkItem.getDeptId());
         if (sysDept.getAutoAllocation() == 1) {
@@ -815,12 +823,12 @@ public class BizDayworkItemController extends BaseController {
             List<BizProductionResourceGroup> productionResourceGroupList = bizProductionResourceGroupService.list(new QueryWrapper<BizProductionResourceGroup>().eq("dept_id", bizDayworkItem.getDeptId()));
 
             //查询是否已经分配资源组
-            BizProductionResourceGroupSubPlan groupSubPlan=new BizProductionResourceGroupSubPlan();
+            BizProductionResourceGroupSubPlan groupSubPlan = new BizProductionResourceGroupSubPlan();
             groupSubPlan.setDeptId(bizDayworkItem.getDeptId());
             groupSubPlan.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
             List<BizProductionResourceGroupSubPlan> groupSubPlanList = bizProductionResourceGroupSubPlanService.getList(groupSubPlan);
             //如果没分配
-            if(groupSubPlanList.isEmpty()){
+            if (groupSubPlanList.isEmpty()) {
                 //查产品id
                 BizProductionPlanDetail productionPlanDetail = bizProductionPlanDetailService.getOne(new QueryWrapper<BizProductionPlanDetail>().eq("id", bizDayworkItem.getProductionPlanDetailId()));
                 //存放保存的subPlanList
@@ -843,6 +851,7 @@ public class BizDayworkItemController extends BaseController {
         return toAjax(batch);
 
     }
+
     @Log(title = "新增报工记录", businessType = BusinessType.INSERT)
     @Transactional
     @PostMapping("/saveInnerDayworkItem")
@@ -855,10 +864,10 @@ public class BizDayworkItemController extends BaseController {
         daywork = list.get(0);
 
         //如果是修改工单,则获取该工单工序
-        if(daywork.getIsAmend()==1 || daywork.getIsWasteRecycling()==1){
-            List<BizProcess> processList=new ArrayList<>();
+        if (daywork.getIsAmend() == 1 || daywork.getIsWasteRecycling() == 1) {
+            List<BizProcess> processList = new ArrayList<>();
             List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetail = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id", daywork.getTechnologicalProcessId()).list();
-            bizLotTechnologicalProcessDetail.forEach(item->{
+            bizLotTechnologicalProcessDetail.forEach(item -> {
                 BizProcess itemProcess = new BizProcess();
                 itemProcess.setProcessCode(item.getProcessCode());
                 itemProcess.setProcessAlias(item.getProcessAlias());
@@ -866,10 +875,10 @@ public class BizDayworkItemController extends BaseController {
                 processList.add(itemProcess);
             });
             daywork.setProcessSequence(processList);
-        }else {
-            List<BizProcess> processList=new ArrayList<>();
-            List<BizTechnologicalProcessDetail> bizTechnologicalProcessDetail = bizTechnologicalProcessDetailService.query().eq("technological_process_id", daywork.getTechnologicalProcessId()).ne("tenant_id",9).list();
-            bizTechnologicalProcessDetail.forEach(item->{
+        } else {
+            List<BizProcess> processList = new ArrayList<>();
+            List<BizTechnologicalProcessDetail> bizTechnologicalProcessDetail = bizTechnologicalProcessDetailService.query().eq("technological_process_id", daywork.getTechnologicalProcessId()).ne("tenant_id", 9).list();
+            bizTechnologicalProcessDetail.forEach(item -> {
                 BizProcess itemProcess = new BizProcess();
                 itemProcess.setProcessCode(item.getProcessCode());
                 itemProcess.setProcessAlias(item.getProcessAlias());
@@ -879,7 +888,7 @@ public class BizDayworkItemController extends BaseController {
             daywork.setProcessSequence(processList);
         }
 
-        if(daywork.getIsAmend()==1){
+        if (daywork.getIsAmend() == 1) {
             bizDayworkItem.setFormDayworkItemId(1L);
         }
         //并且计算该报工批次的当前工序下的合格数总量
@@ -952,6 +961,9 @@ public class BizDayworkItemController extends BaseController {
             int sum = currentDayworkItem.stream().mapToInt(BizDayworkItem::getQualifiedNum).sum() + bizDayworkItem.getQualifiedNum();
             outsourcedOrderDetailProcess.setQualifiedNum(sum);
             float percent = ((outsourcedOrderDetailProcess.getProductionNum() - outsourcedOrderDetailProcess.getQualifiedNum()) / (float) outsourcedOrderDetailProcess.getProductionNum()) * 100;
+            if (percent < 0) {
+                return error("合格数量不能大于投产数量。");
+            }
             outsourcedOrderDetailProcess.setLoss(BigDecimal.valueOf(percent));
             outsourcedOrderDetailProcess.setStatus(1);
             bizOutsourcedOrderDetailProcessService.updateById(outsourcedOrderDetailProcess);
@@ -992,12 +1004,11 @@ public class BizDayworkItemController extends BaseController {
         }
 
         //保存箱数
-        List<BizDayworkItem>bizDayworkItems =new ArrayList<>();
+        List<BizDayworkItem> bizDayworkItems = new ArrayList<>();
         bizDayworkItems.add(bizDayworkItem);
         bizDayworkItemService.saveCarrierNum(bizDayworkItems);
 
 
-
         // 自动派活
         SysDept sysDept = sysDeptMapper.selectDeptById(bizDayworkItem.getDeptId());
         if (sysDept.getAutoAllocation() == 1) {
@@ -1005,12 +1016,12 @@ public class BizDayworkItemController extends BaseController {
             List<BizProductionResourceGroup> productionResourceGroupList = bizProductionResourceGroupService.list(new QueryWrapper<BizProductionResourceGroup>().eq("dept_id", bizDayworkItem.getDeptId()));
 
             //查询是否已经分配资源组
-            BizProductionResourceGroupSubPlan groupSubPlan=new BizProductionResourceGroupSubPlan();
+            BizProductionResourceGroupSubPlan groupSubPlan = new BizProductionResourceGroupSubPlan();
             groupSubPlan.setDeptId(bizDayworkItem.getDeptId());
             groupSubPlan.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
             List<BizProductionResourceGroupSubPlan> groupSubPlanList = bizProductionResourceGroupSubPlanService.getList(groupSubPlan);
             //如果没分配
-            if(groupSubPlanList.isEmpty()){
+            if (groupSubPlanList.isEmpty()) {
                 //查产品id
                 BizProductionPlanDetail productionPlanDetail = bizProductionPlanDetailService.getOne(new QueryWrapper<BizProductionPlanDetail>().eq("id", bizDayworkItem.getProductionPlanDetailId()));
                 //存放保存的subPlanList
@@ -1071,7 +1082,7 @@ public class BizDayworkItemController extends BaseController {
                 ids.add(item.getId());
                 BizTurnover turnover = bizTurnoverService.getOne(new QueryWrapper<BizTurnover>().eq("dept_id", item.getDeptId()).eq("status", 9));
                 //0629placeId为字符属性
-                item.setPlaceId(turnover.getId()+"");
+                item.setPlaceId(turnover.getId() + "");
                 item.setPlace(turnover.getCode());
             } else {
                 item.setUserId(user.getUserId());
@@ -1107,7 +1118,7 @@ public class BizDayworkItemController extends BaseController {
     public AjaxResult saveBatch(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //        String tenantId = request.getHeader("tenantId");
         BizDaywork daywork = bizDayworkService.getById(bizDayworkItem.getDayworkId());
-        if(daywork.getIsAmend()==1){
+        if (daywork.getIsAmend() == 1) {
             bizDayworkItem.setFormDayworkItemId(1l);
         }
         SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -1133,13 +1144,14 @@ public class BizDayworkItemController extends BaseController {
         }
         return toAjax(b);
     }
+
     @Log(title = "批量新增报工记录", businessType = BusinessType.INSERT)
     @Transactional
     @PostMapping("/saveAssistBatch")
     public AjaxResult saveAssistBatch(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //        String tenantId = request.getHeader("tenantId");
         BizDaywork daywork = bizDayworkService.getById(bizDayworkItem.getDayworkId());
-        if(daywork.getIsAmend()==1){
+        if (daywork.getIsAmend() == 1) {
             bizDayworkItem.setFormDayworkItemId(1l);
         }
         SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -1165,18 +1177,21 @@ public class BizDayworkItemController extends BaseController {
         }
         return toAjax(b);
     }
+
     @PostMapping("/getDayworkItemByDayworkId")
     @Log(title = "获取报工明细", businessType = BusinessType.INSERT)
     public AjaxResult getDayworkItemByDayworkId(@RequestBody BizDayworkItem bizDayworkItem) {
         List<BizDayworkItem> list = bizDayworkItemService.getListByDayworkId(bizDayworkItem);
         return success(list);
     }
+
     @PostMapping("/getSortItemByDayworkId")
     @Log(title = "获取分选报工明细", businessType = BusinessType.INSERT)
     public AjaxResult getSortItemByDayworkId(@RequestBody BizDayworkItem bizDayworkItem) {
         List<BizDayworkItem> list = bizDayworkItemService.getSortListByDayworkId(bizDayworkItem);
         return success(list);
     }
+
     /**
      * 临时报工
      */
@@ -1193,22 +1208,22 @@ public class BizDayworkItemController extends BaseController {
         Long currentUserId = user.getUserId();
 
         BizDaywork daywork = bizDayworkService.getList(queryDaywork).get(0);
-        List<BizDayworkItem>  allDayworkItems=new ArrayList<>();
-        BizDayworkItem latest=null;
-         if(daywork!=null){
-             allDayworkItems = bizDayworkItemService.query().eq("daywork_id",daywork.getId()).list();
-             // 根据当前的dayworkId,获取相应的daywork_item集合,并根据创建日期进行倒叙排序
-             List<BizDayworkItem> currentDayworkItems = allDayworkItems.stream()
-                     .filter(di -> di.getDayworkId().equals(daywork.getId()) && di.getUserId().equals(currentUserId))
-                     .sorted(Comparator.comparing(BizDayworkItem::getCreateTime).reversed())
-                     .collect(Collectors.toList());
-
-             // 获取最后一条报工明细
-             latest = currentDayworkItems.get(0);
-         }
+        List<BizDayworkItem> allDayworkItems = new ArrayList<>();
+        BizDayworkItem latest = null;
+        if (daywork != null) {
+            allDayworkItems = bizDayworkItemService.query().eq("daywork_id", daywork.getId()).list();
+            // 根据当前的dayworkId,获取相应的daywork_item集合,并根据创建日期进行倒叙排序
+            List<BizDayworkItem> currentDayworkItems = allDayworkItems.stream()
+                    .filter(di -> di.getDayworkId().equals(daywork.getId()) && di.getUserId().equals(currentUserId))
+                    .sorted(Comparator.comparing(BizDayworkItem::getCreateTime).reversed())
+                    .collect(Collectors.toList());
+
+            // 获取最后一条报工明细
+            latest = currentDayworkItems.get(0);
+        }
 
         //如果没找到自己的报工数据最后一条,提示
-        if(latest==null){
+        if (latest == null) {
             return error("未匹配到最后一条报工信息");
         }
 
@@ -1365,6 +1380,7 @@ public class BizDayworkItemController extends BaseController {
     public AjaxResult remove(@PathVariable List<Long> ids) {
         return toAjax(bizDayworkItemService.removeBatchByIds(ids));
     }
+
     @PostMapping("/addEquipmentInfo")
     @Log(title = "新增分选设备信息", businessType = BusinessType.SELECT)
     public AjaxResult addEquipmentInfo(@RequestBody BizDayworkItem bizDayworkItem) {
@@ -1376,14 +1392,14 @@ public class BizDayworkItemController extends BaseController {
     @Transactional
     @PutMapping("/updateTurnoverInfo")
     @Log(title = "修改周转信息", businessType = BusinessType.INSERT)
-    public AjaxResult updateTurnoverInfo(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+    public AjaxResult updateTurnoverInfo(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //查到需要修改的周转信息
         BizDayworkItem dayworkItem = bizDayworkItemService.query().eq("daywork_id", bizDayworkItem.getDayworkId())
                 .eq("process_step_number", bizDayworkItem.getProcessStepNumber())
                 .eq("status", 4).list().get(0);
-            //车间外周转
-            dayworkItem.setDeptId(bizDayworkItem.getDeptId());
-            dayworkItem.setDeptName(bizDayworkItem.getDeptName());
+        //车间外周转
+        dayworkItem.setDeptId(bizDayworkItem.getDeptId());
+        dayworkItem.setDeptName(bizDayworkItem.getDeptName());
         bizDayworkItemService.updateById(dayworkItem);
         //修改daywork表信息
         BizDaywork daywork = bizDayworkService.query().eq("id", bizDayworkItem.getDayworkId()).list().get(0);
@@ -1396,13 +1412,13 @@ public class BizDayworkItemController extends BaseController {
             List<BizProductionResourceGroup> productionResourceGroupList = bizProductionResourceGroupService.list(new QueryWrapper<BizProductionResourceGroup>().eq("dept_id", bizDayworkItem.getDeptId()).eq("is_deactivate", 0));
 
             //查询是否已经分配资源组
-            BizProductionResourceGroupSubPlan groupSubPlan=new BizProductionResourceGroupSubPlan();
+            BizProductionResourceGroupSubPlan groupSubPlan = new BizProductionResourceGroupSubPlan();
             groupSubPlan.setDeptId(bizDayworkItem.getDeptId());
             groupSubPlan.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
 
             List<BizProductionResourceGroupSubPlan> groupSubPlanList = bizProductionResourceGroupSubPlanService.getAotList(groupSubPlan);
             //如果没分配
-            if(groupSubPlanList.size()==0){
+            if (groupSubPlanList.size() == 0) {
                 //查产品id
                 BizProductionPlanDetail productionPlanDetail = bizProductionPlanDetailService.getOne(new QueryWrapper<BizProductionPlanDetail>().eq("id", daywork.getProductionPlanDetailId()));
                 //存放保存的subPlanList
@@ -1423,15 +1439,16 @@ public class BizDayworkItemController extends BaseController {
         }
 
         return success();
-}
+    }
+
     /***       外协周转。暂时注释       ***/
-    @Log(title="外协周转申请")
+    @Log(title = "外协周转申请")
     @Transactional
     @PostMapping("/turnoverOutsource")
-    public AjaxResult turnoverOutsource(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+    public AjaxResult turnoverOutsource(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //判断当前是否在盘点
-        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status",1).one();
-        if(bizTakeStockPeriod!=null && bizTakeStockPeriod.getStatus() == 1) {
+        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status", 1).one();
+        if (bizTakeStockPeriod != null && bizTakeStockPeriod.getStatus() == 1) {
             return error("当前在盘点,禁止投产");
         }
         // 设置工时
@@ -1452,8 +1469,8 @@ public class BizDayworkItemController extends BaseController {
             //不筛选status,当前批次最新一条报工
             BizDayworkItem lastItemAll = bizDayworkItemAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
             //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
-            if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
-                return error( v.getLotCode()+"批次已周转,请勿重复操作");
+            if (lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
+                return error(v.getLotCode() + "批次已周转,请勿重复操作");
             }
             if (lastItem != null && lastItem.getStatus().equals("3")) {
                 List<BizDayworkItem> allItem = bizDayworkItemList.stream().filter(l -> l.getDayworkId().equals(v.getId()) && l.getTechnologicalProcessDetailId().equals(lastItem.getTechnologicalProcessDetailId())).collect(Collectors.toList());
@@ -1465,19 +1482,19 @@ public class BizDayworkItemController extends BaseController {
                 bizItem.setStatus(bizDayworkItem.getStatus());
                 bizItem.setFromDeptId(lastItem.getDeptId());
                 bizItem.setFromDeptName(lastItem.getDeptName());
-                if (bizDayworkItem.getStatus().equals("7")||bizDayworkItem.getStatus().equals("4")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("4")) {
                     v.setDeptId(bizDayworkItem.getDeptId());
                     v.setProcessQualifiedNum(v.getTemporaryProcessQualifiedNum());
                     bizDayworkService.updateById(v);
                 }
                 // 周转后如果是车间内的,状态为7,则需要从当前资源组中删除被邀请人
-                if(bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
                     v.setProtemProcessId(lastItem.getProcessId());
                     v.setProtemProcessStepNumber(lastItem.getProcessStepNumber());
                     // 如果被邀请人不是本工段内的人,则需要从当前资源组中删除被邀请人
                     bizProductionResourceGroupDetailService.deleTemporanyPeople(v);
                 }
-                if(v.getIsAmend()==1){
+                if (v.getIsAmend() == 1) {
                     bizItem.setFormDayworkItemId(1L);
                 }
                 bizItem.setProdNum(v.getTemporaryProcessQualifiedNum());
@@ -1515,13 +1532,14 @@ public class BizDayworkItemController extends BaseController {
         }
         return success();
     }
-    @Log(title="外协周转申请")
+
+    @Log(title = "外协周转申请")
     @Transactional
     @PostMapping("/turnoverOutsourceAssist")
-    public AjaxResult turnoverOutsourceAssist(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+    public AjaxResult turnoverOutsourceAssist(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //判断当前是否在盘点
-        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status",1).one();
-        if(bizTakeStockPeriod!=null && bizTakeStockPeriod.getStatus() == 1) {
+        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status", 1).one();
+        if (bizTakeStockPeriod != null && bizTakeStockPeriod.getStatus() == 1) {
             return error("当前在盘点,禁止投产");
         }
         // 设置工时
@@ -1542,8 +1560,8 @@ public class BizDayworkItemController extends BaseController {
             //不筛选status,当前批次最新一条报工
             BizDayworkItem lastItemAll = bizDayworkItemAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
             //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
-            if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
-                return error( v.getLotCode()+"批次已周转,请勿重复操作");
+            if (lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
+                return error(v.getLotCode() + "批次已周转,请勿重复操作");
             }
             if (lastItem != null && lastItem.getStatus().equals("3")) {
                 List<BizDayworkItem> allItem = bizDayworkItemList.stream().filter(l -> l.getDayworkId().equals(v.getId()) && l.getTechnologicalProcessDetailId().equals(lastItem.getTechnologicalProcessDetailId())).collect(Collectors.toList());
@@ -1555,23 +1573,23 @@ public class BizDayworkItemController extends BaseController {
                 bizItem.setStatus(bizDayworkItem.getStatus());
                 bizItem.setFromDeptId(lastItem.getDeptId());
                 bizItem.setFromDeptName(lastItem.getDeptName());
-                if (bizDayworkItem.getStatus().equals("7")||bizDayworkItem.getStatus().equals("4")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("4")) {
                     v.setDeptId(bizDayworkItem.getDeptId());
                     v.setProcessQualifiedNum(v.getTemporaryProcessQualifiedNum());
                     bizDayworkService.updateById(v);
                 }
                 // 周转后如果是车间内的,状态为7,则需要从当前资源组中删除被邀请人
-                if(bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
                     v.setProtemProcessId(lastItem.getProcessId());
                     v.setProtemProcessStepNumber(lastItem.getProcessStepNumber());
                     // 如果被邀请人不是本工段内的人,则需要从当前资源组中删除被邀请人
                     bizProductionResourceGroupDetailService.deleTemporanyPeople(v);
                 }
-                if(v.getIsAmend()==1){
+                if (v.getIsAmend() == 1) {
                     bizItem.setFormDayworkItemId(1L);
                 }
                 //当前工序第一条报工
-                BizDayworkItem firstDayworkItem = bizDayworkItems.stream().filter(l -> l.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber())&& l.getDayworkId().equals(v.getId())).sorted(Comparator.comparing(BizDayworkItem::getCreateTime)).findFirst().orElse(null);
+                BizDayworkItem firstDayworkItem = bizDayworkItems.stream().filter(l -> l.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) && l.getDayworkId().equals(v.getId())).sorted(Comparator.comparing(BizDayworkItem::getCreateTime)).findFirst().orElse(null);
                 bizItem.setProdNum(v.getTemporaryProcessQualifiedNum());
                 bizItem.setLotId(v.getLotId());
                 bizItem.setLotCode(v.getLotCode());
@@ -1613,13 +1631,13 @@ public class BizDayworkItemController extends BaseController {
     }
 
     // 周转申请都走这个方法,不再走原来的add方法
-    @Log(title="周转申请")
+    @Log(title = "周转申请")
     @Transactional
     @PostMapping("/turnover")
-    public AjaxResult turnover(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+    public AjaxResult turnover(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //判断当前是否在盘点
-        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status",1).one();
-        if(bizTakeStockPeriod!=null && bizTakeStockPeriod.getStatus() == 1) {
+        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status", 1).one();
+        if (bizTakeStockPeriod != null && bizTakeStockPeriod.getStatus() == 1) {
             return error("当前在盘点,禁止投产");
         }
         // 设置工时
@@ -1650,8 +1668,8 @@ public class BizDayworkItemController extends BaseController {
             //批次所有报工,判断是否已经周转了,如果周转返回报错信息
             BizDayworkItem lastItemAll = bizDayworkItemsAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
             //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
-            if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
-                return error( v.getLotCode()+"批次已周转,请勿重复操作");
+            if (lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
+                return error(v.getLotCode() + "批次已周转,请勿重复操作");
             }
             // 如果最后一条报工信息存在,并且报工状态为:3,则说明该报工已经工序完成
             if (lastItem != null && lastItem.getStatus().equals("3")) {
@@ -1670,49 +1688,49 @@ public class BizDayworkItemController extends BaseController {
                 bizItem.setFromDeptId(lastItem.getDeptId());
                 bizItem.setFromDeptName(lastItem.getDeptName());
                 //添加分选-包装的审核申请
-                if(bizDayworkItem.getIsNextPacking()) {
+                if (bizDayworkItem.getIsNextPacking()) {
                     //如果有审核申请,则删除审核申请,重新新增
-                    if(dayworkExamineList.size() > 0) {
+                    if (dayworkExamineList.size() > 0) {
                         //删除多余的审核申请
                         bizDayworkItemExamineService.removeBatchByIds(dayworkExamineList);
                     }
-                        //新增审核申请
-                        BizDayworkItemExamine examine = new BizDayworkItemExamine();
-                        examine.setDayworkId(v.getId());
-                        examine.setDayworkItemId(lastItem.getId());
-                        examine.setDeptId(bizDayworkItem.getDeptId());
-                        examine.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
-                        examine.setProductDescription(bizDayworkItem.getProductDescription());
-                        examine.setLotId(lastItem.getLotId());
-                        examine.setLotCode(v.getLotCode());
-                        examine.setProductId(v.getProductId());
-                        examine.setTechnologicalProcessId(lastItem.getTechnologicalProcessId());
-                        examine.setTechnologicalProcessDetailId(lastItem.getTechnologicalProcessDetailId());
-                        examine.setProcessId(lastItem.getProcessId());
-                        examine.setProcessAlias(bizDayworkItem.getProcess().getProcessAlias());
-                        examine.setStatus(0);
-                        needAddList.add(examine);
+                    //新增审核申请
+                    BizDayworkItemExamine examine = new BizDayworkItemExamine();
+                    examine.setDayworkId(v.getId());
+                    examine.setDayworkItemId(lastItem.getId());
+                    examine.setDeptId(bizDayworkItem.getDeptId());
+                    examine.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
+                    examine.setProductDescription(bizDayworkItem.getProductDescription());
+                    examine.setLotId(lastItem.getLotId());
+                    examine.setLotCode(v.getLotCode());
+                    examine.setProductId(v.getProductId());
+                    examine.setTechnologicalProcessId(lastItem.getTechnologicalProcessId());
+                    examine.setTechnologicalProcessDetailId(lastItem.getTechnologicalProcessDetailId());
+                    examine.setProcessId(lastItem.getProcessId());
+                    examine.setProcessAlias(bizDayworkItem.getProcess().getProcessAlias());
+                    examine.setStatus(0);
+                    needAddList.add(examine);
                 }
                 // 如果报工状态为:7(已送达)或者4(待周转),则需要设置对应的daywork的当前部门id,以及合格数
                 // 这里的状态值4/7,是由前端传递过来的。
                 if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("4")) {
                     v.setDeptId(bizDayworkItem.getDeptId());
                     int sum = bizDayworkItems.stream()
-                            .filter(l -> l.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber())&&l.getDayworkId().equals(v.getId()))
+                            .filter(l -> l.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) && l.getDayworkId().equals(v.getId()))
                             .mapToInt(BizDayworkItem::getQualifiedNum) // 假设 getNum 返回一个 int 类型的值
                             .sum();
                     v.setTemporaryProcessQualifiedNum(sum);
                     bizDayworkService.updateById(v);
                 }
                 // 周转后如果是车间内的,状态为7,则需要从当前资源组中删除被邀请人
-                if(bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
                     v.setProtemProcessId(lastItem.getProcessId());
                     v.setProtemProcessStepNumber(lastItem.getProcessStepNumber());
                     // 如果被邀请人不是本工段内的人,则需要从当前资源组中删除被邀请人
                     bizProductionResourceGroupDetailService.deleTemporanyPeople(v);
                 }
                 // 如果是单批单改换,则设置form_daywork_item_id为1,表示没有原来的报工
-                if(v.getIsAmend()==1){
+                if (v.getIsAmend() == 1) {
                     bizItem.setFormDayworkItemId(1L);
                 }
                 bizItem.setLotId(v.getLotId());
@@ -1753,13 +1771,13 @@ public class BizDayworkItemController extends BaseController {
                     List<BizProductionResourceGroup> productionResourceGroupList = bizProductionResourceGroupService.list(new QueryWrapper<BizProductionResourceGroup>().eq("dept_id", bizDayworkItem.getDeptId()).eq("is_deactivate", 0));
 
                     //查询是否已经分配资源组
-                    BizProductionResourceGroupSubPlan groupSubPlan=new BizProductionResourceGroupSubPlan();
+                    BizProductionResourceGroupSubPlan groupSubPlan = new BizProductionResourceGroupSubPlan();
                     groupSubPlan.setDeptId(bizDayworkItem.getDeptId());
                     groupSubPlan.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
 
                     List<BizProductionResourceGroupSubPlan> groupSubPlanList = bizProductionResourceGroupSubPlanService.getAotList(groupSubPlan);
                     //如果没分配
-                    if(groupSubPlanList.isEmpty()){
+                    if (groupSubPlanList.isEmpty()) {
                         //查产品id
                         BizProductionPlanDetail productionPlanDetail = bizProductionPlanDetailService.getOne(new QueryWrapper<BizProductionPlanDetail>().eq("id", bizDayworkItem.getProductionPlanDetailId()));
                         //存放保存的subPlanList
@@ -1783,13 +1801,14 @@ public class BizDayworkItemController extends BaseController {
         bizDayworkItemExamineService.saveBatch(needAddList);
         return toAjax(batch);
     }
-    @Log(title="周转申请")
+
+    @Log(title = "周转申请")
     @Transactional
     @PostMapping("/turnoverAssist")
-    public AjaxResult turnoverAssist(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+    public AjaxResult turnoverAssist(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //判断当前是否在盘点
-        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status",1).one();
-        if(bizTakeStockPeriod!=null && bizTakeStockPeriod.getStatus() == 1) {
+        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status", 1).one();
+        if (bizTakeStockPeriod != null && bizTakeStockPeriod.getStatus() == 1) {
             return error("当前在盘点,禁止投产");
         }
         // 设置工时
@@ -1820,8 +1839,8 @@ public class BizDayworkItemController extends BaseController {
             //批次所有报工,判断是否已经周转了,如果周转返回报错信息
             BizDayworkItem lastItemAll = bizDayworkItemsAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
             //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
-            if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
-                return error( v.getLotCode()+"批次已周转,请勿重复操作");
+            if (lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
+                return error(v.getLotCode() + "批次已周转,请勿重复操作");
             }
             // 如果最后一条报工信息存在,并且报工状态为:3,则说明该报工已经工序完成
             if (lastItem != null && lastItem.getStatus().equals("3")) {
@@ -1840,9 +1859,9 @@ public class BizDayworkItemController extends BaseController {
                 bizItem.setFromDeptId(lastItem.getDeptId());
                 bizItem.setFromDeptName(lastItem.getDeptName());
                 //添加分选-包装的审核申请
-                if(bizDayworkItem.getIsNextPacking()) {
+                if (bizDayworkItem.getIsNextPacking()) {
                     //如果有审核申请,则删除审核申请,重新新增
-                    if(dayworkExamineList.size() > 0) {
+                    if (dayworkExamineList.size() > 0) {
                         //删除多余的审核申请
                         bizDayworkItemExamineService.removeBatchByIds(dayworkExamineList);
                     }
@@ -1859,7 +1878,7 @@ public class BizDayworkItemController extends BaseController {
                     examine.setTechnologicalProcessId(lastItem.getTechnologicalProcessId());
                     examine.setTechnologicalProcessDetailId(lastItem.getTechnologicalProcessDetailId());
                     examine.setProcessId(lastItem.getProcessId());
-                    if(bizDayworkItem.getProcess() == null){
+                    if (bizDayworkItem.getProcess() == null) {
                         return error("报工数据异常,请联系管理员");
                     }
                     examine.setProcessAlias(bizDayworkItem.getProcess().getProcessAlias());
@@ -1878,18 +1897,18 @@ public class BizDayworkItemController extends BaseController {
                     bizDayworkService.updateById(v);
                 }
                 // 周转后如果是车间内的,状态为7,则需要从当前资源组中删除被邀请人
-                if(bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
                     v.setProtemProcessId(lastItem.getProcessId());
                     v.setProtemProcessStepNumber(lastItem.getProcessStepNumber());
                     // 如果被邀请人不是本工段内的人,则需要从当前资源组中删除被邀请人
                     bizProductionResourceGroupDetailService.deleTemporanyPeople(v);
                 }
                 // 如果是单批单改换,则设置form_daywork_item_id为1,表示没有原来的报工
-                if(v.getIsAmend()==1){
+                if (v.getIsAmend() == 1) {
                     bizItem.setFormDayworkItemId(1L);
                 }
                 //当前工序第一条报工
-                BizDayworkItem firstDayworkItem = bizDayworkItems.stream().filter(l -> l.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber())&& l.getDayworkId().equals(v.getId())).sorted(Comparator.comparing(BizDayworkItem::getCreateTime)).findFirst().orElse(null);
+                BizDayworkItem firstDayworkItem = bizDayworkItems.stream().filter(l -> l.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) && l.getDayworkId().equals(v.getId())).sorted(Comparator.comparing(BizDayworkItem::getCreateTime)).findFirst().orElse(null);
                 bizItem.setLotId(v.getLotId());
                 bizItem.setLotCode(v.getLotCode());
                 SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -1932,13 +1951,13 @@ public class BizDayworkItemController extends BaseController {
                     List<BizProductionResourceGroup> productionResourceGroupList = bizProductionResourceGroupService.list(new QueryWrapper<BizProductionResourceGroup>().eq("dept_id", bizDayworkItem.getDeptId()).eq("is_deactivate", 0));
 
                     //查询是否已经分配资源组
-                    BizProductionResourceGroupSubPlan groupSubPlan=new BizProductionResourceGroupSubPlan();
+                    BizProductionResourceGroupSubPlan groupSubPlan = new BizProductionResourceGroupSubPlan();
                     groupSubPlan.setDeptId(bizDayworkItem.getDeptId());
                     groupSubPlan.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
 
                     List<BizProductionResourceGroupSubPlan> groupSubPlanList = bizProductionResourceGroupSubPlanService.getAotList(groupSubPlan);
                     //如果没分配
-                    if(groupSubPlanList.isEmpty()){
+                    if (groupSubPlanList.isEmpty()) {
                         //查产品id
                         BizProductionPlanDetail productionPlanDetail = bizProductionPlanDetailService.getOne(new QueryWrapper<BizProductionPlanDetail>().eq("id", bizDayworkItem.getProductionPlanDetailId()));
                         //存放保存的subPlanList
@@ -1962,13 +1981,14 @@ public class BizDayworkItemController extends BaseController {
         bizDayworkItemExamineService.saveBatch(needAddList);
         return toAjax(batch);
     }
-    @Log(title="内部外协周转申请")
+
+    @Log(title = "内部外协周转申请")
     @Transactional
     @PostMapping("/turnoverInner")
-    public AjaxResult turnoverInner(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+    public AjaxResult turnoverInner(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         //判断当前是否在盘点
-        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status",1).one();
-        if(bizTakeStockPeriod!=null && bizTakeStockPeriod.getStatus() == 1) {
+        BizTakeStockPeriod bizTakeStockPeriod = bizTakeStockPeriodService.query().eq("status", 1).one();
+        if (bizTakeStockPeriod != null && bizTakeStockPeriod.getStatus() == 1) {
             return error("当前在盘点,禁止投产");
         }
         // 设置工时
@@ -1997,8 +2017,8 @@ public class BizDayworkItemController extends BaseController {
             //批次所有报工,判断是否已经周转了,如果周转返回报错信息
             BizDayworkItem lastItemAll = bizDayworkItemsAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
             //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
-            if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
-                return error( v.getLotCode()+"批次已周转,请勿重复操作");
+            if (lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
+                return error(v.getLotCode() + "批次已周转,请勿重复操作");
             }
             // 如果最后一条报工信息存在,并且报工状态为:3,则说明该报工已经工序完成
             if (lastItem != null && lastItem.getStatus().equals("3")) {
@@ -2029,14 +2049,14 @@ public class BizDayworkItemController extends BaseController {
                     bizDayworkService.updateById(v);
                 }
                 // 周转后如果是车间内的,状态为7,则需要从当前资源组中删除被邀请人
-                if(bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
+                if (bizDayworkItem.getStatus().equals("7") || bizDayworkItem.getStatus().equals("5")) {
                     v.setProtemProcessId(lastItem.getProcessId());
                     v.setProtemProcessStepNumber(lastItem.getProcessStepNumber());
                     // 如果被邀请人不是本工段内的人,则需要从当前资源组中删除被邀请人
                     bizProductionResourceGroupDetailService.deleTemporanyPeople(v);
                 }
                 // 如果是单批单改换,则设置form_daywork_item_id为1,表示没有原来的报工
-                if(v.getIsAmend()==1){
+                if (v.getIsAmend() == 1) {
                     bizItem.setFormDayworkItemId(1L);
                 }
                 bizItem.setLotId(v.getLotId());
@@ -2067,10 +2087,10 @@ public class BizDayworkItemController extends BaseController {
                 bizItem.setTurnoverType(bizDayworkItem.getTurnoverType());
                 bizItem.setTurnoverArea(bizDayworkItem.getTurnoverArea());
                 bizItem.setTenantId(bizDayworkItem.getTenantId());
-                if(bizDayworkItem.getPlaceId()==null){
+                if (bizDayworkItem.getPlaceId() == null) {
                     bizItem.setPlaceId(turnoverList.stream().map(BizTurnover::getId).map(String::valueOf).collect(Collectors.joining("、")));
                     bizItem.setPlace(turnoverList.stream().map(BizTurnover::getCode).collect(Collectors.joining("、")));
-                }else{
+                } else {
                     bizItem.setPlaceId(bizDayworkItem.getPlaceId());
                     bizItem.setPlace(bizDayworkItem.getPlace());
                 }
@@ -2086,13 +2106,13 @@ public class BizDayworkItemController extends BaseController {
                     List<BizProductionResourceGroup> productionResourceGroupList = bizProductionResourceGroupService.list(new QueryWrapper<BizProductionResourceGroup>().eq("dept_id", bizDayworkItem.getDeptId()).eq("is_deactivate", 0));
 
                     //查询是否已经分配资源组
-                    BizProductionResourceGroupSubPlan groupSubPlan=new BizProductionResourceGroupSubPlan();
+                    BizProductionResourceGroupSubPlan groupSubPlan = new BizProductionResourceGroupSubPlan();
                     groupSubPlan.setDeptId(bizDayworkItem.getDeptId());
                     groupSubPlan.setProductionPlanDetailId(bizDayworkItem.getProductionPlanDetailId());
 
                     List<BizProductionResourceGroupSubPlan> groupSubPlanList = bizProductionResourceGroupSubPlanService.getAotList(groupSubPlan);
                     //如果没分配
-                    if(groupSubPlanList.isEmpty()){
+                    if (groupSubPlanList.isEmpty()) {
                         //查产品id
                         BizProductionPlanDetail productionPlanDetail = bizProductionPlanDetailService.getOne(new QueryWrapper<BizProductionPlanDetail>().eq("id", bizDayworkItem.getProductionPlanDetailId()));
                         //存放保存的subPlanList

+ 3 - 0
src/main/java/cn/ezhizao/project/business/product/controller/SortDayworkController.java

@@ -426,6 +426,9 @@ public class SortDayworkController extends BaseController {
         outsourcedOrderDetailProcess.setProductionNum(bizDayworkItem.getProdNum());
         outsourcedOrderDetailProcess.setQualifiedNum(bizDayworkItem.getQualifiedNum());
         float percent = ((outsourcedOrderDetailProcess.getProductionNum() - outsourcedOrderDetailProcess.getQualifiedNum()) / (float) outsourcedOrderDetailProcess.getProductionNum()) * 100;
+        if (percent < 0) {
+            return error("合格数量不能大于投产数量。");
+        }
         outsourcedOrderDetailProcess.setLoss(BigDecimal.valueOf(percent));
         outsourcedOrderDetailProcess.setStatus(1);
         bizOutsourcedOrderDetailProcessService.updateById(outsourcedOrderDetailProcess);