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