guoyujia vor 1 Jahr
Ursprung
Commit
511da1a663

+ 32 - 51
src/main/java/cn/ezhizao/project/business/product/controller/BizDayworkController.java

@@ -275,18 +275,11 @@ public class BizDayworkController extends BaseController {
             /* ****************************** 获取与 daywork 相关的所有批次,为了获取每个批次中的投产数 ****************************** */
             // 直接通过daywork中的 technological_process_id 组成的集合,获取到对应的批次工艺工序清单,解决【正常】与【异常】冲突的问题
             List<Long> allTechnologicalProcessIds = dayworkList.stream().map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
-            List<BizLotTechnologicalProcess> allLotTechnologicalProcesses = bizLotTechnologicalProcessService.query()
-                    .in("id", allTechnologicalProcessIds)
-                    .eq("is_stop", 0)
-                    .list();
 
-            List<Long> allWastRecyclingIds = allLotTechnologicalProcesses.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList());
             List<BizLotTechnologicalProcessDetail> allLotTechnologicalDetails = new ArrayList<>();
-            if (!allWastRecyclingIds.isEmpty()) {
-                allLotTechnologicalDetails = bizLotTechnologicalProcessDetailService.query()
-                        .in("lot_technological_process_id", allWastRecyclingIds)
-                        .list();
-            }
+            allLotTechnologicalDetails = bizLotTechnologicalProcessDetailService.query()
+                    .in("lot_technological_process_id", allTechnologicalProcessIds)
+                    .list();
             List<BizLotTechnologicalProcessDetail> technologicalDetailList = new ArrayList<>();
 
             /* ****************************** 获取 daywork 与 【材质】相关 ****************************** */
@@ -352,23 +345,17 @@ public class BizDayworkController extends BaseController {
                 if (daywork.getIsAmend() == 1 || daywork.getIsWasteRecycling() == 1) {
                     //如果是废品回用,则它的工序从biz_technology_waste_recycling表查
                     //拿到对应工艺id
-                    BizLotTechnologicalProcess lotTechnological = allLotTechnologicalProcesses.stream()
-                            .filter(twr -> twr.getId().equals(daywork.getTechnologicalProcessId()))
-                            .findFirst()
-                            .orElse(null);
-                    if (lotTechnological != null) {
-                        //废品回用的工序
-                        List<BizLotTechnologicalProcessDetail> lotTechnologicalDetails = allLotTechnologicalDetails.stream()
-                                .filter(twrd -> twrd.getLotTechnologicalProcessId().equals(lotTechnological.getId()))
-                                .collect(Collectors.toList());
-                        // 将符合条件的所有工序清单中的工序id(process_id),整合到一个List集合中
-                        processIds = lotTechnologicalDetails.stream()
-                                .map(BizLotTechnologicalProcessDetail::getProcessId)
-                                .collect(Collectors.toList());
-                        List<Long> tempProcessIds = processIds;
-                        // 根据得到的工序id集合,获得相对应的工序集合
-                        technologicalDetailList = allLotTechnologicalDetails.stream().filter(ap -> tempProcessIds.contains(ap.getProcessId())).collect(Collectors.toList());
-                    }
+                    //废品回用的工序
+                    List<BizLotTechnologicalProcessDetail> lotTechnologicalDetails = allLotTechnologicalDetails.stream()
+                            .filter(twrd -> twrd.getLotTechnologicalProcessId().equals(daywork.getTechnologicalProcessId()))
+                            .collect(Collectors.toList());
+                    // 将符合条件的所有工序清单中的工序id(process_id),整合到一个List集合中
+                    processIds = lotTechnologicalDetails.stream()
+                            .map(BizLotTechnologicalProcessDetail::getProcessId)
+                            .collect(Collectors.toList());
+                    List<Long> tempProcessIds = processIds;
+                    // 根据得到的工序id集合,获得相对应的工序集合
+                    technologicalDetailList = allLotTechnologicalDetails.stream().filter(ap -> tempProcessIds.contains(ap.getProcessId())).collect(Collectors.toList());
                 }
                 // daywork_item的status > 4,表示已经离开当前工段,至少是周转中的状态
                 List<BizDayworkItem> finishedTempDayworkItems = tempDayworkItems.stream()
@@ -408,23 +395,19 @@ public class BizDayworkController extends BaseController {
                                 // 通过get(0)的方式,获得最新的一条报工记录
                                 .filter(tp -> tp.getProcessStepNumber().equals(tempDayworkItems.get(0).getProcessStepNumber()))
                                 .findFirst().orElse(null);
-                        if (technologicalDetail != null) {
-                            tempProcess.setId(technologicalDetail.getProcessId());
-                            tempProcess.setProcessAlias(technologicalDetail.getProcessAlias());
-                            tempProcess.setProcessCode(technologicalDetail.getProcessCode());
-                            tempProcess.setProcessStepNumber(technologicalDetail.getProcessStepNumber());
-                        }
+                        tempProcess.setId(technologicalDetail.getProcessId());
+                        tempProcess.setProcessAlias(technologicalDetail.getProcessAlias());
+                        tempProcess.setProcessCode(technologicalDetail.getProcessCode());
+                        tempProcess.setProcessStepNumber(technologicalDetail.getProcessStepNumber());
                     } else {
                         BizTechnologicalProcessDetail technologicalProcessDetail = processList.stream()
                                 // 通过get(0)的方式,获得最新的一条报工记录
                                 .filter(tp -> tp.getProcessStepNumber().equals(tempDayworkItems.get(0).getProcessStepNumber()))
                                 .findFirst().orElse(null);
-                        if (technologicalProcessDetail != null) {
-                            tempProcess.setId(technologicalProcessDetail.getProcessId());
-                            tempProcess.setProcessAlias(technologicalProcessDetail.getProcessAlias());
-                            tempProcess.setProcessCode(technologicalProcessDetail.getProcessCode());
-                            tempProcess.setProcessStepNumber(technologicalProcessDetail.getProcessStepNumber());
-                        }
+                        tempProcess.setId(technologicalProcessDetail.getProcessId());
+                        tempProcess.setProcessAlias(technologicalProcessDetail.getProcessAlias());
+                        tempProcess.setProcessCode(technologicalProcessDetail.getProcessCode());
+                        tempProcess.setProcessStepNumber(technologicalProcessDetail.getProcessStepNumber());
                     }
                     // 最新的一条报工记录对应的工序,就是当前批次的当前工序
                     daywork.setCurrentProcess(tempProcess);
@@ -437,15 +420,11 @@ public class BizDayworkController extends BaseController {
                 if (daywork.getIsAmend() == 1 || daywork.getIsWasteRecycling() == 1) {
                     //如果是废品回用,则它的工序从biz_technology_waste_recycling表查
                     //拿到对应工艺id
-                    BizLotTechnologicalProcess lotTechnological = allLotTechnologicalProcesses.stream()
-                            .filter(twr -> twr.getId().equals(daywork.getTechnologicalProcessId())).findFirst().orElse(null);
-                    if (lotTechnological != null) {
-                        //废品回用的工序(正序排列
-                        currentLotDayworkDetails = allLotTechnologicalDetails.stream()
-                                .filter(twrd -> twrd.getLotTechnologicalProcessId().equals(lotTechnological.getId()))
-                                .sorted(Comparator.comparing((BizLotTechnologicalProcessDetail::getProcessStepNumber)))
-                                .collect(Collectors.toList());
-                    }
+                    //废品回用的工序(正序排列
+                    currentLotDayworkDetails = allLotTechnologicalDetails.stream()
+                            .filter(twrd -> twrd.getLotTechnologicalProcessId().equals(daywork.getTechnologicalProcessId()))
+                            .sorted(Comparator.comparing((BizLotTechnologicalProcessDetail::getProcessStepNumber)))
+                            .collect(Collectors.toList());
                 } else {
                     // 将上面获得到的工艺数据,通过当前工艺主表的id,获得到当前的工艺列表,并根据工序序号,进行正序排列
                     currentDayworkProcessDetails = technologicalProcessDetails.stream()
@@ -1023,15 +1002,17 @@ public class BizDayworkController extends BaseController {
                 List<Long> bizLotIds = bizDayworks.stream()
                         .filter(v -> v.getIsWasteRecycling() == 1 || v.getIsAmend() == 1)
                         .map(BizDaywork::getLotId).collect(Collectors.toList());
-                List<BizLotTechnologicalProcess> bizLotTechnologicalProcesses = bizLotTechnologicalProcessService.query().eq("is_stop", 0).in("lot_id", bizLotIds.isEmpty() ? Collections.singletonList(0L) : bizLotIds).list();
-                List<Long> LotTechnologicalProcessesIds = bizLotTechnologicalProcesses.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList());
+                List<Long> LotTechnologicalProcessesIds = bizLotService.query().in("id", bizLotIds.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream()
+                        .filter(v -> v.getIsWasteRecycling() == 1 || v.getIsAmend() == 1)
+                        .map(BizDaywork::getLotId).collect(Collectors.toList())).list().stream().map(BizLot::getTechnologicalProcessId).collect(Collectors.toList());
+
                 List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetails = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", LotTechnologicalProcessesIds.isEmpty() ? Collections.singletonList(0L) : LotTechnologicalProcessesIds).list();
                 for (BizDayworkItem item : items) {
                     //添加产品描述
                     item.setProductDescription(bizProductionPlanDetails.stream().filter(v -> v.getId().equals(item.getProductionPlanDetailId())).collect(Collectors.toList()).get(0).getProductDescription());
                     //如果不是正常批次,则工艺重新取
                     if (bizLotIds.contains(item.getLotId())) {
-                        List<BizLotTechnologicalProcessDetail> processDetail = bizLotTechnologicalProcessDetails.stream().filter(v -> v.getLotId().equals(item.getLotId())).collect(Collectors.toList());
+                        List<BizLotTechnologicalProcessDetail> processDetail = bizLotTechnologicalProcessDetails.stream().filter(v -> v.getLotTechnologicalProcessId().equals(item.getTechnologicalProcessId())).collect(Collectors.toList());
                         BizLotTechnologicalProcessDetail process = processDetail.stream().filter(v -> v.getProcessStepNumber().equals(item.getProcessStepNumber())).findFirst().orElse(null);
                         BizTechnologicalProcessDetail technologicalProcessDetail = new BizTechnologicalProcessDetail();
                         technologicalProcessDetail.setProcessAlias(process.getProcessAlias());

+ 26 - 3
src/main/java/cn/ezhizao/project/business/product/controller/BizDayworkItemController.java

@@ -155,9 +155,9 @@ public class BizDayworkItemController extends BaseController {
         List<BizDayworkItem> list = bizDayworkItemService.getList(bizDayworkItem);
         //如果是废品回用,ProcessSequence从新表拿
         if(bizDayworkItem.getIsAmend() ==1  ||bizDayworkItem.getIsWasteRecycling() ==1 ) {
-            BizLotTechnologicalProcess technologicalProcess = bizLotTechnologicalProcessService.query().eq("lot_id",bizDayworkItem.getLotId()).eq("is_stop",0).one();
-            List<BizLotTechnologicalProcessDetail> bizTechnologicalWasteRecyclingDetails = bizLotTechnologicalProcessDetailService.query().eq("lot_technological_process_id",technologicalProcess.getId()).orderByAsc("process_step_number").list();
-           //查询所有工段下的工序
+            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();
+            //查询所有工段下的工序
             List<BizDeptProcess> deptProcessList = bizDeptProcessService.query().list();
             List<BizProcess> processList = new ArrayList<>();
             for(BizLotTechnologicalProcessDetail bizTechnologicalWasteRecyclingDetail : bizTechnologicalWasteRecyclingDetails) {
@@ -284,6 +284,29 @@ public class BizDayworkItemController extends BaseController {
         if (list.size() > 0) {
             processId = list.get(0).getProcessId();
         }
+        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<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.forEach(info -> {
+                List<BizProcess> tempList = new ArrayList<>();
+                if (info.getIsAmend() == 1 || info.getIsWasteRecycling() == 1) {
+                    List<BizLotTechnologicalProcessDetail> infoList = bizLotTechnologicalProcessDetailList.stream().filter(l -> l.getLotTechnologicalProcessId().equals(info.getTechnologicalProcessId())).collect(Collectors.toList());
+                    infoList.forEach(l -> {
+                        BizProcess process = new BizProcess();
+                        List<BizDeptProcess> deptProcesses = deptProcessList.stream().filter(d -> d.getProcessId().equals(l.getProcessId())).collect(Collectors.toList());
+                        process.setProcessAlias(l.getProcessAlias());
+                        process.setProcessCode(l.getProcessCode());
+                        process.setId(l.getProcessId());
+                        process.setProcessStepNumber(l.getProcessStepNumber());
+                        process.setDeptProcess(deptProcesses);
+                        tempList.add(process);
+                    });
+                    info.setProcessSequence(tempList);
+                }
+            });
+        }
         /** 根据当前工序查询下一道工序 */
         for (BizDayworkItem item : list) {
             for (int i = 0; i < item.getProcessSequence().size(); i++) {

+ 12 - 8
src/main/java/cn/ezhizao/project/business/product/controller/BizQuickDayworkController.java

@@ -88,8 +88,10 @@ public class BizQuickDayworkController extends BaseController {
     public TableDataInfo list(@RequestBody BizProductionPlanDetail bizProductionPlanDetail) throws NoSuchFieldException, IllegalAccessException {
         // 根据员工信息获取当前未完成的所有快速报工
         List<BizDayworkItem> list = bizDayworkItemService.getUnfinishedDayworkItemByUser(SecurityUtils.getLoginUser().getUser().getUserId());
-        List<BizLotTechnologicalProcess> tProcess = bizLotTechnologicalProcessService.query().eq("is_stop", 0).in("lot_id", list.isEmpty() ? Collections.singletonList("0") : list.stream().map(BizDayworkItem::getLotId).collect(Collectors.toList())).list();
-        List<BizLotTechnologicalProcessDetail> tProcessDetails = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", tProcess.isEmpty() ? Collections.singletonList(0L) : tProcess.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList())).list();
+//        List<BizLotTechnologicalProcess> tProcess = bizLotTechnologicalProcessService.query().eq("is_stop", 0).in("lot_id", list.isEmpty() ? Collections.singletonList("0") : list.stream().map(BizDayworkItem::getLotId).collect(Collectors.toList())).list();
+//        List<BizLotTechnologicalProcessDetail> tProcessDetails = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", tProcess.isEmpty() ? Collections.singletonList(0L) : tProcess.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList())).list();
+        List<Long> lotTechnologicalProcessIds = list.stream().map(BizDayworkItem::getTechnologicalProcessId).distinct().collect(Collectors.toList());
+        List<BizLotTechnologicalProcessDetail> tProcessDetails = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", lotTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) : list.stream().map(BizDayworkItem::getTechnologicalProcessId).distinct().collect(Collectors.toList())).list();
         List<BizProductionPlanDetail> details = productionPlanDetailService.query().in("id", list.isEmpty() ? Collections.singletonList("0") : list.stream().map(BizDayworkItem::getProductionPlanDetailId).collect(Collectors.toList())).list();
         // 获取箱号
         List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("is_changed", 0).in("daywork_id", list.isEmpty() ? Collections.singletonList("0") : list.stream().map(BizDayworkItem::getDayworkId).collect(Collectors.toList())).list();
@@ -102,8 +104,8 @@ public class BizQuickDayworkController extends BaseController {
             v.setQuickInfo(dayworkNextInfos.stream().filter(l -> l.getDayworkItemId().equals(v.getId())).findFirst().orElse(null));
             BizDaywork bizDaywork = dayworks.stream().filter(l -> l.getId().equals(v.getDayworkId())).findFirst().orElse(new BizDaywork());
             if (bizDaywork.getIsAmend().equals(1) || bizDaywork.getIsWasteRecycling().equals(1)) {
-                BizLotTechnologicalProcess p = tProcess.stream().filter(l -> l.getLotId().equals(v.getLotId())).findFirst().orElse(new BizLotTechnologicalProcess());
-                List<BizLotTechnologicalProcessDetail> processDetails = tProcessDetails.stream().filter(t -> t.getLotTechnologicalProcessId().equals(p.getId())).collect(Collectors.toList());
+               // BizLotTechnologicalProcess p = tProcess.stream().filter(l -> l.getLotId().equals(v.getLotId())).findFirst().orElse(new BizLotTechnologicalProcess());
+                List<BizLotTechnologicalProcessDetail> processDetails = tProcessDetails.stream().filter(t -> t.getLotTechnologicalProcessId().equals(v.getTechnologicalProcessId())).collect(Collectors.toList());
                 v.setProcess(processDetails.stream().filter(l -> l.getId().equals(v.getTechnologicalProcessDetailId())).map(BizProcess::new).findFirst().orElse(new BizProcess()));
                 v.setProcessSequence(processDetails.stream().map(BizProcess::new).collect(Collectors.toList()));
                 v.setNextProcess(v.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(v.getProcess().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
@@ -376,8 +378,10 @@ public class BizQuickDayworkController extends BaseController {
         bizDayworks.forEach(l -> l.setDayworkItemList(allBizDayworkItem.stream().filter(v -> v.getDayworkId().equals(l.getId())).collect(Collectors.toList())));
 
         List<BizDayworkItem> turnoverItems = new ArrayList<>();
-        List<BizLotTechnologicalProcess> ltp = bizLotTechnologicalProcessService.query().eq("is_stop", 0).in("lot_id", bizDayworks.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList())).list();
-        List<BizLotTechnologicalProcessDetail> ltpd = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", ltp.isEmpty() ? Collections.singletonList(0L) : ltp.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList())).list();
+//        List<BizLotTechnologicalProcess> ltp = bizLotTechnologicalProcessService.query().eq("is_stop", 0).in("lot_id", bizDayworks.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList())).list();
+//        List<BizLotTechnologicalProcessDetail> ltpd = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", ltp.isEmpty() ? Collections.singletonList(0L) : ltp.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList())).list();
+       List<Long> lotTechnologicalProcessIds = bizDayworks.stream().filter(item ->item.getIsAmend() == 1 || item.getIsWasteRecycling() == 1).collect(Collectors.toList()).stream().map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
+        List<BizLotTechnologicalProcessDetail> ltpd = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", lotTechnologicalProcessIds.isEmpty() ? Collections.singletonList(0L) :  bizDayworks.stream().filter(item ->item.getIsAmend() == 1 || item.getIsWasteRecycling() == 1).collect(Collectors.toList()).stream().map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList())).list();
         for (BizDaywork bizDaywork : bizDayworks) {
             if (!bizDaywork.getDayworkItemList().isEmpty() && (bizDaywork.getDayworkItemList().get(0).getStatus().equals("4") || bizDaywork.getDayworkItemList().get(0).getStatus().equals("7") || bizDaywork.getDayworkItemList().get(0).getStatus().equals("5"))) {
                 turnoverItems.add(bizDaywork.getDayworkItemList().get(0));
@@ -403,8 +407,8 @@ public class BizQuickDayworkController extends BaseController {
                 BizProductionPlanDetail productionPlanDetail = list.stream().filter(v -> v.getId().equals(l.getProductionPlanDetailId())).findFirst().orElse(null);
                 l.setProductionPlanNo(productionPlanDetail != null ? productionPlanDetail.getProductionPlanNo() : null);
                 if (l.getDaywork().getIsAmend().equals(1) || l.getDaywork().getIsWasteRecycling().equals(1)) {
-                    BizLotTechnologicalProcess p = ltp.stream().filter(v -> v.getLotId().equals(l.getDaywork().getLotId())).findFirst().orElse(new BizLotTechnologicalProcess());
-                    List<BizLotTechnologicalProcessDetail> processDetails = ltpd.stream().filter(t -> t.getLotTechnologicalProcessId().equals(p.getId())).collect(Collectors.toList());
+                   // BizLotTechnologicalProcess p = ltp.stream().filter(v -> v.getLotId().equals(l.getDaywork().getLotId())).findFirst().orElse(new BizLotTechnologicalProcess());
+                    List<BizLotTechnologicalProcessDetail> processDetails = ltpd.stream().filter(t -> t.getLotTechnologicalProcessId().equals(l.getTechnologicalProcessId())).collect(Collectors.toList());
                     if (processDetails.stream().filter(v -> v.getProcessStepNumber().compareTo(l.getProcessStepNumber()) > 0).noneMatch(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getProcessId())))) {
                         hasNoProcess.set(true);
                     } else {

+ 6 - 2
src/main/java/cn/ezhizao/project/system/controller/SysDeptController.java

@@ -6,7 +6,9 @@ import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
 import cn.ezhizao.framework.web.controller.BaseController;
 import cn.ezhizao.framework.web.domain.AjaxResult;
+import cn.ezhizao.project.business.product.domain.BizLot;
 import cn.ezhizao.project.business.product.domain.BizLotTechnologicalProcess;
+import cn.ezhizao.project.business.product.service.IBizLotService;
 import cn.ezhizao.project.business.product.service.IBizLotTechnologicalProcessService;
 import cn.ezhizao.project.system.domain.SysDept;
 import cn.ezhizao.project.system.service.ISysDeptService;
@@ -38,6 +40,8 @@ public class SysDeptController extends BaseController
 
     @Resource
     private IBizLotTechnologicalProcessService bizLotTechnologicalProcessService;
+    @Resource
+    private IBizLotService bizLotService;
 
 
     /**
@@ -55,8 +59,8 @@ public class SysDeptController extends BaseController
         //判断该批是否是废品回用
         List<SysDept> departments = new ArrayList<>();
         if(dept.getIsAmend() == 1 ||dept.getIsWasteRecycling() == 1) {
-            BizLotTechnologicalProcess technologicalProcess = bizLotTechnologicalProcessService.query().eq("lot_id", dept.getLotId()).eq("is_stop",0).one();
-            dept.setLotTechnologicalProcessId(technologicalProcess.getId());
+            BizLot bizLot = bizLotService.query().eq("id", dept.getLotId()).list().get(0);
+            dept.setLotTechnologicalProcessId(bizLot.getTechnologicalProcessId());
             departments = deptService.selectDeptListByTechnologyWasteRecyclingId(dept);
         } else {
             departments = deptService.selectDeptListByPlanDetailsId(dept);

+ 49 - 10
src/main/resources/mybatis/business/product/BizDayworkItemMapper.xml

@@ -14,6 +14,8 @@
         <result column="technological_process_detail_id" property="technologicalProcessDetailId" />
         <result column="production_plan_detail_id" property="productionPlanDetailId" />
         <association property="rejectSum" javaType="java.lang.Integer" column="id" select="getRejectNumber"/>
+        <association property="isAmend" javaType="java.lang.Integer" column="daywork_id" select="getIsAmend"/>
+        <association property="isWasteRecycling" javaType="java.lang.Integer" column="daywork_id" select="getIsWasteRecycling"/>
         <association property="productDescription" javaType="java.lang.String" column="production_plan_detail_id"
                      select="getProductDescription"/>
         <association property="dictDataLabel" javaType="java.lang.String" column="turnover_area"
@@ -28,7 +30,7 @@
                      javaType="cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnologicalProcessDetail"
                      column="technological_process_detail_id" select="getTechnologicalProcessDetail"/>
         <collection property="processSequence" ofType="cn.ezhizao.project.business.process.domain.BizProcess"
-                    column="technological_process_id" select="getProcessSequence"/>
+                    column="technological_process_id" select="getProcessSequenceItem"/>
     </resultMap>
     <resultMap id="BizDayworkResult" type="cn.ezhizao.project.business.product.domain.BizDaywork">
         <id column="id" property="id"/>
@@ -41,7 +43,8 @@
         <association property="productionQuantity" javaType="java.lang.Integer" column="productionPlanDetailId"
                      select="getProductionQuantity"/>
         <collection property="processSequence" ofType="cn.ezhizao.project.business.process.domain.BizProcess"
-                    column="technological_process_id" select="getProcessSequence"/>
+                    column="{technologicalProcessId=technological_process_id,isAmend=is_amend,isWasteRecycling = is_waste_recycling}"
+                    select="getProcessSequence"/>
     </resultMap>
     <resultMap id="BizProcessResult" type="cn.ezhizao.project.business.process.domain.BizProcess">
         <id column="id" property="id"/>
@@ -104,6 +107,12 @@
         where deleted = 0
           and id = #{processId}
     </select>
+    <select id="getIsAmend" resultType="Integer">
+        select is_amend from biz_daywork where id = #{daywork_id}
+    </select>
+    <select id="getIsWasteRecycling" resultType="Integer">
+        select is_waste_recycling from biz_daywork where id = #{daywork_id}
+    </select>
     <select id="getTechnologicalProcessDetail" resultMap="BizTechnologicalProcessDetailResult">
         select *
         from biz_technological_process_detail
@@ -121,18 +130,48 @@
     <!--    <select id="getCarrier" resultType="java.lang.String">-->
     <!--        select  GROUP_CONCAT( code SEPARATOR ', ' ) as carrierName from biz_carrier where id in (select carrier_id from biz_daywork_carrier where deleted = 0 and daywork_id = #{dayworkId})-->
     <!--    </select>-->
-    <select id="getProcessSequence" resultMap="BizProcessResult">
+    <select id="getProcessSequenceItem" resultMap="BizProcessResult">
         SELECT t1.*,
-               t2.id as technological_process_detail_id,
-               t2.process_step_number
+        t2.id as technological_process_detail_id,
+        t2.process_step_number
         FROM biz_process t1
-                 JOIN biz_technological_process_detail t2 ON t1.id = t2.process_id
+        JOIN biz_technological_process_detail t2 ON t1.id = t2.process_id
         WHERE t1.deleted = 0
-          AND t2.deleted = 0
-          AND t2.technological_process_id = #{technologicalProcessId}
-          AND t1.id != 1 AND t1.id !=2 AND t2.tenant_id != 9
+        AND t2.deleted = 0
+        AND t2.technological_process_id = #{technological_processId}
+        AND t1.id != 1 AND t1.id !=2 AND t2.tenant_id != 9
         ORDER BY
-            t2.process_step_number;
+        t2.process_step_number;
+    </select>
+    <select id="getProcessSequence" resultMap="BizProcessResult">
+        <choose>
+            <when test="is_amend == 0 and  is_waste_recycling == 0">
+                SELECT t1.*,
+                t2.id as technological_process_detail_id,
+                t2.process_step_number
+                FROM biz_process t1
+                JOIN biz_technological_process_detail t2 ON t1.id = t2.process_id
+                WHERE t1.deleted = 0
+                AND t2.deleted = 0
+                AND t2.technological_process_id = #{technological_processId}
+                AND t1.id != 1 AND t1.id !=2 AND t2.tenant_id != 9
+                ORDER BY
+                t2.process_step_number;
+            </when>
+            <otherwise>
+                SELECT t1.*,
+                t2.id as technological_process_detail_id,
+                t2.process_step_number
+                FROM biz_process t1
+                JOIN biz_lot_technological_process_detail t2 ON t1.id = t2.process_id
+                WHERE t1.deleted = 0
+                AND t2.deleted = 0
+                AND t2.lot_technological_process_id = #{technological_processId}
+                AND t1.id != 1 AND t1.id !=2 AND t2.tenant_id != 9
+                ORDER BY
+                t2.process_step_number;
+            </otherwise>
+        </choose>
     </select>
     <select id="getDayworkItemByCarrier" resultMap="BizDayworkItemResult">
         select *