From 4a9dc7790df8f4572201cd32f1359f5d6415ce18 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期二, 13 五月 2025 16:10:44 +0800
Subject: [PATCH] 钣金工单计划管理:完善 工单创建时间、需求数量
---
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java | 6 ++
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml | 26 ++++++------
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java | 26 +++++++++----
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml | 39 +++++++++----------
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml | 18 +++++----
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java | 5 ++
6 files changed, 68 insertions(+), 52 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java
index c15b17d..315a4cd 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java
@@ -60,7 +60,7 @@
/** 闇�姹傛暟閲� */
// @Excel(name = "闇�姹傛暟閲�")
- private String requireAmount;
+ private BigDecimal requireAmount;
/** 鍑�闇�姹傞噺 */
// @Excel(name = "鍑�闇�姹傞噺")
@@ -113,4 +113,8 @@
private String delFlag;
+ /**宸ュ崟鍒涘缓鏃堕棿*/
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date orderCreateTime;
}
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 dc8ed21..437569f 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
@@ -14,6 +14,7 @@
import jakarta.annotation.Resource;
import com.aps.core.domain.ApsPlateStandardRequire;
import com.aps.core.mapper.ApsPlateStandardRequireMapper;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.aps.core.service.IApsPlateStandardRequireService;
@@ -27,6 +28,7 @@
* @author zhl
* @date 2025-05-06
*/
+@Slf4j
@Service
public class ApsPlateStandardRequireServiceImpl implements IApsPlateStandardRequireService
{
@@ -174,7 +176,7 @@
/*鑾峰彇閽i噾涓诲崟淇℃伅*/
List<ApsPlatePlan> mainPlans = platePlanMapper.selectPlatePlanByPlantMajor(plantCode,mainOrderType);
Hashtable<String, ApsMaterialStorageManagement> usedStorage = new Hashtable<>();
-
+ log.info("寮�濮嬬敓鎴愰渶姹傦細");
for (ApsPlatePlan mainPlan : mainPlans) {
String itemNumber = mainPlan.getItemNumber();
/*鏍规嵁鏂欏彿 鑾峰彇BOM Header */
@@ -184,7 +186,7 @@
List<ApsPlateStandardRequireBomStockDetail> stockDetailsList=new ArrayList<>();
List<ApsPlateStandardRequireBomOrderDetail> orderDetailsList=new ArrayList<>();
-
+ log.info("寮�濮嬬敓鎴愰渶姹傦細宸ュ崟鍙凤細"+mainPlan.getDocumentNumber());
getBomRequires(plantCode, "0","0",itemNumber,BigDecimal.ONE, batchNum, null
, mainPlan, requiresList, 0L,stockDetailsList,orderDetailsList,usedStorage
);
@@ -198,7 +200,7 @@
apsPlateStandardRequireMapper.batchInsert(batch);
}
}
-
+ log.info("鐢熸垚瀹屾垚");
// if(!stockDetailsList.isEmpty()){
// int batchSize = 1000;
// stockDetailsList.forEach(x->x.setId(IdUtil.getSnowflakeNextId()));
@@ -262,20 +264,22 @@
require.setBomLineId(bomLineId);
require.setBomLineCode(itemCode);
require.setBomLineLevel(level);
- require.setBomUseAmount(itemNum);
+ require.setOrderCreateTime(plan.getOrderCreateTime());
require.setCreateTime(DateUtils.getNowDate());
require.setCreateBy(SecurityUtils.getUsername());
require.setDelFlag("0");
require.setProductionBase(plan.getProductionBase());
- /*璁$畻闇�姹傛暟閲�*/
+ /*BOM鐢ㄩ噺 level0=1 */
if (level == 0) {
require.setBomUseAmount(BigDecimal.ONE);
} else {
- require.setBomUseAmount(itemNum.multiply(plan.getProductionQuantity()));
+ require.setBomUseAmount(itemNum);
}
+ /*璁$畻闇�姹傛暟閲�*/
+ require.setRequireAmount(itemNum.multiply(plan.getProductionQuantity()));
/*鏌ユ壘搴撳瓨锛岃绠楀噣闇�姹傦紝淇濆瓨鍓╀綑搴撳瓨锛屼繚瀛樺簱瀛樻墸鍑忔槑缁�*/
/*榛樿鍑�闇�姹備负BOM鐢ㄩ噺*/
- require.setNetRequirement(require.getBomUseAmount());
+ require.setNetRequirement(require.getRequireAmount());
/*璇诲彇搴撳瓨淇℃伅鐨勪紭鍏堢骇-> 鍐呭瓨銆乺edis銆乨b*/
/* ApsMaterialStorageManagement storage = usedStorage.get(itemCode);
@@ -346,7 +350,12 @@
/*璁剧疆寮�濮嬫椂闂�*/
Date startDay = new Date();
- startDay.setTime(require.getCompleteDate().getTime() - totalRouteMillisecond);
+ /*寮�濮嬫椂闂� 榛樿涓� 瀹屾垚鏃堕棿 濡傛灉鍑�闇�姹�>0 寮�濮嬫椂闂�=缁撴潫鏃堕棿-宸ュ簭鎬诲伐鏃�*/
+ startDay.setTime(require.getCompleteDate().getTime());
+ if(require.getNetRequirement().compareTo(BigDecimal.ZERO)>0){
+ startDay.setTime(require.getCompleteDate().getTime() - totalRouteMillisecond);
+ }
+
require.setStartDate(startDay);
/*璁$畻鏄惁鏈夐闄�*/
@@ -367,6 +376,7 @@
matchRequireAndSubPlan(require,orderDetailsList);
}
allRequires.add(require);
+ log.info("宸茬敓鎴愰渶姹傦細"+plan.getDocumentNumber()+"bomHeaderCode:"+bomHeaderCode+"bomLineCode:"+itemCode+"bomLevel:"+level);
if (require.getNetRequirement().compareTo(BigDecimal.ZERO) > 0) {
/*褰撳墠Bom鑺傜偣澶勭悊瀹屾垚鍚庯紝澶勭悊涓嬬骇BOM*/
long nextLevel=level+1;
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 4d1b4ec..f3dfd22 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
@@ -166,7 +166,8 @@
Object routeHeaderObj = redisTemplate.opsForValue().get(key);
if (routeHeaderObj != null) {
totalRouteTime = (BigDecimal) routeHeaderObj;
- ret.setRouteTime(totalRouteTime);
+ ret.setRouteId("0");
+ ret.setRouteTime(totalRouteTime.multiply(netRequirement));
return ret;
} else {
// 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅
@@ -184,6 +185,8 @@
ret.setRouteId(routeHeader.getRouteId());
/*瀛樺偍鑷砇edis*/
redisTemplate.opsForValue().set(key, standardTime);
+ }else {
+ saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�");
}
return ret;
}
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 0575604..30ad4ac 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
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aps.core.mapper.ApsPlatePlanMapper">
- <resultMap type="ApsPlatePlan" id="ApsPlatePlanResult">
+ <resultMap type="com.aps.core.domain.ApsPlatePlan" id="ApsPlatePlanResult">
<result property="id" column="id" />
<result property="masterPlanner" column="master_planner" />
<result property="weekDay" column="week_day" />
@@ -63,7 +63,7 @@
from aps_plate_plan
</sql>
- <select id="selectApsPlatePlanList" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
+ <select id="selectApsPlatePlanList" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
<include refid="selectApsPlatePlanVo"/>
<where>
<if test="masterPlanner != null and masterPlanner != ''"> and master_planner like '%'|| #{masterPlanner}|| '%'</if>
@@ -113,7 +113,7 @@
where id = #{id}
</select>
- <insert id="insertApsPlatePlan" parameterType="ApsPlatePlan">
+ <insert id="insertApsPlatePlan" parameterType="com.aps.core.domain.ApsPlatePlan">
insert into aps_plate_plan
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">id,</if>
@@ -201,7 +201,7 @@
</trim>
</insert>
- <update id="updateApsPlatePlan" parameterType="ApsPlatePlan">
+ <update id="updateApsPlatePlan" parameterType="com.aps.core.domain.ApsPlatePlan">
update aps_plate_plan
<trim prefix="SET" suffixOverrides=",">
<if test="masterPlanner != null">master_planner = #{masterPlanner},</if>
@@ -269,19 +269,19 @@
update aps_plate_plan set del_flag='1' where del_flag ='0'
</update>
- <select id="selectPlatePlanByPlantMajor" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
+ <select id="selectPlatePlanByPlantMajor" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
select id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,require_id,
- unmatched_quantity,version, production_base,plan_end_day
+ unmatched_quantity,version, production_base,plan_end_day,order_create_time
from aps_plate_plan
<where>
- <if test="plant != null "> and plant = #{plant}</if>
- <if test="professionalAffiliation != null "> and professional_affiliation = #{professionalAffiliation}</if>
- and del_flag='0'
+ <if test="plant != null "> and plant = #{plant} </if>
+ <if test="professionalAffiliation != null "> and professional_affiliation = 'main' </if>
+ and del_flag='0'
</where>
order by document_number asc,id asc
</select>
- <select id="selectUnMatchPlateSubPlan" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
+ <select id="selectUnMatchPlateSubPlan" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
select id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,
unmatched_quantity,version
from aps_plate_plan
@@ -293,14 +293,14 @@
</select>
- <update id="updatePlanUnMatchQtyByVersion" parameterType="ApsPlatePlan">
+ <update id="updatePlanUnMatchQtyByVersion" parameterType="com.aps.core.domain.ApsPlatePlan">
update aps_plate_plan
set unmatched_quantity=#{unmatchedQuantity},version=version+1
where id=#{id} and version=#{version}
</update>
- <select id="selectPlateRedundantOrderList" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
+ <select id="selectPlateRedundantOrderList" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
select document_number, item_number, production_quantity, unmatched_quantity, plant, production_base, plan_start_day, plan_end_day, order_create_time
- from aps_plate_plan where unmatched_quantity>0 and professional_affiliation!='0' and del_flag='0'
+ from aps_plate_plan where unmatched_quantity>0 and professional_affiliation='sub' and del_flag='0'
<if test="documentNumber != null and documentNumber != ''">
and document_number like '%' || #{documentNumber} || '%'
</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml
index be04d19..d2104b0 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml
@@ -4,9 +4,9 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aps.core.mapper.ApsPlateOrderPlanManagerMapper">
- <resultMap type="ApsPlateOrderPlanManager" id="ApsPlateOrderPlanManagerResult">
+ <resultMap type="com.aps.core.domain.ApsPlateOrderPlanManager" id="ApsPlateOrderPlanManagerResult">
<result property="id" column="id" />
- <result property="require_id" column="requireId" />
+ <result property="requireId" column="require_id" />
<result property="requireTrackId" column="require_track_id" />
<result property="workOrderNo" column="doc_no" />
<result property="deductionAmount" column="deduction_amount" />
@@ -23,10 +23,10 @@
<result property="hasDelayRisk" column="has_delay_risk" />
<result property="startDate" column="start_date" />
<result property="completeDate" column="complete_date" />
-<!-- <result property="customTime" column="custom_time" />-->
+ <result property="orderCreateTime" column="order_create_time" />
</resultMap>
- <select id="selectApsPlanOrderManager" parameterType="ApsPlateOrderPlanManager" resultMap="ApsPlateOrderPlanManagerResult">
+ <select id="selectApsPlanOrderManager" parameterType="com.aps.core.domain.ApsPlateOrderPlanManager" resultMap="ApsPlateOrderPlanManagerResult">
select
detail.require_id,
detail.require_track_id,
@@ -45,21 +45,20 @@
require.has_delay_risk,
plan.id,
require.start_date,
- require.complete_date
- from aps_plate_standard_require_bom_order_detail detail
- left join aps_plate_standard_require require on detail.require_id = require.id
+ require.complete_date,
+ plan.order_create_time
+ from aps_plate_standard_require_bom_order_detail detail
+ left join aps_plate_standard_require require on detail.require_id =require.id
left join aps_plate_plan plan on detail.doc_no = plan.document_number
- <where>
+ where detail.del_flag='0'
<if test="workOrderNo != null and workOrderNo != ''"> and detail.doc_no = #{workOrderNo}</if>
- <if test="requireTrackId != null and requireTrackId != ''"> and detail.require_track_id = '${requireTrackId}'</if>
- <if test="mainPartNumber != null and mainPartNumber != ''"> and plan.main_part_number = #{mainPartNumber}</if>
- <if test="hasDelayRisk != null and hasDelayRisk != ''"> and require.has_delay_risk = #{hasDelayRisk}</if>
- and where detail.del_flag='0'
- </where>
+ <if test="requireTrackId != null and requireTrackId != ''"> and detail.require_track_id = #{requireTrackId} </if>
+ <if test="mainPartNumber != null and mainPartNumber != ''"> and plan.main_part_number = #{mainPartNumber} </if>
+ <if test="hasDelayRisk != null and hasDelayRisk != ''"> and require.has_delay_risk = #{hasDelayRisk} </if>
</select>
- <resultMap type="ApsPlateStandardRequire" id="ApsPlateStandardRequireResult">
+ <resultMap type="com.aps.core.domain.ApsPlateStandardRequire" id="ApsPlateStandardRequireResult">
<result property="id" column="id" />
<result property="requireTrackId" column="require_track_id" />
<result property="bomLineId" column="bom_line_id" />
@@ -122,13 +121,11 @@
<select id="selectApsPlanStandardRequire" parameterType="String" resultMap="ApsPlateStandardRequireResult">
<include refid="selectApsPlateStandardRequireVo"/>
- <where>
- <if test="workOrderNo != null and workOrderNo != ''"> and detail.doc_no = #{workOrderNo}</if>
- and require.del_flag = '0'
- </where>
+ where require.del_flag = '0'
+ <if test="workOrderNo != null and workOrderNo != ''"> and detail.doc_no = #{workOrderNo}</if>
</select>
- <resultMap type="ApsPlateOrderPlanRequireDate" id="selectPlanRequireIdsResult">
+ <resultMap type="com.aps.core.domain.ApsPlateOrderPlanRequireDate" id="selectPlanRequireIdsResult">
<result property="id" column="id" />
<result property="start" column="start_date" />
<result property="end" column="end_date" />
@@ -149,7 +146,7 @@
group by plan.id
</select>
- <update id="updatePlanDateByBatch" parameterType="ApsPlateOrderPlanRequireDate">
+ <update id="updatePlanDateByBatch" parameterType="com.aps.core.domain.ApsPlateOrderPlanRequireDate">
update aps_plate_plan set
plan_start_day = #{start},
plan_end_day = #{end},
@@ -158,7 +155,7 @@
where id = #{id}
</update>
- <update id="updatePlanDateByCustom" parameterType="ApsPlateOrderPlanDate">
+ <update id="updatePlanDateByCustom" parameterType="com.aps.core.domain.ApsPlateOrderPlanDate">
update aps_plate_plan set
plan_end_day = #{customDate},
update_by = #{updateBy},
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml
index 30b40e7..a162699 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aps.core.mapper.ApsPlateStandardRequireMapper">
- <resultMap type="ApsPlateStandardRequire" id="ApsPlateStandardRequireResult">
+ <resultMap type="com.aps.core.domain.ApsPlateStandardRequire" id="ApsPlateStandardRequireResult">
<result property="id" column="id" />
<result property="requireTrackId" column="require_track_id" />
<result property="bomLineId" column="bom_line_id" />
@@ -31,6 +31,7 @@
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
+ <result property="orderCreateTime" column="order_create_time" />
</resultMap>
<sql id="selectApsPlateStandardRequireVo">
@@ -38,11 +39,11 @@
process_route_id, process_route_hours, require_amount, net_requirement, start_date,
complete_date, demand_date, org_code, production_base, match_state, match_mode,
unmatched_demand_amount, suggested_completion_date, has_delay_risk, batch_number,
- del_flag, create_time, create_by, update_by, update_time
+ del_flag, create_time, create_by, update_by, update_time,order_create_time
from aps_plate_standard_require
</sql>
- <select id="selectApsPlateStandardRequireList" parameterType="ApsPlateStandardRequire" resultMap="ApsPlateStandardRequireResult">
+ <select id="selectApsPlateStandardRequireList" parameterType="com.aps.core.domain.ApsPlateStandardRequire" resultMap="ApsPlateStandardRequireResult">
<include refid="selectApsPlateStandardRequireVo"/>
<where>
<if test="requireTrackId != null and requireTrackId != ''"> and require_track_id = #{requireTrackId}</if>
@@ -73,7 +74,7 @@
where id = #{id}
</select>
- <insert id="insertApsPlateStandardRequire" parameterType="ApsPlateStandardRequire">
+ <insert id="insertApsPlateStandardRequire" parameterType="com.aps.core.domain.ApsPlateStandardRequire">
insert into aps_plate_standard_require
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
@@ -133,7 +134,7 @@
</trim>
</insert>
- <update id="updateApsPlateStandardRequire" parameterType="ApsPlateStandardRequire">
+ <update id="updateApsPlateStandardRequire" parameterType="com.aps.core.domain.ApsPlateStandardRequire">
update aps_plate_standard_require
<trim prefix="SET" suffixOverrides=",">
<if test="requireTrackId != null">require_track_id = #{requireTrackId},</if>
@@ -176,7 +177,7 @@
</foreach>
</delete>
- <select id="selectPlateSupplyGapList" parameterType="ApsPlateStandardRequire" resultMap="ApsPlateStandardRequireResult">
+ <select id="selectPlateSupplyGapList" parameterType="com.aps.core.domain.ApsPlateStandardRequire" resultMap="ApsPlateStandardRequireResult">
select id, require_track_id, bom_line_code, bom_line_level,
match_state, match_mode, unmatched_demand_amount, start_date,
complete_date, demand_date, org_code, production_base
@@ -190,7 +191,7 @@
(id, require_track_id,doc_num,batch_number, org_code, bom_header_code,bom_line_id, bom_line_code, bom_line_level, bom_use_amount, process_route_id,
process_route_hours, require_amount, net_requirement, start_date, complete_date, demand_date,
production_base, match_state, match_mode, unmatched_demand_amount, suggested_completion_date,
- has_delay_risk, del_flag, create_time, create_by)
+ has_delay_risk, del_flag, create_time, create_by,order_create_time)
values
<foreach collection="list" item="item" separator=",">
(
@@ -219,7 +220,8 @@
#{item.hasDelayRisk},
#{item.delFlag},
#{item.createTime},
- #{item.createBy}
+ #{item.createBy},
+ #{item.orderCreateTime}
)
</foreach>
</insert>
--
Gitblit v1.9.3