同步拉动单数据到wms中间表

tags/yfai-mes-ext-v3.11^2
臧学普 3 months ago
parent b63431ef8f
commit 277ebd94e7

@ -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 :meswms 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<String> updateList = new ArrayList<>();
Map<String, Object> params = new HashMap<>();
String sql = "select * from " + mapper.getSrcTableName() + " where " + mapper.getSrcWhere() + " order by " + mapper.getSrcOrderBy() + " limit " + mapper.getSrcGetLimit()
//
List<Map<String, Object>> dataList = queryDataTable(sql, params);
List<Map<String,Object>> result = new ArrayList<>();
for (Map<String,Object> map in dataList){
Map<String, Object> 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<Map<String, Object>> dataDetailList = queryDataTable(detailSql, params1);
for (Map<String,Object> detail in dataDetailList){
Map<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> queryDataTable(String sql, Map<String, Object> params) {
NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(mesDataSource.getDataSource())
List<Map<String, Object>> dataMap = namedJdbcTemplate.queryForList(sql, params)
return dataMap;
}
}
Loading…
Cancel
Save