forked from I3-YF/i3plus-mes-yfai
同步拉动单数据到wms中间表
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 :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<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…
Reference in New Issue