forked from I3-YF/i3plus-mes-yfai
数据同步脚本
parent
15debc5dfb
commit
ee3a6879cd
@ -0,0 +1,62 @@
|
|||||||
|
import cn.estsh.i3plus.platform.common.tool.MathOperation
|
||||||
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean
|
||||||
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement
|
||||||
|
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
|
||||||
|
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository
|
||||||
|
import org.slf4j.Logger
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired
|
||||||
|
import org.springframework.util.StringUtils
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : MES2PISCES-发运单
|
||||||
|
* @Reference :
|
||||||
|
* @Author : gsz
|
||||||
|
* @CreateDate 2024/7/14 10:59
|
||||||
|
* @Modify:
|
||||||
|
* */
|
||||||
|
class MesToPiscesMesJisShipping {
|
||||||
|
|
||||||
|
public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesMesJisShipping.class)
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MesShippingOrderManagementRepository mesShippingOrderManagementRepository;
|
||||||
|
|
||||||
|
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
|
||||||
|
if (srcData == null || srcData.size() == 0) {
|
||||||
|
return srcData
|
||||||
|
}
|
||||||
|
Map<String, MesShippingOrderManagement> mesPartShippingGroupMap = new HashMap<>();
|
||||||
|
String organizeCode = mapper.getOrganizeCode();
|
||||||
|
Map<String, Map<String, Object>> destData = new HashMap<>();
|
||||||
|
for (Map<String, Object> rowMap : srcData) {
|
||||||
|
if (!StringUtils.isEmpty(rowMap.get("shipping_order_code"))) {
|
||||||
|
MesShippingOrderManagement mesShipping = getMesShipping(organizeCode, String.valueOf(rowMap.get("shipping_order_code")), mesPartShippingGroupMap)
|
||||||
|
if (!Objects.isNull(mesShipping)) {
|
||||||
|
rowMap.put("HANDLE_FID", mesShipping.getFid())
|
||||||
|
} else {
|
||||||
|
LOGGER.info("shipping_order_code:{}信息不存在", String.valueOf(rowMap.get("shipping_order_code")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//数据汇总
|
||||||
|
String key = String.valueOf(rowMap.get("HANDLE_FID")) + String.valueOf("part_no")
|
||||||
|
if (destData.containsKey(key)) {
|
||||||
|
destData.get(key).put(key, MathOperation.add(Double.valueOf(destData.get(key).get("qty") + ""), Double.valueOf(rowMap.get("qty") + "")))
|
||||||
|
} else {
|
||||||
|
destData.put(key, rowMap)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return destData;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MesShippingOrderManagement getMesShipping(String organizeCode, String shippingCode, Map<String, MesShippingOrderManagement> mesPartShippingGroupMap) {
|
||||||
|
if (Objects.isNull(mesPartShippingGroupMap) || !mesPartShippingGroupMap.containsKey(shippingCode)) {
|
||||||
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||||
|
DdlPreparedPack.getStringEqualPack(shippingCode, "shippingCode", ddlPackBean);
|
||||||
|
mesPartShippingGroupMap.put(shippingCode, mesShippingOrderManagementRepository.getByProperty(ddlPackBean))
|
||||||
|
}
|
||||||
|
return mesPartShippingGroupMap.get(shippingCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy
|
||||||
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.MesCrossOrganizeCfg
|
||||||
|
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
|
||||||
|
import cn.estsh.i3plus.pojo.mes.repository.IMesCrossOrganizeCfgRepository
|
||||||
|
import org.slf4j.Logger
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired
|
||||||
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
|
||||||
|
import org.springframework.util.CollectionUtils
|
||||||
|
|
||||||
|
import javax.annotation.Resource
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : 跨工厂防错
|
||||||
|
* @Reference :
|
||||||
|
* @Author : junsheng.li
|
||||||
|
* @CreateDate 2024/7/22 11:03
|
||||||
|
* @Modify:
|
||||||
|
* */
|
||||||
|
class PiscesToMesProductSn {
|
||||||
|
|
||||||
|
public static final Logger LOGGER = LoggerFactory.getLogger(PiscesToMesProductSn.class)
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMesCrossOrganizeCfgRepository mesCrossOrganizeCfgRepository;
|
||||||
|
|
||||||
|
@Resource(name = "pisces1DataSource")
|
||||||
|
private DynamicDataSourceProxy pisces1DataSource;
|
||||||
|
|
||||||
|
def readData(MesInterfaceDataMapper mapper) throws Exception {
|
||||||
|
String organizeCode = mapper.getOrganizeCode();
|
||||||
|
List<MesCrossOrganizeCfg> crossOrganizeCfgList = mesCrossOrganizeCfgRepository.findByHqlWhere(DdlPackBean.getDdlPackBean(organizeCode));
|
||||||
|
if (CollectionUtils.isEmpty(crossOrganizeCfgList)) {
|
||||||
|
LOGGER.info("未查询到跨工厂配置");
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
List<Map<String, Object>> srcData = new ArrayList<>();
|
||||||
|
//循环处理数据
|
||||||
|
for (MesCrossOrganizeCfg crossOrganizeCfg : crossOrganizeCfgList) {
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("srcOrganizeCode", crossOrganizeCfg.getSrcOrganizeCode())
|
||||||
|
params.put("partNo", crossOrganizeCfg.getPartNo())
|
||||||
|
String sql = "select top "+mapper.getSrcGetLimit()+" * from " + mapper.getSrcTableName() + " where PLANT = :srcOrganizeCode and PART_NO = :partNo and " + mapper.getSrcWhere() + " order by "+mapper.getSrcOrderBy()
|
||||||
|
//查询待同步的数据
|
||||||
|
List<Map<String, Object>> dataList = queryDataTable(sql, params);
|
||||||
|
if (!CollectionUtils.isEmpty(dataList)) {
|
||||||
|
srcData.addAll(dataList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return srcData;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Map<String, Object>> queryDataTable(String sql, Map<String, Object> params) {
|
||||||
|
NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(pisces1DataSource.getDataSource())
|
||||||
|
return namedJdbcTemplate.queryForList(sql, params);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue