Ver código fonte

Merge remote-tracking branch 'origin/master'

guoyujia 9 meses atrás
pai
commit
ad2415b895

+ 23 - 2
src/main/java/cn/ezhizao/project/business/auxiliaryDaywork/controller/BizDayworkAuxiliaryItemController.java

@@ -120,6 +120,16 @@ public class BizDayworkAuxiliaryItemController extends BaseController {
             List<BizDayworkItem> dayworkItems = bizDayworkItemService.query().eq("daywork_id", item.getDayworkId()).eq("technological_process_detail_id", item.getTechnologicalProcessDetailId()).list();
             bizDayworkAuxiliaryItemRejects.forEach(v -> {
                 v.setDayworkItem(dayworkItems.stream().filter(v1 -> v1.getId().equals(v.getDayworkItemId())).findFirst().orElse(new BizDayworkItem()));
+                v.setQualifiedNum(v.getDayworkItem() != null ? v.getDayworkItem().getQualifiedNum() : v.getQualifiedNum());
+            });
+            dayworkItems.stream().filter(v -> bizDayworkAuxiliaryItemRejects.stream().noneMatch(e -> e.getDayworkItemId().equals(v.getId()))).forEach(v -> {
+                BizDayworkAuxiliaryItemReject reject = new BizDayworkAuxiliaryItemReject(v);
+                reject.setDayworkAuxiliaryItemId(bizDayworkAuxiliaryItem.getId());
+                reject.setUserName(bizDayworkAuxiliaryItem.getUserName());
+                reject.setNickName(bizDayworkAuxiliaryItem.getNickName());
+                reject.setTenantId(bizDayworkAuxiliaryItem.getTenantId());
+                reject.setDayworkItem(v);
+                bizDayworkAuxiliaryItemRejects.add(reject);
             });
             item.setRejectList(bizDayworkAuxiliaryItemRejects);
         }
@@ -184,8 +194,16 @@ public class BizDayworkAuxiliaryItemController extends BaseController {
         bizDayworkAuxiliaryItem.setTenantId(getLoginUser().getTenantId());
         bizDayworkAuxiliaryItem.setProductId(bizDayworkAuxiliaryItem.getDaywork().getProductId());
         List<BizDayworkAuxiliaryItemReject> rejects = new ArrayList<>();
+
         List<BizDayworkItem> items = bizDayworkItemService.query().eq("daywork_id", bizDayworkAuxiliaryItem.getDayworkId()).eq("technological_process_detail_id", bizDayworkAuxiliaryItem.getTechnologicalProcessDetailId()).lt("status", "4").list();
+        if (items.stream().anyMatch(v -> v.getStatus().equals("3"))) {
+            int prodNum = items.stream().mapToInt(BizDayworkItem::getQualifiedNum).sum();
+            bizDayworkAuxiliaryItem.setProdNum(prodNum);
+        } else {
+            bizDayworkAuxiliaryItem.setProdNum(items.get(0).getProdNum());
+        }
         bizDayworkAuxiliaryItemService.save(bizDayworkAuxiliaryItem);
+
         items.forEach(l -> {
             BizDayworkAuxiliaryItemReject reject = new BizDayworkAuxiliaryItemReject(l);
             reject.setDayworkAuxiliaryItemId(bizDayworkAuxiliaryItem.getId());
@@ -222,8 +240,11 @@ public class BizDayworkAuxiliaryItemController extends BaseController {
         // 修改报工表的合格数量
         BizDaywork bizDaywork = bizDayworkService.getById(bizDayworkAuxiliaryItem.getDayworkId());
         List<BizDayworkItem> bizDayworkItems = bizDayworkItemService.query().eq("daywork_id", bizDaywork.getId()).orderByDesc("create_time").list();
-        bizDaywork.setProcessQualifiedNum(bizDaywork.getProcessQualifiedNum() - rejectNum);
-        bizDaywork.setTemporaryProcessQualifiedNum(bizDaywork.getTemporaryProcessQualifiedNum() - rejectNum);
+        bizDaywork.setProcessQualifiedNum(bizDaywork.getProcessQualifiedNum() != 0 ? bizDaywork.getProcessQualifiedNum() - rejectNum : 0);
+        bizDaywork.setTemporaryProcessQualifiedNum(bizDaywork.getTemporaryProcessQualifiedNum() != 0 ? bizDaywork.getTemporaryProcessQualifiedNum() - rejectNum : 0);
+        if (bizDaywork.getProcessQualifiedNum().compareTo(0) < 0 || bizDaywork.getTemporaryProcessQualifiedNum().compareTo(0) < 0) {
+            return error("当前报工数量不能小于0");
+        }
         BizDayworkItem lastDaywork = bizDayworkItems.stream().filter(v -> v.getStatus().compareTo("4") < 0).sorted(Comparator.comparing(BizDayworkItem::getProcessStepNumber).thenComparing(BizDayworkItem::getStatus).reversed()).findFirst().orElse(new BizDayworkItem());
         // 假设最新报工已完成 则修改下序报工的投产数量
         if (lastDaywork.getStatus().compareTo("3") < 0) {

+ 1 - 0
src/main/java/cn/ezhizao/project/business/auxiliaryDaywork/domain/BizDayworkAuxiliaryItem.java

@@ -169,5 +169,6 @@ public class BizDayworkAuxiliaryItem extends BaseEntity
 
     private Integer rejectNum;
     private Integer qualifiedNum;
+    private Integer prodNum;
 
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/auxiliaryDaywork/domain/BizDayworkAuxiliaryItemReject.java

@@ -75,5 +75,6 @@ public class BizDayworkAuxiliaryItemReject extends BaseEntity
         } else {
             this.prodNum = l.getProdNum();
         }
+        this.qualifiedNum = l.getQualifiedNum();
     }
 }

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

@@ -108,7 +108,7 @@ public class BizDayworkItemReject extends BaseEntity
         this.tenantId = l.getTenantId();
         this.dayworkId = l.getDayworkId();
         this.dayworkItemId = l.getDayworkItemId();
-        this.reason = "辅助工序废品";
+        this.reason = "5";
         this.rejectNum = Long.valueOf(l.getRejectNum());
         this.dayworkAuxiliaryItemId = l.getDayworkAuxiliaryItemId();
         this.dayworkAuxiliaryItemRejectId = l.getId();

+ 1 - 0
src/main/resources/mybatis/business/auxiliaryDaywork/BizDayworkAuxiliaryItemMapper.xml

@@ -155,6 +155,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT t1.* FROM biz_daywork_auxiliary_item t1 left join biz_product t3 on t3.id = t1.product_id left join biz_lot t4 on t4.id = t1.lot_id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
             t1.deleted = 0
+            <if test="id != null"> AND t1.id = #{id}</if>
             <if test="deptName != null  and deptName != ''"> AND t1.dept_name like concat('%', #{deptName}, '%')</if>
             <if test="status != null  and status != ''"> AND t1.status = #{status}</if>
             <if test="userName != null  and userName != ''"> AND t1.user_name like concat('%', #{userName}, '%')</if>