Эх сурвалжийг харах

Merge branch 'master' of http://120.46.159.163:7400/ezhizao/ezhizao_dms_app_api

ezhizao 1 жил өмнө
parent
commit
7c6bc161bb

+ 4 - 0
src/main/java/cn/ezhizao/project/business/carrierReject/domain/BizCarrierReject.java

@@ -2,6 +2,7 @@ package cn.ezhizao.project.business.carrierReject.domain;
 
 import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.web.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -40,5 +41,8 @@ public class BizCarrierReject extends BaseEntity
     @JsonFormat(pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "操作日期")
     private Date operationDate;
+
+    @TableField(exist = false)
+    private Long tenantId;
     
 }

+ 35 - 19
src/main/java/cn/ezhizao/project/business/product/controller/BizCarrierController.java

@@ -11,6 +11,8 @@ 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.framework.web.page.TableDataInfo;
+import cn.ezhizao.project.business.carrierReject.domain.BizCarrierReject;
+import cn.ezhizao.project.business.carrierReject.service.IBizCarrierRejectService;
 import cn.ezhizao.project.business.product.domain.*;
 import cn.ezhizao.project.business.product.service.*;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -49,6 +51,8 @@ public class BizCarrierController extends BaseController {
     @Resource
     private IBizDayworkItemService bizDayworkItemService;
 
+    @Resource
+    private IBizCarrierRejectService bizCarrierRejectService;
     /**
      * 查询载具详情列表
      */
@@ -142,14 +146,20 @@ public class BizCarrierController extends BaseController {
         List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("is_changed", 0).eq("daywork_id", bizDaywork.getId()).list();
         List<BizDayworkItem> currentItem = bizDayworkItemService.query().eq("daywork_id", bizDaywork.getId()).orderByDesc("create_time").list();
         List<BizCarrier> carriers = bizCarrierService.query().in("id", dayworkCarriers.isEmpty() ? Collections.singletonList(0L) : dayworkCarriers.stream().map(BizDayworkCarrier::getCarrierId).collect(Collectors.toList())).list();
-
-
-
+        List<BizCarrierReject> carrierRejects = bizCarrierRejectService.query().in("carrier_id", carriers.isEmpty() ? Collections.singletonList(0L) : carriers.stream().map(BizCarrier::getId).collect(Collectors.toList())).list();
+        carriers.stream().forEach(v->{v.setIsAbandoned(0);});
         if (carriers.isEmpty()) {
             // 该报工没有周转箱 提示选择周转箱
             return AjaxResult.error("请选择周转箱");
         }
-
+        if(!carrierRejects.isEmpty()) {
+            for (BizCarrier carrier : carriers) {
+                BizCarrierReject bizCarrierReject = carrierRejects.stream().filter(v -> v.getCarrierId().equals(v.getCarrierId())).sorted(Comparator.comparing(BizCarrierReject::getCreateTime).reversed()).collect(Collectors.toList()).get(0);
+                if (bizCarrierReject.getCarrierId().equals(carrier.getId())) {
+                    carrier.setIsAbandoned(bizCarrierReject.getIsAbandoned());
+                }
+            }
+        }
         if (carriers.stream().anyMatch(v -> v.getIsAbandoned().equals(1))) {
             return AjaxResult.error(carriers.stream().filter(v -> v.getIsAbandoned().equals(1)).map(BizCarrier::getCarrierCode).collect(Collectors.joining(",")) + "周转箱已废弃");
         }
@@ -189,14 +199,20 @@ public class BizCarrierController extends BaseController {
             processInspecion.setCarrierId(bizDayworks.get(0).getId());
 
             //根据报工信息查询说否有已完成的序检
-            List<BizProcessInspecion> processInspecions = bizProcessInspecionService.query().eq("daywork_id",bizDayworks.get(0).getId()).list();
+            List<BizProcessInspecion> processInspecions = bizProcessInspecionService.query().eq("daywork_id",bizDayworks.get(0).getId()).orderByDesc("create_time").list();
             boolean perform = true;
 
             //如果存在判断是是否有当前序的完成
-            if(processInspecions.size()>0){
-                perform = processInspecions.stream()
-                        .anyMatch(v -> v.getStatus().equals(1));
-                if(!perform){
+            if(processInspecions.size()>0) {
+                BizProcessInspecion inspection = processInspecions.get(0);
+                //如果存在判断是是否有当前序的完成
+                if (inspection.getStatus() != 1) {
+                    if (inspection.getStatus() == 0) {
+                        return AjaxResult.error("该批次序检未完成,不能周转。");
+                    }
+                    if (inspection.getStatus() == 2) {
+                        return AjaxResult.error("该批次序检不合格,不能周转。");
+                    }
                     return AjaxResult.error("该批次序检未合格,不能周转。");
                 }
             }
@@ -212,7 +228,6 @@ public class BizCarrierController extends BaseController {
 //                return AjaxResult.error("该批次序检未合格,不能周转。");
 //            }
         }else{
-
             if(!selectProcessInspecion(bizDayworks,bizDayworkItems)){
                 return AjaxResult.error("该周转箱中批次序检未全部合格,不能周转。");
             }
@@ -233,16 +248,17 @@ public class BizCarrierController extends BaseController {
             processInspecion.setCarrierId(bizDaywork.getId());
 
             //根据报工信息查询序检查信息
-            List<BizProcessInspecion> processInspecions = bizProcessInspecionService.query().eq("daywork_id",bizDaywork.getId()).list();
-
-            //如果存在判断是是否有当前序的完成
-            if(processInspecions.size()>0){
-                perform = processInspecions.stream()
-                        .anyMatch(v -> v.getStatus().equals(1));
-            }else{
-                perform =true;
+            List<BizProcessInspecion> processInspecions = bizProcessInspecionService.query().eq("daywork_id",bizDaywork.getId()).orderByDesc("create_time").list();
+            if(processInspecions.size()>0) {
+                BizProcessInspecion inspecion = processInspecions.get(0);
+                if (inspecion.getStatus() != 1) {
+                    perform = false;
+                }
+                //如果存在判断是是否有当前序的完成
+                else {
+                    perform = true;
+                }
             }
-
         }
         return perform;
     }

+ 20 - 16
src/main/java/cn/ezhizao/project/business/product/controller/BizDayworkController.java

@@ -136,6 +136,7 @@ public class BizDayworkController extends BaseController {
      */
     @Transactional
     @GetMapping("/list")
+    @Log(title = "报工", businessType = BusinessType.SELECT)
     public AjaxResult list(BizDaywork bizDaywork) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
         Long userId = user.getUserId();
@@ -208,7 +209,7 @@ public class BizDayworkController extends BaseController {
                     .get(0)
                     .getStatus();
             // 状态 == 5 时,说明已经进入周转中,那么该条daywork,将不再页面中显示,所以,通过对status的值的判断,添加到daywork集合中
-            if (Integer.parseInt(status) < 5) {
+            if (latest.getUserId().equals(userId) && Integer.parseInt(status) < 5) {
                 // 获取当前操作者自己的报工记录
                 List<BizDayworkItem> currentMyDayworkItems = myDayworkItems.stream()
                         .filter(di -> di.getDayworkId().equals(item.getId()))
@@ -230,14 +231,14 @@ public class BizDayworkController extends BaseController {
                     .collect(Collectors.toList());
             // 根据 technologicalProcessIds 获取符合条件的所有工艺工序清单
             List<BizTechnologicalProcessDetail> technologicalProcessDetails = bizTechnologicalProcessDetailService.query()
-                    .in("technological_process_id", technologicalProcessIds)
+                    .in("technological_process_id", technologicalProcessIds).ne("tenant_id",9)
                     .list();
             // 将符合条件的所有工艺工序清单中的工序id(process_id),整合到一个List集合中
             List<Long> processIds = technologicalProcessDetails.stream()
                     .map(BizTechnologicalProcessDetail::getProcessId)
                     .collect(Collectors.toList());
             // 根据得到的工序id集合,获得相对应的工序集合
-            List<BizTechnologicalProcessDetail> allTechnologicalProcessDetails = bizTechnologicalProcessDetailService.query().in("technological_process_id", technologicalProcessIds).list();
+            List<BizTechnologicalProcessDetail> allTechnologicalProcessDetails = bizTechnologicalProcessDetailService.query().in("technological_process_id", technologicalProcessIds).ne("tenant_id",9).list();
             List<Long> finalProcessIds = processIds;
             List<BizTechnologicalProcessDetail> processList = allTechnologicalProcessDetails.stream().filter(ap -> finalProcessIds.contains(ap.getProcessId())).collect(Collectors.toList());
 
@@ -435,7 +436,7 @@ public class BizDayworkController extends BaseController {
                 } else {
                     // 将上面获得到的工艺数据,通过当前工艺主表的id,获得到当前的工艺列表,并根据工序序号,进行正序排列
                     currentDayworkProcessDetails = technologicalProcessDetails.stream()
-                            .filter(pd -> pd.getTechnologicalProcessId().equals(daywork.getTechnologicalProcessId()))
+                            .filter(pd -> pd.getTechnologicalProcessId().equals(daywork.getTechnologicalProcessId()) && pd.getTenantId() !=9)
                             .sorted(Comparator.comparing((BizTechnologicalProcessDetail::getProcessStepNumber)))
                             .collect(Collectors.toList());
                 }
@@ -473,9 +474,9 @@ public class BizDayworkController extends BaseController {
                     //废品回用
                     if(daywork.getIsAmend() == 1 || daywork.getIsWasteRecycling()==1) {
                         for (int i = 0; i < currentLotDayworkDetails.size(); i++) {
-                            if (currentLotDayworkDetails.get(i).getProcessId().equals(daywork.getCurrentProcess().getId())
-                                    &&
-                                    (i + 1) < currentLotDayworkDetails.size()) {
+                            if ((currentLotDayworkDetails.get(i).getProcessId().equals(daywork.getCurrentProcess().getId())
+                                    &&currentLotDayworkDetails.get(i).getProcessStepNumber().equals(daywork.getCurrentProcess().getProcessStepNumber()))
+                                    && (i + 1) < currentLotDayworkDetails.size()) {
                                 // 根据工艺单查询下一道工序
                                 BizLotTechnologicalProcessDetail tempDetail = currentLotDayworkDetails.get(i + 1);
                                 BizProcess nextProcess = new BizProcess();
@@ -556,9 +557,7 @@ public class BizDayworkController extends BaseController {
                 }
             }
         }
-
         return success(dayworkList);
-
     }
 
     private void setAllDayworkItemsAndLots(List<BizDayworkItem> myDayworkItems, String keywords, List<BizDaywork> dayworks, List<BizDayworkItem> allDayworkItems, List<BizLot> lotList, List<BizLot> lots) {
@@ -793,7 +792,7 @@ public class BizDayworkController extends BaseController {
             //查询出该生产计划的当前生产批数
             Integer getdayworkNum = bizDayworkService.getdayworkNum(bizDaywork.getProductionPlanDetailId());
             Integer num = (getdayworkNum != null) ? getdayworkNum.intValue() : 0; // 如果 dayworkNum 为 null,则赋值为默认值 0
-            if (num < lotNumber || (bizDaywork.getIsWasteRecycling()==null? false : bizDaywork.getIsWasteRecycling() == 1)) {
+            if (num < lotNumber || (bizDaywork.getIsWasteRecycling()==null? false : bizDaywork.getIsWasteRecycling() == 1) || bizDaywork.getFromId()!=0) {
                 //查询该批次号是否已经被领取
                 List<BizDaywork> lotId = bizDayworkService.query().eq("lot_id", bizDaywork.getLotId()).list();
                 if (lotId.size() > 0) {
@@ -802,6 +801,8 @@ public class BizDayworkController extends BaseController {
                     //查询出该工段下的工序
                     BizDeptProcess bizDeptProcess = new BizDeptProcess();
                     bizDeptProcess.setDeptId(bizDaywork.getDeptId());
+                    BizLot lot = bizLotService.getById(bizDaywork.getLotId());
+                    bizDaywork.setProductId(lot.getProductId());
                     //不需要当前序
                     bizDayworkService.save(bizDaywork);
                     //保存炉号信息
@@ -849,6 +850,7 @@ public class BizDayworkController extends BaseController {
             if (bizDaywork.getDayworkCarriers().size() == 0) {
                 return error("该批次未选择载具");
             }
+            List<BizDayworkItem> currentItems = bizDayworkItemService.query().eq("daywork_id", bizDaywork.getId()).orderByDesc("create_time").list();
             // 校验铁箱不能不同计划单绑定同一个箱子,同一计划单不能绑定两个铁箱
             List<BizCarrier> carriers = bizCarrierService.query().in("id", bizDaywork.getDayworkCarriers().isEmpty() ? Collections.singletonList(0L) : bizDaywork.getDayworkCarriers().stream().map(BizDayworkCarrier::getCarrierId).collect(Collectors.toList())).list();
             // 判断是否同时有蓝箱和铁箱
@@ -864,13 +866,16 @@ public class BizDayworkController extends BaseController {
                     // 如果是铁箱,查询该铁箱下绑定的批次是否是同一批次
                     // 先查询该铁箱是够绑定了其他批次,并获取该批次计划单号
                     List<BizDayworkCarrier> carrierList =
-                            bizDayworkCarrierService.list(new QueryWrapper<BizDayworkCarrier>().
-                                    eq("carrier_id", item.getCarrierId())
-                                    .eq("is_changed", 0));
+                            bizDayworkCarrierService.query().eq("carrier_id", item.getCarrierId())
+                                    .eq("is_changed", 0)
+//                                    .last("and exists (select 1 from biz_daywork where biz_daywork.id = biz_daywork_carrier.daywork_id and biz_daywork.deleted = 0)")
+                                    .list();
+                            bizDayworkCarrierService.list(new QueryWrapper<BizDayworkCarrier>());
                     if (carrierList.size() > 0) {
                         BizDaywork daywork = bizDayworkService.getById(carrierList.get(0).getDayworkId());
-                        if (!daywork.getProductionPlanDetailId().equals(bizDaywork.getProductionPlanDetailId()) && !daywork.getTechnologicalProcessId().equals(bizDaywork.getTechnologicalProcessId())) {
-                            return error("当前存在绑定其他计划单的铁箱,请重新选择");
+                        List<BizDayworkItem> itemList = bizDayworkItemService.query().eq("daywork_id", daywork.getId()).orderByDesc("create_time").list();
+                        if (!daywork.getProductionPlanDetailId().equals(bizDaywork.getProductionPlanDetailId()) || !currentItems.get(0).getTechnologicalProcessDetailId().equals(itemList.get(0).getTechnologicalProcessDetailId())) {
+                            return error("当前存在绑定其他计划单/工序的铁箱,请重新选择");
                         }
                     }
                     count++;
@@ -885,7 +890,6 @@ public class BizDayworkController extends BaseController {
                 item.setDayworkId(bizDaywork.getId());
             }
             List<BizDayworkCarrier> oldList = bizDayworkCarrierService.query().eq("daywork_id", bizDaywork.getId()).eq("is_changed", 0).list();
-
             return toAjax(saveOrUpdateCarrierBatch(bizDayworkCarrierService, bizDaywork.getDayworkCarriers(), oldList));
         }
     }

+ 81 - 0
src/main/java/cn/ezhizao/project/business/product/controller/BizDayworkItemController.java

@@ -20,6 +20,7 @@ import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceG
 import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupService;
 import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupSubPlanService;
 import cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnologicalProcessDetail;
+import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
 import cn.ezhizao.project.business.turnover.domain.BizTurnover;
 import cn.ezhizao.project.business.turnover.service.IBizTurnoverService;
 import cn.ezhizao.project.system.domain.SysDept;
@@ -94,6 +95,8 @@ public class BizDayworkItemController extends BaseController {
     private IBizLotTechnologicalProcessService bizLotTechnologicalProcessService;
     @Resource
     private IBizLotTechnologicalProcessDetailService bizLotTechnologicalProcessDetailService;
+    @Resource
+    private IBizTechnologicalProcessDetailService bizTechnologicalProcessDetailService;
 
     @Resource
     private IBizDeptProcessService bizDeptProcessService;
@@ -404,6 +407,17 @@ 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->{
+                BizProcess itemProcess = new BizProcess();
+                itemProcess.setProcessCode(item.getProcessCode());
+                itemProcess.setProcessAlias(item.getProcessAlias());
+                itemProcess.setProcessStepNumber(item.getProcessStepNumber());
+                processList.add(itemProcess);
+            });
+            daywork.setProcessSequence(processList);
         }
 
         if(daywork.getIsAmend()==1){
@@ -790,6 +804,73 @@ public class BizDayworkItemController extends BaseController {
     public AjaxResult remove(@PathVariable List<Long> ids) {
         return toAjax(bizDayworkItemService.removeBatchByIds(ids));
     }
+    /***       外协周转。暂时注释       ***/
+//    @Log(title="外协周转申请")
+//    @Transactional
+//    @PostMapping("/turnoverOutsource")
+//    public AjaxResult turnoverOutsource(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException,IllegalAccessException {
+//        // 设置工时
+//        // 获取箱子关联的所有批次
+//        boolean batch = true;
+//        SysDept sysDept = sysDeptMapper.selectDeptByCode(bizDayworkItem.getDeptCode());
+//        bizDayworkItem.setDeptId(sysDept.getDeptId());
+//        bizDayworkItem.setDeptName(sysDept.getDeptName());
+//        List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("is_changed", 0).eq("daywork_id", bizDayworkItem.getDayworkId()).list();
+//        List<BizDayworkCarrier> allCarries = bizDayworkCarrierService.query().eq("is_changed", 0).in("carrier_id", dayworkCarriers.isEmpty() ? Collections.singletonList(0L) : dayworkCarriers.stream().map(BizDayworkCarrier::getCarrierId).collect(Collectors.toList())).list();
+//        // 关联批次的所有最后一条报工
+//        List<BizDayworkItem> bizDayworkItems = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).in("status", Arrays.asList("0", "1", "2", "3")).orderByDesc("status").orderByDesc("create_time").list();
+//        List<BizDayworkItem> bizDayworkItemList = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
+//        List<BizDaywork> bizDayworks = bizDayworkService.query().in("id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
+//        for (BizDaywork v : bizDayworks) {
+//            BizDayworkItem lastItem = bizDayworkItems.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
+//            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());
+//                Integer lot = allItem.stream().mapToInt(BizDayworkItem::getQualifiedNum).sum();
+//                BizDayworkItem bizItem = new BizDayworkItem();
+//                bizItem.setDayworkId(lastItem.getDayworkId());
+//                bizItem.setProcessId(lastItem.getProcessId());
+//                bizItem.setTechnologicalProcessDetailId(lastItem.getTechnologicalProcessDetailId());
+//                bizItem.setStatus(bizDayworkItem.getStatus());
+//                if (bizDayworkItem.getStatus().equals("7")||bizDayworkItem.getStatus().equals("4")) {
+//                    v.setDeptId(bizDayworkItem.getDeptId());
+//                    v.setProcessQualifiedNum(v.getTemporaryProcessQualifiedNum());
+//                    bizDayworkService.updateById(v);
+//                }
+//                if(v.getIsAmend()==1){
+//                    bizItem.setFormDayworkItemId(1L);
+//                }
+//                bizItem.setProdNum(v.getTemporaryProcessQualifiedNum());
+//                bizItem.setLotId(v.getLotId());
+//                bizItem.setLotCode(v.getLotCode());
+//                SysUser user = SecurityUtils.getLoginUser().getUser();
+//                bizItem.setUserId(user.getUserId());
+//                bizItem.setUserName(user.getUserName());
+//                bizItem.setNickName(user.getNickName());
+//                bizItem.setWorkingHours(0L);
+//                bizItem.setTenantId(lastItem.getTenantId());
+//                bizItem.setProductionPlanDetailId(lastItem.getProductionPlanDetailId());
+//                bizItem.setProductionPlanId(lastItem.getProductionPlanId());
+//                bizItem.setProductionPlanDetailSubDetailId(lastItem.getProductionPlanDetailSubDetailId());
+//                bizItem.setProductionPlanDetailSubDetailEquipmentId(lastItem.getProductionPlanDetailSubDetailEquipmentId());
+//                bizItem.setQualifiedNum(lot);
+//                bizItem.setTechnologicalProcessId(lastItem.getTechnologicalProcessId());
+//                bizItem.setProdNum(lot);
+//                bizItem.setEquipmentDetailId(lastItem.getEquipmentDetailId());
+//                bizItem.setEquipmentDetailCode(lastItem.getEquipmentDetailCode());
+//                bizItem.setDeptId(bizDayworkItem.getDeptId());
+//                bizItem.setDeptName(bizDayworkItem.getDeptName());
+//                bizItem.setStartTime(bizDayworkItem.getStartTime());
+//                bizItem.setTurnoverType(bizDayworkItem.getTurnoverType());
+//                bizItem.setTurnoverArea(bizDayworkItem.getTurnoverArea());
+//                bizItem.setPlaceId(bizDayworkItem.getPlaceId());
+//                bizItem.setPlace(bizDayworkItem.getPlace());
+//                bizItem.setProcessStepNumber(lastItem.getProcessStepNumber());
+//                batch = batch && bizDayworkItemService.saveOrUpdate(bizItem);
+//
+//            }
+//        }
+//        return success();
+//    }
 
     @Log(title="周转申请")
     @Transactional

+ 8 - 2
src/main/java/cn/ezhizao/project/business/product/controller/BizProcessInspecionController.java

@@ -273,8 +273,14 @@ public class BizProcessInspecionController extends BaseController
         BizProductionPlanDetail productionPlanDetail = productionPlanDetailService.getById(item.getProductionPlanDetailId());
         BizProduct product = productService.getById(productionPlanDetail.getProductId());
         SysUser user = sysUserService.selectUserById(product.getTechnicianId());
-        item.setTechnicianName(user.getNickName());
-        item.setTechnicianId(user.getUserId());
+        if(user!=null){
+            item.setTechnicianName(user.getNickName());
+            item.setTechnicianId(user.getUserId());
+        }else{
+            item.setTechnicianName("");
+            item.setTechnicianId(0L);
+        }
+
         //查询是否为正常批次
         BizLot lot=new BizLot();
         lot.setId(item.getLotId());

+ 2 - 1
src/main/java/cn/ezhizao/project/business/product/controller/BizProductionPlanDetailController.java

@@ -122,7 +122,8 @@ public class BizProductionPlanDetailController extends BaseController {
             .eq("common_id", currentUserId)
             .eq("dept_id",bizProductionPlanDetail.getDeptId())
             .list();
-
+        List<BizProductionResourceGroup> bizProductionResourceGroups = bizProductionResourceGroupService.query().in("id", detailsList.isEmpty() ? Collections.singletonList(0L) : detailsList.stream().map(BizProductionResourceGroupDetail::getProductionResourceGroupId).collect(Collectors.toList())).list();
+        detailsList = detailsList.stream().filter(v -> bizProductionResourceGroups.stream().anyMatch(e -> e.getId().equals(v.getProductionResourceGroupId()))).collect(Collectors.toList());
         /*
          * 将集合中的productionResourceGroupId取出来,存入一个List集合resourceGroupIds中
          * 后面会根据resourceGroupIds,获得到资源组分配的生产计划(生产计划与资源组的中间表)的集合

+ 55 - 31
src/main/java/cn/ezhizao/project/business/product/controller/BizQuickDayworkController.java

@@ -17,8 +17,6 @@ import cn.ezhizao.project.business.resourceGroup.domain.BizProductionResourceGro
 import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupDetailService;
 import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupService;
 import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupSubPlanService;
-import cn.ezhizao.project.business.technologicalProcess.service.IBizTechnologicalProcessService;
-import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
 import cn.ezhizao.project.business.workshop.domain.BizWorkshop;
 import cn.ezhizao.project.business.workshop.service.IBizWorkshopService;
 import cn.ezhizao.project.system.domain.SysDept;
@@ -80,6 +78,7 @@ public class BizQuickDayworkController extends BaseController {
 
     // 获取快速报工列表
     @PostMapping("/list")
+    @Log(title = "快速报工记录", businessType = BusinessType.SELECT)
     public TableDataInfo list(@RequestBody BizProductionPlanDetail bizProductionPlanDetail) throws NoSuchFieldException, IllegalAccessException {
         // 根据员工信息获取当前未完成的所有快速报工
         List<BizDayworkItem> list = bizDayworkItemService.getUnfinishedDayworkItemByUser(SecurityUtils.getLoginUser().getUser().getUserId());
@@ -101,7 +100,7 @@ public class BizQuickDayworkController extends BaseController {
                 List<BizLotTechnologicalProcessDetail> processDetails = tProcessDetails.stream().filter(t -> t.getLotTechnologicalProcessId().equals(p.getId())).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.getTechnologicalProcessDetail().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
+                v.setNextProcess(v.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(v.getProcess().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
             } else {
                 v.setNextProcess(v.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(v.getTechnologicalProcessDetail().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
             }
@@ -125,6 +124,7 @@ public class BizQuickDayworkController extends BaseController {
 
     // 批量完成报工
     @PostMapping("/finishQuick")
+    @Log(title = "快速报工结束报工", businessType = BusinessType.INSERT)
     public AjaxResult finishQuick(@RequestBody List<BizDayworkItem> items) {
         List<BizDayworkItem> addItems = new ArrayList<>();
         List<BizDayworkItem> updateItems = new ArrayList<>();
@@ -166,6 +166,7 @@ public class BizQuickDayworkController extends BaseController {
                 if (turnItem.getStatus().equals("7")) {
                     l.setDeptId(turnItem.getDeptId());
                     l.setProcessQualifiedNum(lotNum);
+                    l.setTemporaryProcessQualifiedNum(lotNum);
                     updateDaywork.add(l);
                 }
                 turnItem.setLotId(latestItem.getLotId());
@@ -175,6 +176,7 @@ public class BizQuickDayworkController extends BaseController {
                 turnItem.setUserName(user.getUserName());
                 turnItem.setNickName(user.getNickName());
                 turnItem.setWorkingHours(0L);
+                turnItem.setFormDayworkItemId(latestItem.getFormDayworkItemId());
                 turnItem.setTenantId(latestItem.getTenantId());
                 turnItem.setProdNum(latestItem.getProdNum());
                 turnItem.setProductionPlanDetailId(latestItem.getProductionPlanDetailId());
@@ -208,6 +210,7 @@ public class BizQuickDayworkController extends BaseController {
 
     // 通过周转箱获取所有批次 和对应工序
     @PostMapping("/getDayworkByCarrierId")
+    @Log(title = "快速报工扫码载具", businessType = BusinessType.SELECT)
     public AjaxResult getDayworkByCarrierId(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
         // 获取快速报工的所有工段
         SysDept dept = deptService.selectDeptById(bizDayworkItem.getDeptId());
@@ -241,7 +244,6 @@ public class BizQuickDayworkController extends BaseController {
         Map<String, Object> result = new HashMap<>();
         if (turnoverItems.isEmpty()) {
             result.put("items", turnoverItems);
-
             return success(result);
         } else {
             BizDayworkItem conditions = new BizDayworkItem();
@@ -254,47 +256,63 @@ public class BizQuickDayworkController extends BaseController {
             List<SysDept> depts = deptService.selectDeptList(deptConditions);
             // 对应工段的车间
             List<BizWorkshop> workshops = workshopService.query().list();
-
+            AtomicBoolean hasNoProcess = new AtomicBoolean(false);
             items.forEach(l -> {
                 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());
-                    l.setProcess(processDetails.stream().filter(v -> v.getId().equals(l.getTechnologicalProcessDetailId())).map(BizProcess::new).findFirst().orElse(new BizProcess()));
-                    l.setProcessSequence(processDetails.stream().map(BizProcess::new).collect(Collectors.toList()));
-                    l.setNextProcess(l.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(l.getTechnologicalProcessDetail().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
-                    l.setNextProcesses(l.getProcess() != null ? processDetails.stream().sorted(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).map(BizProcess::new).collect(Collectors.toList()) : new ArrayList<>());
-                    l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
+                    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 {
+                        l.setProcess(processDetails.stream().filter(v -> v.getProcessStepNumber().compareTo(l.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getProcessId()))).map(BizProcess::new).findFirst().orElse(new BizProcess()));
+                        l.setProcessSequence(processDetails.stream().map(BizProcess::new).collect(Collectors.toList()));
+                        l.setNextProcess(l.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
+                        l.setNextProcesses(l.getProcess() != null ? processDetails.stream().sorted(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).map(BizProcess::new).collect(Collectors.toList()) : new ArrayList<>());
+                        l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
+                        List<SysDept> nextDept = depts.stream().filter(
+                                e -> allProcesses.stream().filter(
+                                        v -> l.getNextProcesses().stream().anyMatch(
+                                                n -> v.getProcessId().equals(n.getId()))).anyMatch(
+                                        v -> e.getDeptId().equals(v.getDeptId()))
+                        ).collect(Collectors.toList());
 
-                    List<SysDept> nextDept = depts.stream().filter(e -> allProcesses.stream().filter(v -> l.getNextProcesses().stream().anyMatch(n -> v.getProcessId().equals(n.getId()))).anyMatch(v -> e.getDeptId().equals(v.getDeptId()))
-                    ).collect(Collectors.toList());
-                    workshops.forEach(e -> {
-                        nextDept.forEach(v -> {
-                            if (e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId())) ) {
-                                e.getDepts().add(v);
+                        workshops.forEach(e -> {
+                            if (e.getDepts() == null) {
+                                e.setDepts(new ArrayList<>());
                             }
+                            nextDept.forEach(v -> {
+                                if (v.getWorkshopId().equals(e.getId()) && e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId()))) {
+                                    e.getDepts().add(v);
+                                }
+                            });
                         });
-                    });
+                    }
+
                 } else {
                     BizProcess process = l.getProcessSequence().stream().filter(v -> v.getTechnologicalProcessDetailId().equals(l.getTechnologicalProcessDetailId())).findFirst().orElse(new BizProcess());
-                    l.setProcess(l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(process.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId()))).findFirst().orElse(null));
-                    l.setNextProcesses(l.getProcess() != null ? l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).collect(Collectors.toList()) : new ArrayList<>());
-                    l.setNextProcess(l.getNextProcesses().isEmpty() ? null : l.getNextProcesses().get(0));
+                    if (l.getProcessSequence().stream().filter(v -> v.getProcessStepNumber().compareTo(l.getProcessStepNumber()) > 0).noneMatch(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId())))) {
+                        hasNoProcess.set(true);
+                    } else {
+                        l.setProcess(l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(process.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId()))).findFirst().orElse(null));
+                        l.setNextProcesses(l.getProcess() != null ? l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).collect(Collectors.toList()) : new ArrayList<>());
+                        l.setNextProcess(l.getNextProcesses().isEmpty() ? null : l.getNextProcesses().get(0));
 
-                    l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
-                    List<SysDept> nextDept = depts.stream().filter(e -> allProcesses.stream().filter(v -> l.getNextProcesses().stream().anyMatch(n -> v.getProcessId().equals(n.getId()))).anyMatch(v -> e.getDeptId().equals(v.getDeptId()))
-                    ).collect(Collectors.toList());
-                    workshops.forEach(e -> {
-                        if (e.getDepts() == null) {
-                            e.setDepts(new ArrayList<>());
-                        }
-                        nextDept.forEach(v -> {
-                            if (v.getWorkshopId().equals(e.getId()) && e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId())) ) {
-                                e.getDepts().add(v);
+                        l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
+                        List<SysDept> nextDept = depts.stream().filter(e -> allProcesses.stream().filter(v -> l.getNextProcesses().stream().anyMatch(n -> v.getProcessId().equals(n.getId()))).anyMatch(v -> e.getDeptId().equals(v.getDeptId()))
+                        ).collect(Collectors.toList());
+                        workshops.forEach(e -> {
+                            if (e.getDepts() == null) {
+                                e.setDepts(new ArrayList<>());
                             }
+                            nextDept.forEach(v -> {
+                                if (v.getWorkshopId().equals(e.getId()) && e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId()))) {
+                                    e.getDepts().add(v);
+                                }
+                            });
                         });
-                    });
+                    }
                 }
 //                BizProcess process = l.getProcessSequence().stream().filter(v -> v.getTechnologicalProcessDetailId().equals(l.getTechnologicalProcessDetailId())).findFirst().orElse(new BizProcess());
 //                l.setProcess(l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(process.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId()))).findFirst().orElse(null));
@@ -304,6 +322,9 @@ public class BizQuickDayworkController extends BaseController {
 //                l.setProductionPlanNo(productionPlanDetail != null ? productionPlanDetail.getProductionPlanNo() : null);
 //                l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
             });
+            if (hasNoProcess.get()) {
+                return error("该工段没有可报工工序");
+            }
             result.put("items", items);
             result.put("workShops", workshops.stream().filter(v -> !v.getDepts().isEmpty()).collect(Collectors.toList()));
             return success(result);
@@ -353,6 +374,9 @@ public class BizQuickDayworkController extends BaseController {
             bizDayworkItem.setProcessStepNumber(l.getProcess().getProcessStepNumber());
             bizDayworkItem.setUserName(user.getUserName());
             bizDayworkItem.setNickName(user.getNickName());
+            if (l.getDaywork().getIsAmend().equals(1)) {
+                bizDayworkItem.setFormDayworkItemId(1L);
+            }
             //0114 这里要把前段显示的item的processId传进来
             bizDayworkItem.setProcessId(l.getDaywork().getProcessId());
             bizDayworkItem.setTechnologicalProcessDetailId(l.getDaywork().getTechnologicalProcessDetailId());

+ 41 - 5
src/main/java/cn/ezhizao/project/business/product/controller/SortDayworkController.java

@@ -8,8 +8,11 @@ import cn.ezhizao.project.business.inspection.service.IBizInspectionInstructionS
 import cn.ezhizao.project.business.inspection.service.IBizProductInspectionInstructionService;
 import cn.ezhizao.project.business.product.domain.*;
 import cn.ezhizao.project.business.product.service.*;
+import cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnologicalProcessDetail;
+import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
 import cn.ezhizao.project.system.domain.SysUser;
 import cn.ezhizao.project.system.service.ISysUserService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -35,12 +38,22 @@ public class SortDayworkController extends BaseController {
     @Resource
     private IBizProductionPlanDetailService productionPlanDetailService;
     @Resource
+    private IBizDayworkService bizDayworkService;
+    @Resource
+    private IBizLotTechnologicalProcessDetailService bizLotTechnologicalProcessDetailService;
+    @Resource
+    private IBizTechnologicalProcessDetailService bizTechnologicalProcessDetailService;
+    @Resource
+    private IBizDayworkCarrierService bizDayworkCarrierService;
+    @Resource
+    private IBizLotTechnologicalProcessService bizLotTechnologicalProcessService;
+    @Resource
     private ISysUserService sysUserService;
     // 修改报工状态为开始
     @PostMapping("/start")
     public AjaxResult start(@RequestBody BizDaywork bizDaywork) {
         // 获取最新报工
-        List<BizDayworkItem> items = bizDayworkItemService.query().eq("daywork_id", bizDaywork.getId()).orderByDesc("create_time").list();
+        List<BizDayworkItem> items = bizDayworkItemService.query().eq("daywork_id", bizDaywork.getId()).orderByDesc("create_time").lt("status", "4").list();
         BizDayworkItem item = items.get(0);
         if (item.getStatus().equals("0")) {
             item.setStatus("1");
@@ -58,8 +71,8 @@ public class SortDayworkController extends BaseController {
         BizProductionPlanDetail productionPlanDetail = productionPlanDetailService.getById(item.getProductionPlanDetailId());
         BizProduct product = productService.getById(productionPlanDetail.getProductId());
         SysUser user = sysUserService.selectUserById(product.getTechnicianId());
-        item.setTechnicianName(user.getNickName());
-        item.setTechnicianId(user.getUserId());
+        item.setTechnicianName(user == null ? "" : user.getNickName());
+        item.setTechnicianId(user == null ? 0L : user.getUserId());
         return success(item);
     }
 
@@ -104,7 +117,7 @@ public class SortDayworkController extends BaseController {
             l.setProductionPlanDetailSubDetailId(item.getProductionPlanDetailSubDetailId());
             l.setReason(l.getReason());
         });
-        boolean result = bizDayworkItemRejectService.saveBatch(rejectList);
+        boolean result = rejectList.isEmpty() || bizDayworkItemRejectService.saveBatch(rejectList);
         item.setRejectNum(bizDayworkItem.getRejectNum());
         item.setRejectSum(bizDayworkItem.getRejectSum());
         item.setQualifiedNum(bizDayworkItem.getQualifiedNum());
@@ -114,6 +127,7 @@ public class SortDayworkController extends BaseController {
     }
 
     @PostMapping("finish")
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult finish(@RequestBody BizDayworkItem bizDayworkItem) {
         BizDayworkItem item = bizDayworkItemService.getById(bizDayworkItem.getId());
 
@@ -123,13 +137,14 @@ public class SortDayworkController extends BaseController {
         List<BizDayworkItemReject> rejectList = bizDayworkItem.getRejectList();
         rejectList.forEach(l -> {
             l.setDayworkId(item.getDayworkId());
+            l.setDayworkItemId(item.getId());
             l.setLotId(item.getLotId());
             l.setUserId(item.getUserId());
             l.setProductionPlanDetailId(item.getProductionPlanDetailId());
             l.setProductionPlanDetailSubDetailId(item.getProductionPlanDetailSubDetailId());
             l.setReason(l.getReason());
         });
-        boolean result = bizDayworkItemRejectService.saveBatch(rejectList);
+        boolean result = rejectList.isEmpty() || bizDayworkItemRejectService.saveBatch(rejectList);
         item.setRejectNum(bizDayworkItem.getRejectNum());
         item.setRejectSum(bizDayworkItem.getRejectSum());
         item.setQualifiedNum(bizDayworkItem.getQualifiedNum());
@@ -137,6 +152,27 @@ public class SortDayworkController extends BaseController {
         bizDayworkItem.setStatus("3");
         bizDayworkItem.setEndTime(new Date());
         result = result && bizDayworkItemService.updateById(bizDayworkItem);
+        BizDaywork bizDaywork = bizDayworkService.getById(item.getDayworkId());
+        boolean returnCarrier;
+
+        if (bizDaywork.getIsAmend().equals(1) || bizDaywork.getIsWasteRecycling().equals(1)) {
+            List<BizLotTechnologicalProcess> processes = bizLotTechnologicalProcessService.query().eq("lot_id", bizDaywork.getLotId()).list();
+            List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetails = bizLotTechnologicalProcessDetailService.query().in("lot_technological_process_id", processes.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList())).list();
+//            returnCarrier = bizLotTechnologicalProcessDetails.stream().max(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)).orElse(new BizLotTechnologicalProcessDetail()).getProcessStepNumber().equals(item.getProcessStepNumber());
+            returnCarrier = item.getProcessStepNumber().equals(bizLotTechnologicalProcessDetails.stream().filter(v -> !v.getTenantId().equals(9L)).max(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)).orElse(new BizLotTechnologicalProcessDetail()).getProcessStepNumber());
+//                    item.getProcessStepNumber().equals(bizLotTechnologicalProcessDetails.stream().max(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)));
+        } else {
+            List<BizTechnologicalProcessDetail> bizTechnologicalProcessDetails = bizTechnologicalProcessDetailService.query().eq("technological_process_id", item.getTechnologicalProcessId()).list();
+//            returnCarrier = bizTechnologicalProcessDetails.stream().max(Comparator.comparing(BizTechnologicalProcessDetail::getProcessStepNumber)).orElse(new BizTechnologicalProcessDetail()).getProcessStepNumber().equals(item.getProcessStepNumber());
+            returnCarrier = item.getProcessStepNumber().equals(bizTechnologicalProcessDetails.stream().filter(v -> !v.getTenantId().equals(9L)).max(Comparator.comparing(BizTechnologicalProcessDetail::getProcessStepNumber)).orElse(new BizTechnologicalProcessDetail()).getProcessStepNumber());
+        }
+        if (returnCarrier) {
+            List<BizDayworkCarrier> bizDayworkCarriers = bizDayworkCarrierService.query().eq("daywork_id", item.getDayworkId()).eq("is_changed", 0).list();
+            bizDayworkCarriers.forEach(l -> {
+                l.setIsChanged(1);
+            });
+            result = result && (bizDayworkCarriers.isEmpty() || bizDayworkCarrierService.updateBatchById(bizDayworkCarriers));
+        }
         return result ? success() : error("结束失败");
     }
 }

+ 2 - 0
src/main/java/cn/ezhizao/project/business/product/domain/BizDaywork.java

@@ -184,4 +184,6 @@ public class BizDaywork extends BaseEntity
 
     @TableField(exist = false)
     private Integer isWaste;
+    @TableField(exist = false)
+    private Long fromId;
 }

+ 3 - 0
src/main/java/cn/ezhizao/project/business/product/domain/BizDayworkItem.java

@@ -101,6 +101,9 @@ public class BizDayworkItem extends BaseEntity
 
     private String deptName;
 
+    @TableField(exist = false)
+    private String deptCode;
+
     @TableField(exist = false)
     private Long carrierId;
     /** 员工编码 */

+ 1 - 0
src/main/java/cn/ezhizao/project/business/product/domain/BizLot.java

@@ -122,6 +122,7 @@ public class BizLot extends BaseEntity
     private String requisitionDepartmentName;
     @TableField(exist = false)
     private String flag;
+    private Long fromId;
 
 
 

+ 2 - 0
src/main/java/cn/ezhizao/project/system/mapper/SysDeptMapper.java

@@ -45,6 +45,8 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
      */
     public SysDept selectDeptById(Long deptId);
 
+    public SysDept selectDeptByCode(String deptCode);
+
     /**
      * 根据ID查询所有子部门
      *

+ 6 - 5
src/main/resources/mybatis/business/product/BizDayworkItemMapper.xml

@@ -12,8 +12,9 @@
         <result column="turnover_area" property="turnoverArea"/>
         <result column="technological_process_id" property="technologicalProcessId"/>
         <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="productDescription" javaType="java.lang.String" column="technological_process_id"
+        <association property="productDescription" javaType="java.lang.String" column="production_plan_detail_id"
                      select="getProductDescription"/>
         <association property="dictDataLabel" javaType="java.lang.String" column="turnover_area"
                      select="getDictDataLabel"/>
@@ -110,11 +111,11 @@
           and id = #{technological_process_detail_id}
     </select>
     <select id="getProductDescription" resultType="java.lang.String">
-        select description as productDescription
-        from biz_product
+        select product_description as productDescription
+        from biz_production_plan_detail
         where deleted = 0
-          and id =
-              (select product_id from biz_technological_process where deleted = 0 and id = #{technologicalProcessId})
+          and id = #{production_plan_detail_id}
+<!--              (select product_id from biz_technological_process where deleted = 0 and id = #{technologicalProcessId})-->
     </select>
 
     <!--    <select id="getCarrier" resultType="java.lang.String">-->

+ 1 - 1
src/main/resources/mybatis/business/product/BizDayworkMapper.xml

@@ -139,7 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select sum(lot_number) from biz_production_plan_detail_sub_detail where deleted = 0 and production_plan_detail_id=#{productionPlanDetailId}
     </select>
     <select id="getdayworkNum" resultType = "java.lang.Integer">
-        select sum(1) from biz_daywork where deleted = 0 and production_plan_detail_id=#{productionPlanDetailId}
+        select sum(1) from biz_daywork t1 left join biz_lot t2 on t1.lot_id = t2.id where t1.deleted = 0 and t1.production_plan_detail_id=#{productionPlanDetailId} and t1.is_waste_recycling = 0 and t2.from_id = 0
     </select>
     <select id="getPrevProcess" resultMap="BizProcessResult">
         select * from biz_process where deleted = 0 and id =(select process_id from biz_daywork_item where deleted = 0 and daywork_id = #{dayworkId} and status > 4 order by biz_daywork_item.create_time DESC limit 0,1)

+ 7 - 0
src/main/resources/mybatis/system/SysDeptMapper.xml

@@ -81,6 +81,13 @@
 
 
 
+	<select id="selectDeptByCode" resultMap="SysDeptResult">
+		select *
+		from sys_dept d
+		where d.dept_code= #{deptCode}
+	</select>
+
+
 	<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
 		select
 		d.type,