From 277ebd94e72e0fa03dcedb7e877b4025dbc0a151 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Tue, 11 Feb 2025 18:59:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=8B=89=E5=8A=A8=E5=8D=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=B0wms=E4=B8=AD=E9=97=B4=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/groovy/MesKittingOrderToWms.groovy | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 modules/i3plus-ext-mes-apiservice/src/groovy/MesKittingOrderToWms.groovy diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/MesKittingOrderToWms.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/MesKittingOrderToWms.groovy new file mode 100644 index 0000000..a507589 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/MesKittingOrderToWms.groovy @@ -0,0 +1,97 @@ +import cn.estsh.i3plus.platform.common.tool.TimeTool +import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper +import cn.estsh.i3plus.pojo.mes.repository.MesPullingOrderInfoRepository +import cn.estsh.i3plus.pojo.mes.repository.MesPullingOrderPartInfoRepository +import lombok.Getter +import lombok.Setter +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate +import org.springframework.util.CollectionUtils +import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy +import javax.annotation.Resource +import java.sql.Connection + +/** + * @Description :mes同步wms kitting拉动单 + * @Reference : + * @Author : castle + * @CreateDate 2024/7/5 10:43 + * @Modify: + * */ +class MesKittingOrderToWms { + + public static final Logger LOGGER = LoggerFactory.getLogger(MesKittingOrderToWms.class) + + + @Resource(name = "yfasDataSource") + private DynamicDataSourceProxy yfasDataSource; + + @Resource(name = "mesDataSource") + private DynamicDataSourceProxy mesDataSource; + + @Getter + @Setter + private Connection mesConn; + + @Resource + private MesPullingOrderPartInfoRepository mesPullingOrderPartInfoRao; + + @Resource + private MesPullingOrderInfoRepository mesPullingOrderInfoRao; + + def readData(MesInterfaceDataMapper mapper) throws Exception { + + LOGGER.info("-------- Read Start 读取kitting拉动单 ---------------") + List updateList = new ArrayList<>(); + Map params = new HashMap<>(); + String sql = "select * from " + mapper.getSrcTableName() + " where " + mapper.getSrcWhere() + " order by " + mapper.getSrcOrderBy() + " limit " + mapper.getSrcGetLimit() + //查询待同步的数据 + List> dataList = queryDataTable(sql, params); + List> result = new ArrayList<>(); + for (Map map in dataList){ + Map params1 = new HashMap<>(); + def pullingOrderNo = map.get("pulling_order_no") + def organizeCode = map.get("organize_code") + params1.put("pullingOrderNo",pullingOrderNo); + params1.put("srcOrganizeCode",organizeCode) + String detailSql = "select * from mes_pulling_order_part_info where organize_code = :srcOrganizeCode and pulling_order_no = :pullingOrderNo"; + List> dataDetailList = queryDataTable(detailSql, params1); + + for (Map detail in dataDetailList){ + Map params2 = new HashMap<>(); + def workOrderNo = map.get("work_order_no") + params2.put("workOrderNo",workOrderNo); + params2.put("srcOrganizeCode",organizeCode) + String workOrderSql = "select * from mes_work_order where organize_code = :srcOrganizeCode and work_order_no = :workOrderNo"; + List> workOrderList = queryDataTable(workOrderSql, params2) + def mesWorkOrder = workOrderList.get(0) + detail.put("pull_part_no",detail.get("part_no")) + detail.put("pull_part_name",detail.get("part_name")) + detail.put("part_no",map.get("part_no")) + detail.put("part_name",map.get("part_name")) + detail.put("work_center_code",map.get("work_center_code")) + detail.put("status",map.get("pull_order_status")) + detail.put("shift",mesWorkOrder.get("shift_code")+":"+mesWorkOrder.get("shift_name")) + result.add(detail); + } + updateList.add("update "+mapper.getSrcTableName()+" set system_sync_status=1 , system_sync_date_time = '"+ TimeTool.getNowTime(true)+"' where pulling_order_no= '" + pullingOrderNo + "' ;") + } + + //更新同步标识 + if (!CollectionUtils.isEmpty(updateList) && updateList.size() > 0) { + this.mesConn = mesDataSource.getWriteConnectionWithoutPool(); + mesDataSource.executeAsBatch(updateList, mesConn) + mesDataSource.closeConnectionWithoutPoll(this.mesConn) + } + return result; + } + + private List> queryDataTable(String sql, Map params) { + NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(mesDataSource.getDataSource()) + + List> dataMap = namedJdbcTemplate.queryForList(sql, params) + + return dataMap; + } +} \ No newline at end of file