From 35df7283579ab155e32ecf3299c52fc9b7e5bdef Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 09 五月 2025 17:17:23 +0800
Subject: [PATCH] 钣金需求匹配-完善工时计算

---
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml                                     |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml                      |    7 +++
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java           |    5 --
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml                                    |    4 +-
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java       |   28 +-------------
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java                  |    2 +
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java                     |    3 +
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java |   14 +++++++
 8 files changed, 31 insertions(+), 34 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java
index cd8d9a7..2622075 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java
@@ -8,11 +8,14 @@
 import com.aps.common.log.enums.BusinessType;
 import com.aps.common.security.annotation.RequiresPermissions;
 import com.aps.core.domain.ApsStandardProcessRouteLine;
+import com.aps.core.mapper.ApsStandardProcessRouteLineMapper;
 import com.aps.core.service.IApsStandardProcessRouteLineService;
+import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -30,6 +33,8 @@
     @Autowired
     private IApsStandardProcessRouteLineService apsStandardProcessRouteLineService;
 
+    @Resource
+    private ApsStandardProcessRouteLineMapper mapper;
     /**
      * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line鍒楄〃
      */
@@ -97,4 +102,13 @@
     {
         return toAjax(apsStandardProcessRouteLineService.deleteApsStandardProcessRouteLineByIds(ids));
     }
+
+
+
+    @PostMapping("/getStandardTime")
+    public AjaxResult getStandardTime(@RequestBody ApsStandardProcessRouteLine apsStandardProcessRouteLine)
+    {
+        BigDecimal standardTime = mapper.selectTotalStandTime(apsStandardProcessRouteLine.getRouteId()).getStandardTime();
+        return toAjax(standardTime.intValue());
+    }
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java
index 6fb2a70..a06fdae 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java
@@ -61,4 +61,6 @@
      * @return 缁撴灉
      */
     public int deleteApsStandardProcessRouteLineByIds(Long[] ids);
+
+    ApsStandardProcessRouteLine  selectTotalStandTime(String routeHeaderId);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
index af2b106..f49178f 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
@@ -166,7 +166,7 @@
         /*瀹氫箟宸ュ巶涓哄崡閫� */
         String plantCode="FORTUNA";
         /*瀹氫箟涓诲崟绫诲瀷涓洪挘閲戜富鍗�*/
-        String mainOrderType = "0";
+        String mainOrderType = "main";
         /*鐢熸垚鏂版壒娆″彿*/
         String batchNum= requireBatchService.getNewBatchNumber();
         /*鑾峰彇閽i噾涓诲崟淇℃伅*/
@@ -353,9 +353,6 @@
     private void matchRequireAndSubPlan(ApsPlateStandardRequire require) {
         BigDecimal netRequirement = require.getNetRequirement();
         require.setMatchMode("宸ュ崟鍖归厤");
-        if(require.getBomLineCode().equals("W0202-100028")){
-            System.out.println("W0202-100028");
-        }
         if (netRequirement.compareTo(BigDecimal.ZERO) > 0) {
             ApsPlatePlan platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode(),  require.getBomLineCode());
             /*瀛愪欢宸ュ崟鐨勬湭鍖归厤鏁伴噺 浣滀负褰撳墠鐨勫簱瀛�*/
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java
index 587aa42..d0d3b21 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java
@@ -116,8 +116,6 @@
      */
     @Override
     public ApsStandardProcessRouteLine getRouteLineTotalTime(ApsPlateStandardRequire require) {
-        // 瀹氫箟鐙崰鐢熶骇妯″紡甯搁噺
-        String productivityModel_monopolize = "鐙崰";
         // 鍒濆鍖栨�诲伐鏃朵负0
         BigDecimal totalRouteTime = BigDecimal.ZERO;
         //宸ュ巶
@@ -128,7 +126,6 @@
         ApsStandardProcessRouteLine ret=new ApsStandardProcessRouteLine();
         ret.setRouteId(String.valueOf(routId));
         ret.setRouteTime(BigDecimal.ZERO);
-
         // 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅
         Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemNumber).stream().findFirst();
         if (firstProcessRoute.isPresent()) {
@@ -136,30 +133,9 @@
             // 鏋勫缓宸ヨ壓璺嚎琛屽弬鏁板璞�
             ApsStandardProcessRouteLine routeLineParam =new ApsStandardProcessRouteLine();
             routeLineParam.setRouteId(routeHeader.getRouteId());
-
             // 鏌ヨ鏍囧噯宸ヨ壓璺嚎琛屼俊鎭�
-            List<ApsStandardProcessRouteLine> apsStandardProcessRouteLines = apsStandardProcessRouteLineMapper.selectApsStandardProcessRouteLineList(routeLineParam);
-            /*宸ヨ壓璺嚎Line 鎬诲伐鏃�*/
-
-            if(apsStandardProcessRouteLines.isEmpty()){
-                saveRequireError(require,"宸ュ簭涓嶅瓨鍦�");
-            }else {
-                // 閬嶅巻姣忎釜宸ヨ壓璺嚎琛�
-                apsStandardProcessRouteLines.forEach(line -> {
-                    // 榛樿灏嗚璁′骇鑳借缃负璺嚎鏃堕棿
-                    line.setRouteTime(line.getDesignCapacity());
-                    // 濡傛灉鐢熶骇妯″紡涓虹嫭鍗狅紝鍒欒矾绾挎椂闂翠负璁捐浜ц兘涔樹互鍑�闇�姹傞噺
-                    if (line.getProductivityModel().equals(productivityModel_monopolize)) {
-                        line.setRouteTime(line.getDesignCapacity().multiply(require.getNetRequirement()));
-                    }
-
-                });
-                // 绱姞璺嚎鏃堕棿鍒版�诲伐鏃朵腑
-               totalRouteTime = apsStandardProcessRouteLines.stream()
-                        .map(ApsStandardProcessRouteLine::getRouteTime)
-                        .reduce(BigDecimal.ZERO, BigDecimal::add);
-            }
-
+            BigDecimal standardTime = apsStandardProcessRouteLineMapper.selectTotalStandTime(routeHeader.getRouteId()).getStandardTime();
+            totalRouteTime =standardTime.multiply(require.getNetRequirement());
             ret.setRouteTime(totalRouteTime);
             ret.setRouteId(routeHeader.getRouteId());
         }else {
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
index 623bc32..b53581e 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -285,7 +285,7 @@
         select  id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,
              unmatched_quantity,version
         from aps_plate_plan
-        where  del_flag='0' and professional_affiliation !='0' and unmatched_quantity > 0
+        where  del_flag='0' and professional_affiliation ='sub' and unmatched_quantity > 0
         <if test="plant != null  and plant !='' "> and plant = #{plant}</if>
         <if test="itemNumber != null  and itemNumber !='' "> and item_number = #{itemNumber}</if>
         order by document_number asc,id asc
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml
index e609ec1..1965e12 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml
@@ -122,4 +122,11 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectTotalStandTime" parameterType="String"  resultMap="ApsStandardProcessRouteLineResult">
+        select sum(standard_time) as standard_time
+        from aps_standard_process_route_line
+        where route_id = #{routeId}
+        ;
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
index fc2078b..c45b643 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
@@ -159,7 +159,7 @@
         param.setDocState(Arrays.asList(0,1,2,4));
         param.setBeginDate(yesterdayMidnight.format(formatter));
         param.setEndDate(today.format(formatter));
-        param.setPageSize(100);
+        param.setPageSize(500);
         while (continueFlag){
             param.setPageIndex(currentPage);
             continueFlag= batchSaveByPager(param);
@@ -303,6 +303,7 @@
                 order.setProcessStatus("0");
                 order.setOpStatus(jsonObject.getString("OpStatus"));
                 order.setNextOpName(jsonObject.getString("NextOpName"));
+                order.setLowOrderCode(jsonObject.getString("LowLevelCode"));
                 jobs.add(order);
                 orderIds.add(order.getOrderId());
             } catch (Exception e) {
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
index 6edc249..2da09bb 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
@@ -417,8 +417,8 @@
             op_num,work_center,dept,
             start_date,complete_date,next_dept,
             is_hold_release,is_out_source,org_code,
-            order_id,now(),'0',org_code,doc_status,std_op,op_status,next_op_name,
-            case when low_order_code='0' then 'main' else 'sub' end as professional_affiliation,
+            cast(order_id as bigint) as id,now(),'0',org_code,doc_status,std_op,op_status,next_op_name,
+            (case when low_order_code='0' then 'main' else 'sub' end ) as professional_affiliation,
             order_create_time
         from aps_work_order_job
         where ( doc_status in (0,1,2,4) and is_hold_release='0'

--
Gitblit v1.9.3