guoyujia před 4 měsíci
rodič
revize
93bba50458

+ 70 - 0
src/main/java/cn/ezhizao/project/business/controller/BizDayworkController.java

@@ -341,6 +341,62 @@ public class BizDayworkController extends BaseController {
         }
 
     }
+    @PostMapping("/processesMultiForOutsource")
+    @Log(title = "查询外协工序", businessType = BusinessType.SELECT)
+    public TableDataInfo processesMultiForOutsource(@RequestBody Map<String, Object> data) {
+        //查找当前生产子计划的批次报工信息,找到最后一条包报工信息
+        List<Map<String, Object>> bizDayworkList = (List<Map<String, Object>>) data.get("dayworkList");
+        String keyword = data.get("keyword").toString();
+
+        List<BizDaywork> dayworks = convertToBizDayworkList(bizDayworkList);
+
+        String lastProcessStep = "1000";
+        String lastFinishProcessStep = "1000";
+        BizDayworkItem dayworkItem = new BizDayworkItem();
+        List<BizDaywork> dayworkList = bizDayworkService.query().in("lot_id", dayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList())).eq("deleted", 0).list();
+
+        for (BizDaywork daywork : dayworkList) {
+            BizDaywork dayworkInfo = dayworks.stream().filter(v -> v.getLotId().equals(daywork.getLotId())).findFirst().orElse(null);
+            dayworkItem.setDayworkId(daywork.getId());
+            dayworkItem.setLotId(daywork.getLotId());
+            dayworkItem.setOutsourceDetailId(dayworkInfo.getOutsourceDetailId());
+            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.getOutsourcesItemList(dayworkItem);
+            List<BizDayworkItem> finishedItem = bizDayworkItemService.getLastFinished(dayworkItem);
+
+            if (dayworkItemList.size() > 0) {
+                BizDayworkItem firstItem = dayworkItemList.get(0);
+                if (firstItem.getProcessStepNumber().compareTo(lastProcessStep) > 0) {
+                    lastProcessStep = firstItem.getProcessStepNumber();
+                    dayworkItem = firstItem;
+                }
+                if (finishedItem.size() > 0 && finishedItem.get(0).getProcessStepNumber().compareTo(lastFinishProcessStep) > 0) {
+                    lastFinishProcessStep = finishedItem.get(0).getProcessStepNumber();
+                }
+            } else {
+                List<BizTechnologicalProcessDetail> processList = new ArrayList<>();
+                return getDataTable(processList);
+            }
+        }
+
+        dayworkItem.setKeyword(keyword);
+        dayworkItem.setProcessStepNumber(lastFinishProcessStep);
+
+        List<BizTechnologicalProcessDetail> processList = bizTechnologicalProcessDetailService.getProcessList(dayworkItem);
+
+        return getDataTable(processList);
+
+    }
+    private List<BizDaywork> convertToBizDayworkList(List<Map<String, Object>> dayworkList) {
+        List<BizDaywork> dayworks = new ArrayList<>();
+        for (Map<String, Object> item : dayworkList) {
+            BizDaywork daywork = new BizDaywork();
+            daywork.setOutsourceDetailId(Long.valueOf(item.get("outsourceDetailId").toString())); // 根据实际字段设置
+            daywork.setLotId(Long.valueOf( item.get("lotId").toString())); // 根据实际字段设置
+            // 继续设置其他字段...
+            dayworks.add(daywork);
+        }
+        return dayworks;
+    }
 
     @GetMapping("/getLotPosition")
     @Log(title = "查询批次位置", businessType = BusinessType.SELECT)
@@ -1566,6 +1622,20 @@ public class BizDayworkController extends BaseController {
             return getDataTable(processList);
         }
     }
+    @PostMapping("/multiProcessesForOutsourceByFirst")
+    @Log(title = "获取首序外协工序", businessType = BusinessType.SELECT)
+    public TableDataInfo multiProcessesForOutsourceByFirst(@RequestBody Map<String, Object> data) {
+        List<Map<String, Object>> bizDayworkList = (List<Map<String, Object>>) data.get("dayworkList");
+        String keyword = data.get("keyword").toString();
+        List<BizDaywork> dayworks = convertToBizDayworkList(bizDayworkList);
+        BizLot currentLot = bizLotService.getById(dayworks.get(0).getLotId());
+        currentLot.setKeyword(keyword);
+        //根据当前工序查找之后的工序列表
+        //是否单批单改或废品回用
+//        startPage();
+            List<BizTechnologicalProcessDetail> processList = bizTechnologicalProcessDetailService.getProcessList(currentLot);
+            return getDataTable(processList);
+    }
     @PostMapping("/updateDayworkFurnace")
     @Log(title = "修改报工炉号", businessType = BusinessType.SELECT)
     public AjaxResult updateDayworkFurnace(@RequestBody BizDaywork bizDaywork) {

+ 5 - 0
src/main/java/cn/ezhizao/project/business/controller/BizOutsourcedOrderController.java

@@ -32,6 +32,7 @@ import cn.hutool.extra.template.TemplateException;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import freemarker.template.Template;
 import lombok.Data;
+import net.sf.jsqlparser.expression.LongValue;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
@@ -1689,6 +1690,10 @@ public class BizOutsourcedOrderController extends BaseController {
                 item.setProductionPlanNo(l.getProductionPlanNo());
                 item.setLineNumber(l.getLineNumber());
                 item.setProductionPlanDetailId(l.getId());
+                item.setIsAmend(v.getIsAmend());
+                item.setIsWasteRecycling(Integer.parseInt (v.getIsWasteRecycling().toString()));
+                item.setIsSuperaddition(v.getIsSuperaddition());
+                item.setIsWaste(v.getIsWaste());
                 result.add(item);
             });
             List<BizOutsourcedOrderDetail> currentDetails = details.stream().filter(v -> detailWorkLot.stream().anyMatch(t -> t.getId().equals(v.getLotId()))).collect(Collectors.toList());

+ 25 - 0
src/main/java/cn/ezhizao/project/business/controller/BizReturnReceiptController.java

@@ -70,6 +70,8 @@ public class BizReturnReceiptController extends BaseController
     @Resource
     private IBizDayworkCarrierService bizDayworkCarrierService;
     @Resource
+    private IBizOutsourcedOrderService bizOutsourcedOrderService;
+    @Resource
     HttpServletRequest request;
 
     final private String processInspectionNoKey = "processInspectionCode";
@@ -343,11 +345,32 @@ public class BizReturnReceiptController extends BaseController
         }
         bizDayworkItemService.updateBatchById(dayworkItem);
 //        bizProcessInspecionService.saveBatch(processInspecionList);
+        //如果是内部分选外协干完最后一道序,则批次收回审核后,将周转工段设置为-1
+        updateOutsourceDetailDept(bizReturnReceipt.getDetailInfo());
         // 新增所有的检查单
         bizReturnReceiptDetailService.saveBatch(bizReturnReceipt.getDetailInfo());
         addProcessInspection(bizReturnReceipt.getDetailInfo(), processCodes);
         return success();
     }
+    public void updateOutsourceDetailDept(List<BizReturnReceiptDetail> detailInfo){
+        //需要收回审核的批次
+        List<BizReturnReceiptDetail> returnReceiptDetailList = detailInfo.stream().filter(v -> v.getStatus() == 1).collect(Collectors.toList());
+        if(!returnReceiptDetailList.isEmpty()){
+            List<Long> outsourceDetailIds = returnReceiptDetailList.stream().map(BizReturnReceiptDetail::getOutsourceDetailId).distinct().collect(Collectors.toList());
+            List<BizOutsourcedOrderDetail> outsourceOrderDetailList = bizOutsourcedOrderDetailService.query().in("id", outsourceDetailIds).list();
+            List<Long> masterIds = outsourceOrderDetailList.stream().map(BizOutsourcedOrderDetail::getMasterId).collect(Collectors.toList());
+            //内部外协发出单
+            List<BizOutsourcedOrder> outsourcedOrderList = bizOutsourcedOrderService.query().in("id", masterIds).eq("is_inner_outsource",1).list();
+            if(!outsourcedOrderList.isEmpty()){
+                List<Long> hasInnerOutsouceIds = outsourcedOrderList.stream().map(BizOutsourcedOrder::getId).collect(Collectors.toList());
+                List<BizOutsourcedOrderDetail> collect = outsourceOrderDetailList.stream().filter(v -> hasInnerOutsouceIds.contains(v.getMasterId())).collect(Collectors.toList());
+                collect.forEach(v->{
+                    v.setProductionDeptId(-1L);
+                });
+                bizOutsourcedOrderDetailService.updateBatchById(collect);
+            }
+        }
+    }
 
     private void addProcessInspection(List<BizReturnReceiptDetail> detailInfo, List<String> codes) {
         // detailInfo 是收回单明细 codes 是需要质检的所有工序明细
@@ -640,6 +663,8 @@ public class BizReturnReceiptController extends BaseController
         if(bizReturnReceipt.getDetailInfo().size()==0) {
             bizReturnReceiptService.removeById(bizReturnReceipt.getId());
         }
+        //如果是内部分选外协干完最后一道序,则批次收回审核后,将周转工段设置为-1
+        updateOutsourceDetailDept(bizReturnReceipt.getDetailInfo());
         addProcessInspection(bizReturnReceipt.getDetailInfo(), processCodes);
         bizProcessInspecionService.saveBatch(processInspecionList);
         return success();

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

@@ -282,8 +282,6 @@ public class BizDayworkItem extends BaseEntity {
      */
     @TableField(exist = false)
     private Long isWasteRecycling;
-    @TableField(exist = false)
-    private Long isWaste;
 
     @TableField(exist = false)
     private String specialStartTime;

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

@@ -136,5 +136,9 @@ public class BizOutsourcedOrder extends BaseEntity
     private Long outsourceDeptId;
     @TableField(exist = false)
     private String outsourceDeptName;
+    @TableField(exist = false)
+    private String startTime;
+    @TableField(exist = false)
+    private String endTime;
 
 }

+ 3 - 2
src/main/resources/mybatis/business/BizDayworkMapper.xml

@@ -462,6 +462,7 @@
         t4.production_plan_no,
         t4.line_number,
         t3.technology_version,
+        (select is_waste from biz_lot where id = t1.lot_id and deleted = 0) as isWaste,
         (
         SELECT
         GROUP_CONCAT(carrier_code ORDER BY carrier_code SEPARATOR ',')
@@ -512,6 +513,7 @@
         t4.production_plan_no,
         t4.line_number,
         t3.technology_version,
+        (select is_waste from biz_lot where id = t1.lot_id and deleted = 0) as isWaste,
         (
         SELECT
         GROUP_CONCAT(carrier_code ORDER BY carrier_code SEPARATOR ',')
@@ -874,11 +876,10 @@
     <!--    -->
     <select id="getItemListForOutsource" parameterType="BizDayworkItem" resultMap="BizDayworkItemResultForOutsource">
         SELECT
-        t1.*,t4.is_waste as isWaste
+        t1.*
         FROM biz_daywork_item t1
         LEFT JOIN sys_dept t2 ON t1.dept_id=t2.dept_id
         LEFT JOIN biz_daywork t3 ON t1.daywork_id = t3.id
-        left join biz_lot t4 on t1.lot_id = t4.id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
             t1.deleted = 0 AND
             t1.status >= 4 AND

+ 31 - 29
src/main/resources/mybatis/business/BizOutsourcedOrderDetailMapper.xml

@@ -87,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
             t1.deleted = 0 and t3.deleted = 0 and t3.is_audit = 1
             <!-- 且未完成最后一道序 -->
-            and t4.status &lt; 2
+<!--            and t4.status &lt; 2-->
             <if test="returnFormCode != null  and returnFormCode != ''"> AND t3.form_code like concat('%', #{returnFormCode}, '%')</if>
             <if test="productDescription != null "> AND t1.product_description like concat('%', #{productDescription}, '%')</if>
             <if test="supplierName != null  and supplierName != ''"> AND t1.supplier_name like concat('%', #{supplierName}, '%')</if>
@@ -125,21 +125,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT id FROM biz_daywork_item WHERE daywork_id = #{dayworkId} AND deleted = 0 ORDER BY process_step_number DESC, create_time DESC LIMIT 1
     </select>
     <select id="getList" parameterType="BizOutsourcedOrderDetail" resultMap="BizOutsourcedOrderDetailResult">
-        SELECT * FROM biz_outsourced_order_detail
+        SELECT t1.*,t2.is_waste_recycling,t2.is_waste,t2.is_amend,t2.is_superaddition FROM biz_outsourced_order_detail t1
+        left join biz_lot t2 on t1.lot_id = t2.id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            deleted = 0
-            <if test="masterId != null "> AND master_id = #{masterId}</if>
-            <if test="formCode != null  and formCode != ''"> AND form_code = #{formCode}</if>
-            <if test="formDate != null "> AND form_date = #{formDate}</if>
-            <if test="supplierName != null  and supplierName != ''"> AND supplier_name like concat('%', #{supplierName}, '%')</if>
-            <if test="deliveryMethod != null "> AND delivery_method = #{deliveryMethod}</if>
-            <if test="packagingMethod != null  and packagingMethod != ''"> AND packaging_method = #{packagingMethod}</if>
-            <if test="productDescription != null  and productDescription != ''"> AND product_description = #{productDescription}</if>
-            <if test="technologyVersion != null  and technologyVersion != ''"> AND technology_version = #{technologyVersion}</if>
-            <if test="originalCarrier != null  and originalCarrier != ''"> AND original_carrier = #{originalCarrier}</if>
-            <if test="originalCarrierCount != null "> AND original_carrier_count = #{originalCarrierCount}</if>
-            <if test="newCarrier != null  and newCarrier != ''"> AND new_carrier = #{newCarrier}</if>
-            <if test="newCarrierCount != null "> AND new_carrier_count = #{newCarrierCount}</if>
+            t1.deleted = 0 and t2.deleted = 0
+            <if test="masterId != null "> AND t1.master_id = #{masterId}</if>
+            <if test="formCode != null  and formCode != ''"> AND t1.form_code = #{formCode}</if>
+            <if test="formDate != null "> AND t1.form_date = #{formDate}</if>
+            <if test="supplierName != null  and supplierName != ''"> AND t1.supplier_name like concat('%', #{supplierName}, '%')</if>
+            <if test="deliveryMethod != null "> AND t1.delivery_method = #{deliveryMethod}</if>
+            <if test="packagingMethod != null  and packagingMethod != ''"> AND t1.packaging_method = #{packagingMethod}</if>
+            <if test="productDescription != null  and productDescription != ''"> AND t1.product_description = #{productDescription}</if>
+            <if test="technologyVersion != null  and technologyVersion != ''"> AND t1.technology_version = #{technologyVersion}</if>
+            <if test="originalCarrier != null  and originalCarrier != ''"> AND t1.original_carrier = #{originalCarrier}</if>
+            <if test="originalCarrierCount != null "> AND t1.original_carrier_count = #{originalCarrierCount}</if>
+            <if test="newCarrier != null  and newCarrier != ''"> AND t1.new_carrier = #{newCarrier}</if>
+            <if test="newCarrierCount != null "> AND t1.new_carrier_count = #{newCarrierCount}</if>
         </trim>
     </select>
     <select id="getTechnologicalProcessDetailId" resultType="long">
@@ -152,21 +153,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select t2.process_alias from biz_daywork_item t1 left join biz_process t2 on t1.process_id = t2.id where t1.deleted = 0 and t1.daywork_id = #{dayworkId} order by t1.process_step_number desc, t1.create_time desc limit 1
     </select>
     <select id="getInnerList" parameterType="BizOutsourcedOrderDetail" resultMap="BizOutsourcedOrderDetailInnerResult">
-        SELECT * FROM biz_outsourced_order_detail
+        SELECT t1.*,t2.is_waste_recycling,t2.is_waste,t2.is_amend,t2.is_superaddition FROM biz_outsourced_order_detail t1
+        left join biz_lot t2 on t1.lot_id = t2.id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            deleted = 0
-            <if test="masterId != null "> AND master_id = #{masterId}</if>
-            <if test="formCode != null  and formCode != ''"> AND form_code = #{formCode}</if>
-            <if test="formDate != null "> AND form_date = #{formDate}</if>
-            <if test="supplierName != null  and supplierName != ''"> AND supplier_name like concat('%', #{supplierName}, '%')</if>
-            <if test="deliveryMethod != null "> AND delivery_method = #{deliveryMethod}</if>
-            <if test="packagingMethod != null  and packagingMethod != ''"> AND packaging_method = #{packagingMethod}</if>
-            <if test="productDescription != null  and productDescription != ''"> AND product_description = #{productDescription}</if>
-            <if test="technologyVersion != null  and technologyVersion != ''"> AND technology_version = #{technologyVersion}</if>
-            <if test="originalCarrier != null  and originalCarrier != ''"> AND original_carrier = #{originalCarrier}</if>
-            <if test="originalCarrierCount != null "> AND original_carrier_count = #{originalCarrierCount}</if>
-            <if test="newCarrier != null  and newCarrier != ''"> AND new_carrier = #{newCarrier}</if>
-            <if test="newCarrierCount != null "> AND new_carrier_count = #{newCarrierCount}</if>
+            t1.deleted = 0 and t2.deleted = 0
+            <if test="masterId != null "> AND t1.master_id = #{masterId}</if>
+            <if test="formCode != null  and formCode != ''"> AND t1.form_code = #{formCode}</if>
+            <if test="formDate != null "> AND t1.form_date = #{formDate}</if>
+            <if test="supplierName != null  and supplierName != ''"> AND t1.supplier_name like concat('%', #{supplierName}, '%')</if>
+            <if test="deliveryMethod != null "> AND t1.delivery_method = #{deliveryMethod}</if>
+            <if test="packagingMethod != null  and packagingMethod != ''"> AND t1.packaging_method = #{packagingMethod}</if>
+            <if test="productDescription != null  and productDescription != ''"> AND t1.product_description = #{productDescription}</if>
+            <if test="technologyVersion != null  and technologyVersion != ''"> AND t1.technology_version = #{technologyVersion}</if>
+            <if test="originalCarrier != null  and originalCarrier != ''"> AND t1.original_carrier = #{originalCarrier}</if>
+            <if test="originalCarrierCount != null "> AND t1.original_carrier_count = #{originalCarrierCount}</if>
+            <if test="newCarrier != null  and newCarrier != ''"> AND t1.new_carrier = #{newCarrier}</if>
+            <if test="newCarrierCount != null "> AND t1.new_carrier_count = #{newCarrierCount}</if>
         </trim>
     </select>
     <select id="getPackage" resultType="integer">

+ 12 - 0
src/main/resources/mybatis/business/BizOutsourcedOrderMapper.xml

@@ -22,6 +22,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="freightAmount != null "> AND freight_amount = #{freightAmount}</if>
             <if test="isFirstProcess != null "> AND is_first_process = #{isFirstProcess}</if>
             <if test="packagingMethod != null  and packagingMethod != ''"> AND packaging_method = #{packagingMethod}</if>
+            <if test="startTime != null">
+                and date_format(form_date,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
+            </if>
+            <if test="endTime != null">
+                and date_format(form_date,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
         </trim>
         order by create_time desc
     </select>
@@ -38,6 +44,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="freightAmount != null "> AND t1.freight_amount = #{freightAmount}</if>
             <if test="isFirstProcess != null "> AND t1.is_first_process = #{isFirstProcess}</if>
             <if test="packagingMethod != null  and packagingMethod != ''"> AND t1.packaging_method = #{packagingMethod}</if>
+            <if test="startTime != null">
+                and date_format(t1.form_date,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
+            </if>
+            <if test="endTime != null">
+                and date_format(t1.form_date,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
         </trim>
         order by create_time desc
     </select>