From e3bd647305c6f4e1c8c901741932deda10a8db34 Mon Sep 17 00:00:00 2001 From: sfd <sun.sunshine@163.com> Date: 星期三, 21 五月 2025 16:13:00 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.50.149:8085/r/aps-backend into dev --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java | 5 aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardJobMapper.xml | 64 +++++++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml | 4 aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWeldSeamStandardJob.java | 56 ++++++ aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWeldSeamStandardJobService.java | 44 ++++ aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml | 14 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardJobMapper.java | 39 ++++ aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardMapper.java | 31 +++ aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java | 10 + aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java | 215 +++++++++++++++++++++++ aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardMapper.xml | 35 +++ 13 files changed, 514 insertions(+), 11 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java index fb3e055..4083ea4 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java @@ -49,6 +49,10 @@ /** 鐒婃帴褰㈠紡(hup\lod) */ @Excel(name = "鐒婃帴褰㈠紡") private String type; + + /** 閫傜敤宸ュ巶 */ + @Excel(name = "閫傜敤宸ュ巶") + private String plant; /** 鏄惁鍒犻櫎(0鍚︼紝1鏄�) */ private Integer delFlag; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java index 4cb5c0a..756bec0 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java @@ -476,7 +476,8 @@ } ApsGasPipingRouteStat queryStatParam = new ApsGasPipingRouteStat(); BeanUtils.copyProperties(apsGasPipingRouteStat,queryStatParam); - queryStatParam.setMajor(""); + queryStatParam.setMajor(apsGasPipingRouteStat.getMajor()); + queryStatParam.setPlant(apsGasPipingRouteStat.getPlant()); apsGasPipingRouteStats = apsGasPipingRouteStatMapper.selectApsGasPipingRouteStatList(queryStatParam); //鏍规嵁寮�宸ユ棩杩涜鍗囧簭鎺掑簭 apsGasPipingRouteStats.sort((a, b)->a.getProcessPlanStartDay().compareTo(b.getProcessPlanStartDay())); @@ -538,7 +539,7 @@ String dateKey = apsResourceDateStat.getPlanDay().toString(); if(dayMap.containsKey(dateKey)){ ApsResourceDateStat apsResourceDateStatTemp = dayMap.get(dateKey); - String capacityKey = processName + "-" + dateKey.substring(0,7); + String capacityKey = processName + "-"+ apsResourceDateStat.getPlant() + "-" + dateKey.substring(0,7); apsResourceDateStatTemp.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getDayProduceAllNum():new BigDecimal(0)); apsResourceDateStatTemp.setRequireTimes(apsResourceDateStatTemp.getRequireTimes().add(apsResourceDateStat.getRequireTimes())); if(apsResourceDateStatTemp.getDesignTimes().compareTo(BigDecimal.ZERO) > 0){ diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml index 250e09d..20beb21 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml @@ -67,6 +67,7 @@ and process_name in (select process_name from aps_standard_process where major='姘旀煖') </if> </if> + <if test="plant != null and plant != ''"> and plant = #{plant} </if> </where> </select> @@ -181,7 +182,7 @@ id,work_order_no, road_process_number, current_process_number, production_quantity, standard_time, process_total_time, process_plan_start_day, design_times, del_flag, create_by, process_name, create_time, item_number, standard_dosage, process_total_dosage, design_capacity, major, - plan_start_year, plan_start_month, plan_start_day,batch_number,process_plan_end_day,warning,order_plan_end_day + plan_start_year, plan_start_month, plan_start_day,batch_number,process_plan_end_day,warning,order_plan_end_day,plant ) VALUES <foreach collection="apsGasPipingRouteStatList" item="stat" separator=","> @@ -190,7 +191,7 @@ #{stat.standardTime}, #{stat.processTotalTime}, #{stat.processPlanStartDay}, #{stat.designTimes}, #{stat.delFlag}, #{stat.createBy}, #{stat.processName}, #{stat.createTime}, #{stat.itemNumber}, #{stat.standardDosage}, #{stat.processTotalDosage}, #{stat.designCapacity}, #{stat.major}, #{stat.planStartYear}, - #{stat.planStartMonth}, #{stat.planStartDay}, #{stat.batchNumber}, #{stat.processPlanEndDay},#{stat.warning},#{stat.orderPlanEndDay} + #{stat.planStartMonth}, #{stat.planStartDay}, #{stat.batchNumber}, #{stat.processPlanEndDay},#{stat.warning},#{stat.orderPlanEndDay},#{stat.plant} ) </foreach> @@ -198,7 +199,7 @@ <select id="queryTempStat" resultMap="ApsGasPipingRouteStatResult" > select row_number() over (partition by rt.work_order_no order by rt.process_number desc ) as num, - rt.work_order_no, + rt.work_order_no, rt.process_name, cast(rt.process_number as numeric(18, 2)) as road_process_number, cast(rt.process_number as numeric(18, 2)) as route_process_number, @@ -209,9 +210,10 @@ rt.process_plan_start_day, rt.process_plan_end_day, pl.plan_end_day as order_plan_end_day, - rt.item_no as item_number, - pl.plan_type as major, - false as warning + rt.item_no as item_number, + pl.plan_type as major, + false as warning, + pl.plant from aps_gas_piping_plan as pl left join aps_process_route as rt on pl.document_number = rt.work_order_no where pl.document_number is not null and rt.work_order_no is not null and pl.plan_end_day is not null diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml index bf80750..4cbf684 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml @@ -12,11 +12,12 @@ <result property="hupQty" column="hup_qty" /> <result property="lodQty" column="lod_qty" /> <result property="type" column="type" /> + <result property="plant" column="plant" /> <result property="delFlag" column="del_flag" /> </resultMap> <sql id="selectApsWeldSeamStandardVo"> - select id, item_code, item_figure, item_figure_version, hup_qty, lod_qty, type, del_flag from aps_weld_seam_standard + select id, item_code, item_figure, item_figure_version, hup_qty, lod_qty, type, plant, del_flag from aps_weld_seam_standard </sql> <select id="selectApsWeldSeamStandardList" parameterType="com.aps.core.domain.ApsWeldSeamStandard" resultMap="ApsWeldSeamStandardResult"> @@ -28,6 +29,7 @@ <if test="hupQty != null "> and hup_qty = #{hupQty}</if> <if test="lodQty != null "> and lod_qty = #{lodQty}</if> <if test="type != null and type != ''"> and type = #{type}</if> + <if test="plant != null and plant != ''"> and plant = #{plant}</if> and del_flag = 0 </where> </select> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml index 42e3648..7c44838 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml @@ -164,7 +164,7 @@ mgm.domain as 涓撲笟 FROM aps_gas_pipeline_mo mo LEFT JOIN aps_weld_seam_standard ws ON mo.material_code = ws.item_code AND ws.del_flag = 0 - LEFT JOIN aps_material_product_group_management mgm ON mo.material_code = mgm.material_code + LEFT JOIN aps_material_product_group_management mgm ON mo.material_code = mgm.material_code AND mo.factory = mgm.factory ), 棰勬祴鐒婄紳璁$畻 AS ( -- 璁$畻棰勬祴鐨勭剨缂濇暟閲� @@ -177,7 +177,7 @@ mgm.domain as 涓撲笟 FROM aps_gas_pipeline_prediction gp LEFT JOIN aps_weld_seam_standard ws ON gp.material_code = ws.item_code AND ws.del_flag = 0 - LEFT JOIN aps_material_product_group_management mgm ON gp.material_code = mgm.material_code + LEFT JOIN aps_material_product_group_management mgm ON gp.material_code = mgm.material_code AND gp.factory = mgm.factory ), 姹囨�绘暟鎹� AS ( SELECT diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWeldSeamStandardJob.java b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWeldSeamStandardJob.java new file mode 100644 index 0000000..f0c0a45 --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWeldSeamStandardJob.java @@ -0,0 +1,56 @@ +package com.aps.job.domain; + +import com.aps.common.core.annotation.Excel; +import com.aps.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 鐒婄紳鏍囧噯瀵硅薄 aps_weld_seam_standard_job + * + * @author user + * @date 2023-11-05 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ApsWeldSeamStandardJob extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 涓婚敭ID */ + private Long id; + + /** 鏂欏彿锛堟帴鍙d腑瀵瑰簲plantCount鎴杤erId锛� */ + @Excel(name = "鏂欏彿") + private String itemCode; + + /** 鍥惧彿 */ + @Excel(name = "鍥惧彿") + private String itemFigure; + + /** 鐗堟湰鍙� */ + @Excel(name = "鐗堟湰鍙�") + private String itemFigureVersion; + + /** 鍗曚欢鐒婄紳鏁帮紙Hup锛� */ + @Excel(name = "鍗曚欢鐒婄紳鏁帮紙Hup锛�") + private BigDecimal hupQty; + + /** 鍗曚欢鐒婄紳鏁帮紙LOD锛� */ + @Excel(name = "鍗曚欢鐒婄紳鏁帮紙LOD锛�") + private BigDecimal lodQty; + + /** 鐒婃帴褰㈠紡(hup\lod) */ + @Excel(name = "鐒婃帴褰㈠紡") + private String type; + + /** 鏄惁鍒犻櫎(0鍚︼紝1鏄�) */ + private Integer delFlag; +} \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardJobMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardJobMapper.java new file mode 100644 index 0000000..02e4612 --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardJobMapper.java @@ -0,0 +1,39 @@ +package com.aps.job.mapper; + +import com.aps.job.domain.ApsWeldSeamStandardJob; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 鐒婄紳鏍囧噯Job Mapper鎺ュ彛 + * + * @author user + * @date 2023-11-05 + */ +@Mapper +public interface ApsWeldSeamStandardJobMapper +{ + /** + * 鏌ヨ鐒婄紳鏍囧噯鍒楄〃 + * + * @param apsWeldSeamStandardJob 鐒婄紳鏍囧噯 + * @return 鐒婄紳鏍囧噯闆嗗悎 + */ + public List<ApsWeldSeamStandardJob> selectApsWeldSeamStandardJobList(ApsWeldSeamStandardJob apsWeldSeamStandardJob); + + /** + * 鍒犻櫎鎵�鏈夌剨缂濇爣鍑咼ob鏁版嵁 + * + * @return 缁撴灉 + */ + public int deleteAllApsWeldSeamStandardJob(); + + /** + * 鎵归噺鏂板鐒婄紳鏍囧噯Job + * + * @param list 鐒婄紳鏍囧噯Job鍒楄〃 + * @return 缁撴灉 + */ + public int batchInsertApsWeldSeamStandardJob(List<ApsWeldSeamStandardJob> list); +} \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardMapper.java new file mode 100644 index 0000000..a4181f5 --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWeldSeamStandardMapper.java @@ -0,0 +1,31 @@ +package com.aps.job.mapper; + +import com.aps.job.domain.ApsWeldSeamStandardJob; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 鐒婄紳鏍囧噯涓氬姟琛� Mapper鎺ュ彛 + * + * @author user + * @date 2023-11-05 + */ +@Mapper +public interface ApsWeldSeamStandardMapper +{ + /** + * 鍒犻櫎鎵�鏈夌剨缂濇爣鍑嗘暟鎹� + * + * @return 缁撴灉 + */ + public int deleteAllApsWeldSeamStandard(); + + /** + * 鎵归噺鏂板鐒婄紳鏍囧噯 + * + * @param list 鐒婄紳鏍囧噯Job鍒楄〃 + * @return 缁撴灉 + */ + public int batchInsertApsWeldSeamStandard(List<ApsWeldSeamStandardJob> list); +} \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWeldSeamStandardJobService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWeldSeamStandardJobService.java new file mode 100644 index 0000000..2376959 --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWeldSeamStandardJobService.java @@ -0,0 +1,44 @@ +package com.aps.job.service; + +import com.aps.job.domain.ApsWeldSeamStandardJob; + +import java.util.List; + +/** + * 鐒婄紳鏍囧噯Job Service鎺ュ彛 + * + * @author user + * @date 2023-11-05 + */ +public interface IApsWeldSeamStandardJobService +{ + /** + * 鏌ヨ鐒婄紳鏍囧噯鍒楄〃 + * + * @param apsWeldSeamStandardJob 鐒婄紳鏍囧噯 + * @return 鐒婄紳鏍囧噯闆嗗悎 + */ + public List<ApsWeldSeamStandardJob> selectApsWeldSeamStandardJobList(ApsWeldSeamStandardJob apsWeldSeamStandardJob); + + /** + * 鍒犻櫎鎵�鏈夌剨缂濇爣鍑咼ob鏁版嵁 + * + * @return 缁撴灉 + */ + public int deleteAllApsWeldSeamStandardJob(); + + /** + * 鎵归噺鏂板鐒婄紳鏍囧噯Job + * + * @param list 鐒婄紳鏍囧噯Job鍒楄〃 + * @return 缁撴灉 + */ + public int batchInsertApsWeldSeamStandardJob(List<ApsWeldSeamStandardJob> list); + + /** + * 鍚屾鐗╂枡鏍囧噯鐒婄紳鏁版嵁 + * + * @return 缁撴灉 + */ + public boolean syncWeldSeamStandardData(); +} \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java new file mode 100644 index 0000000..3e6c84b --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java @@ -0,0 +1,215 @@ +package com.aps.job.service.impl; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.aps.common.core.utils.StringUtils; +import com.aps.common.security.utils.SecurityUtils; +import com.aps.job.domain.ApsWeldSeamStandardJob; +import com.aps.job.mapper.ApsWeldSeamStandardMapper; +import com.aps.job.mapper.ApsWeldSeamStandardJobMapper; +import com.aps.job.service.IApsWeldSeamStandardJobService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; + +/** + * 鐒婄紳鏍囧噯Job Service涓氬姟灞傚鐞� + * + * @author user + * @date 2023-11-05 + */ +@Slf4j +@Service +public class ApsWeldSeamStandardJobServiceImpl implements IApsWeldSeamStandardJobService +{ + @Autowired + private ApsWeldSeamStandardJobMapper apsWeldSeamStandardJobMapper; + + @Autowired + private ApsWeldSeamStandardMapper apsWeldSeamStandardMapper; + + @Autowired + private RestTemplate restTemplate; + + @Value("${pipingIntegrationplatform.apsWeldSeamStandard}") + private String apsWeldSeamStandardUrl; + + /** + * 鏌ヨ鐒婄紳鏍囧噯鍒楄〃 + * + * @param apsWeldSeamStandardJob 鐒婄紳鏍囧噯 + * @return 鐒婄紳鏍囧噯闆嗗悎 + */ + @Override + public List<ApsWeldSeamStandardJob> selectApsWeldSeamStandardJobList(ApsWeldSeamStandardJob apsWeldSeamStandardJob) + { + return apsWeldSeamStandardJobMapper.selectApsWeldSeamStandardJobList(apsWeldSeamStandardJob); + } + + /** + * 鍒犻櫎鎵�鏈夌剨缂濇爣鍑咼ob鏁版嵁 + * + * @return 缁撴灉 + */ + @Override + public int deleteAllApsWeldSeamStandardJob() + { + return apsWeldSeamStandardJobMapper.deleteAllApsWeldSeamStandardJob(); + } + + /** + * 鎵归噺鏂板鐒婄紳鏍囧噯Job + * + * @param list 鐒婄紳鏍囧噯Job鍒楄〃 + * @return 缁撴灉 + */ + @Override + public int batchInsertApsWeldSeamStandardJob(List<ApsWeldSeamStandardJob> list) + { + return apsWeldSeamStandardJobMapper.batchInsertApsWeldSeamStandardJob(list); + } + + /** + * 鍚屾鐗╂枡鏍囧噯鐒婄紳鏁版嵁 + * + * @return 缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean syncWeldSeamStandardData() + { + try { + // 浣跨敤POST鏂规硶璋冪敤鎺ュ彛 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + // 鍑嗗璇锋眰鍙傛暟 - 浼犻�掑伐鍘備唬鐮佸瓧绗︿覆鏁扮粍锛岃缃负绌烘暟缁� + String[] plantCodeArray = new String[0]; + + // 鐩存帴浣跨敤瀛楃涓叉暟缁勪綔涓鸿姹備綋 + HttpEntity<String[]> requestEntity = new HttpEntity<>(plantCodeArray, headers); + + ResponseEntity<String> responseEntity = restTemplate.postForEntity(apsWeldSeamStandardUrl, requestEntity, String.class); + if (!responseEntity.getStatusCode().is2xxSuccessful()) { + log.error("鑾峰彇鐗╂枡鏍囧噯鐒婄紳鏁版嵁澶辫触"); + return false; + } + + String responseBody = responseEntity.getBody(); + if (StringUtils.isEmpty(responseBody)) { + return false; + } + + JSONObject responseJson = JSON.parseObject(responseBody); + + // 妫�鏌ヨ繑鍥炵爜 + if (responseJson.getIntValue("code") != 0) { + return false; + } + + // 鑾峰彇鎺ュ彛杩斿洖鐨勬暟鎹� + JSONArray weldSeamList = responseJson.getJSONArray("ok"); + if (weldSeamList == null || weldSeamList.isEmpty()) { + return false; + } + + // 瑙f瀽鏁版嵁骞惰浆鎹负瀹炰綋瀵硅薄 + List<ApsWeldSeamStandardJob> jobList = new ArrayList<>(); + AtomicLong idCounter = new AtomicLong(System.currentTimeMillis()); // 浣跨敤褰撳墠鏃堕棿鎴充綔涓鸿捣濮婭D + + for (int i = 0; i < weldSeamList.size(); i++) { + JSONObject item = weldSeamList.getJSONObject(i); + + // 浣跨敤姝g‘鐨勫瓧娈靛悕绉� plantCode + String plantCode = item.getString("plantCode"); + + // 鑾峰彇UHP鍜孡OD鏁伴噺 + BigDecimal uhpCount = null; + BigDecimal lodCount = null; + + try { + uhpCount = item.getBigDecimal("uhpCount"); + } catch (Exception e) { + // 蹇界暐寮傚父 + } + + try { + lodCount = item.getBigDecimal("lodCount"); + } catch (Exception e) { + // 蹇界暐寮傚父 + } + + // 鍒ゆ柇鏁版嵁鏄惁瀹屾暣 + if (StringUtils.isEmpty(plantCode)) { + continue; + } + + ApsWeldSeamStandardJob job = new ApsWeldSeamStandardJob(); + // 涓篿d璧嬪�硷紝浣跨敤鑷闀挎暣鍨� + job.setId(idCounter.incrementAndGet()); + job.setItemCode(plantCode); // 鏄犲皠鍏崇郴: plantCode -> itemCode + job.setHupQty(uhpCount); // 鏄犲皠鍏崇郴: uhpCount -> hupQty + job.setLodQty(lodCount); // 鏄犲皠鍏崇郴: lodCount -> lodQty + job.setDelFlag(0); + // 涓嶅啀璁剧疆createBy鍜宑reateTime + jobList.add(job); + } + + if (jobList.isEmpty()) { + return false; + } + + // 娓呯┖鏃ф暟鎹� + deleteAllApsWeldSeamStandardJob(); + + // 鎵归噺鎻掑叆鏂版暟鎹� + batchInsertApsWeldSeamStandardJob(jobList); + + // 鍚屾鏁版嵁鍒颁笟鍔¤〃 + syncToBizTable(jobList); + + return true; + } catch (Exception e) { + log.error("鍚屾鐗╂枡鏍囧噯鐒婄紳鏁版嵁寮傚父", e); + throw e; + } + } + + /** + * 鍚屾鏁版嵁鍒颁笟鍔¤〃 + * + * @param jobList 鐒婄紳鏍囧噯Job鏁版嵁鍒楄〃 + */ + private void syncToBizTable(List<ApsWeldSeamStandardJob> jobList) { + try { + // 鍒犻櫎涓氬姟琛ㄦ暟鎹紙鍏ㄩ噺瑕嗙洊锛� + apsWeldSeamStandardMapper.deleteAllApsWeldSeamStandard(); + + if (jobList == null || jobList.isEmpty()) { + return; + } + + // 鎵归噺鎻掑叆鏁版嵁鍒颁笟鍔¤〃 + apsWeldSeamStandardMapper.batchInsertApsWeldSeamStandard(jobList); + } catch (Exception e) { + log.error("鍚屾鐗╂枡鏍囧噯鐒婄紳鏁版嵁鍒颁笟鍔¤〃寮傚父", e); + throw e; + } + } +} \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java index 5a7a1f2..432b58e 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java @@ -43,6 +43,9 @@ @Autowired private IApsMaterialManagementJobService apsMaterialManagementJobService; + + @Autowired + private IApsWeldSeamStandardJobService apsWeldSeamStandardJobService; public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { @@ -202,5 +205,12 @@ public void setPlateSubPlansToRedis(){ remoteCoreService.setPlateSubPlansToRedis(SecurityConstants.INNER); } + + /** + * 鍚屾鐗╂枡鏍囧噯鐒婄紳鏁版嵁 + */ + public void syncWeldSeamStandardData() { + apsWeldSeamStandardJobService.syncWeldSeamStandardData(); + } } diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardJobMapper.xml new file mode 100644 index 0000000..d2d2a3e --- /dev/null +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardJobMapper.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.aps.job.mapper.ApsWeldSeamStandardJobMapper"> + + <resultMap type="com.aps.job.domain.ApsWeldSeamStandardJob" id="ApsWeldSeamStandardJobResult"> + <result property="id" column="id" /> + <result property="itemCode" column="item_code" /> + <result property="itemFigure" column="item_figure" /> + <result property="itemFigureVersion" column="item_figure_version" /> + <result property="hupQty" column="hup_qty" /> + <result property="lodQty" column="lod_qty" /> + <result property="type" column="type" /> + <result property="delFlag" column="del_flag" /> + </resultMap> + + <sql id="selectApsWeldSeamStandardJobVo"> + select id, item_code, item_figure, item_figure_version, hup_qty, lod_qty, type, del_flag from aps_weld_seam_standard_job + </sql> + + <select id="selectApsWeldSeamStandardJobList" parameterType="com.aps.job.domain.ApsWeldSeamStandardJob" resultMap="ApsWeldSeamStandardJobResult"> + <include refid="selectApsWeldSeamStandardJobVo"/> + <where> + <if test="itemCode != null and itemCode != ''"> and item_code LIKE '%' || #{itemCode} || '%'</if> + <if test="itemFigure != null and itemFigure != ''"> and item_figure = #{itemFigure}</if> + <if test="itemFigureVersion != null and itemFigureVersion != ''"> and item_figure_version = #{itemFigureVersion}</if> + <if test="hupQty != null "> and hup_qty = #{hupQty}</if> + <if test="lodQty != null "> and lod_qty = #{lodQty}</if> + <if test="type != null and type != ''"> and type = #{type}</if> + and del_flag = 0 + </where> + </select> + + <delete id="deleteAllApsWeldSeamStandardJob"> + delete from aps_weld_seam_standard_job + </delete> + + <insert id="batchInsertApsWeldSeamStandardJob" parameterType="java.util.List"> + insert into aps_weld_seam_standard_job( + id, + item_code, + item_figure, + item_figure_version, + hup_qty, + lod_qty, + type, + del_flag) + values + <foreach collection="list" item="item" index="index" separator=","> + ( + #{item.id}, + #{item.itemCode}, + #{item.itemFigure}, + #{item.itemFigureVersion}, + #{item.hupQty}, + #{item.lodQty}, + #{item.type}, + 0 + ) + </foreach> + </insert> + +</mapper> \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardMapper.xml new file mode 100644 index 0000000..7c0ab25 --- /dev/null +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWeldSeamStandardMapper.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.aps.job.mapper.ApsWeldSeamStandardMapper"> + + <delete id="deleteAllApsWeldSeamStandard"> + delete from aps_weld_seam_standard + </delete> + + <insert id="batchInsertApsWeldSeamStandard" parameterType="java.util.List"> + insert into aps_weld_seam_standard( + id, + item_code, + item_figure, + item_figure_version, + hup_qty, + lod_qty, + type, + del_flag) + values + <foreach collection="list" item="item" index="index" separator=","> + ( + #{item.id}, + #{item.itemCode}, + #{item.itemFigure}, + #{item.itemFigureVersion}, + #{item.hupQty}, + #{item.lodQty}, + #{item.type}, + 0 + ) + </foreach> + </insert> +</mapper> \ No newline at end of file -- Gitblit v1.9.3