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