接口调试增加脚本,FID

tags/yfai-mes-ext-v1.0
jun 10 months ago
parent 7963cf5150
commit 5fb9194a20

@ -0,0 +1,69 @@
import cn.estsh.i3plus.pojo.mes.bean.MesRawPackage
import cn.estsh.i3plus.pojo.mes.bean.MesRawPackageDetail
import cn.estsh.i3plus.pojo.mes.bean.MesRawPackagePart
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesRawPackageDetailRepository
import cn.estsh.i3plus.pojo.mes.repository.MesRawPackagePartRepository
import cn.estsh.i3plus.pojo.mes.repository.MesRawPackageRepository
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.util.StringUtils
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/7/13 13:03
* @Modify:
**/
class MesToPiscesRawPartCharging {
public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesRawPartCharging.class)
@Autowired
private MesRawPackageRepository mesRawPackageRepository;
@Autowired
private MesRawPackageDetailRepository mesRawPackageDetailRepository;
@Autowired
private MesRawPackagePartRepository mesRawPackagePartRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
}
for (Map<String, Object> rowMap : srcData) {
//
if (!StringUtils.isEmpty(rowMap.get("PACKAGE_ID"))) {
MesRawPackage mesRawPackage = mesRawPackageRepository.getById(Long.parseLong(String.valueOf(rowMap.get("PACKAGE_ID"))))
if (!Objects.isNull(mesRawPackage)) {
rowMap.put("PACKAGE_NAME", mesRawPackage.getName())
rowMap.put("PACKAGE_FID", mesRawPackage.getFid())
} else {
LOGGER.info("原材料容器id{},信息不存在", String.valueOf(rowMap.get(rowMap.get("PACKAGE_ID"))))
}
}
//
if (!StringUtils.isEmpty(rowMap.get("package_detail_id"))) {
MesRawPackageDetail mesRawPackageDetail = mesRawPackageDetailRepository.getById(Long.parseLong(String.valueOf(rowMap.get("package_detail_id"))))
if (!Objects.isNull(mesRawPackageDetail)) {
rowMap.put("PACKAGE_DETAIL_FID", mesRawPackageDetail.getFid())
} else {
LOGGER.info("原材料容器明细id{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_detail_id"))))
}
}
//
if (!StringUtils.isEmpty(rowMap.get("package_part_id"))) {
MesRawPackagePart mesRawPackagePart = mesRawPackagePartRepository.getById(Long.parseLong(String.valueOf(rowMap.get("package_part_id"))))
if (!Objects.isNull(mesRawPackagePart)) {
rowMap.put("PACKAGE_PART_FID", mesRawPackagePart.getFid())
} else {
LOGGER.info("原材料容器明细id{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_detail_id"))))
}
}
}
return srcData;
}
}

@ -0,0 +1,105 @@
import cn.estsh.i3plus.ext.mes.api.base.IMesPartSapService
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup
import cn.estsh.i3plus.pojo.mes.bean.MesPartSap
import cn.estsh.i3plus.pojo.mes.bean.MesProductVersion
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelRepository
import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupRepository
import cn.estsh.i3plus.pojo.mes.repository.MesProductVersionRepository
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.util.StringUtils
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/7/12 12:28
* @Modify:
* */
class MesToPiscesWorkOrder {
public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesWorkOrder.class)
@Autowired
private MesPartProdGroupRepository mesPartProdGroupRepository;
@Autowired
private MesProductVersionRepository mesProductVersionRepository;
@Autowired
private IMesPartSapService mesPartSapService;
@Autowired
private MesCustomerCarModelRepository mesCustomerCarModelRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
}
String organizeCode = mapper.getOrganizeCode();
for (Map<String, Object> rowMap : srcData) {
if (!StringUtils.isEmpty(rowMap.get("PART_NO")) && !StringUtils.isEmpty(rowMap.get("PRODUCT_VERSION")) && !StringUtils.isEmpty(rowMap.get("ERP_WORK_CENTER"))) {
MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get(rowMap.get("PART_NO"))), String.valueOf(rowMap.get("PRODUCT_VERSION")), String.valueOf(rowMap.get("ERP_WORK_CENTER")))
if (!Objects.isNull(mesProductVersion)) {
rowMap.put("BOM_CODE", mesProductVersion.getAlternativePartList())
} else {
LOGGER.info("物料{}生产版本{}工作中心{},信息不存在", String.valueOf(rowMap.get(rowMap.get("PART_NO"))), String.valueOf(rowMap.get(rowMap.get("PRODUCT_VERSION"))), String.valueOf(rowMap.get(rowMap.get("ERP_WORK_CENTER"))))
}
}
//
if (!StringUtils.isEmpty(rowMap.get("PART_NO"))) {
try {
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(String.valueOf(rowMap.get(rowMap.get("PART_NO"))), organizeCode)
rowMap.put("UOM", mesPartSap.getUnit())
} catch (Exception e) {
LOGGER.info("物料{},信息不存在", String.valueOf(rowMap.get("PART_NO")))
}
}
//
if (!StringUtils.isEmpty(rowMap.get("PART_PROD_GROUP_CODE"))) {
MesPartProdGroup mesPartProdGroup = getMesPartProdGroup(organizeCode, String.valueOf(rowMap.get(rowMap.get("PART_PROD_GROUP_CODE"))));
if (!Objects.isNull(mesPartProdGroup)) {
rowMap.put("PRODUCT_GROUP_ID", mesPartProdGroup.getId())
} else {
LOGGER.info("零件生产组{}信息不存在", String.valueOf(rowMap.get("PART_PROD_GROUP_CODE")))
}
}
//
if (!StringUtils.isEmpty(rowMap.get("CAR_MODEL_CODE"))) {
MesCustomerCarModel mesCustomerCarModel = getMesCustomerCarModel(organizeCode, String.valueOf(rowMap.get(rowMap.get("CAR_MODEL_CODE"))))
if (!Objects.isNull(mesCustomerCarModel)) {
rowMap.put("VEHICLE_NAME", mesCustomerCarModel.getCarModelName())
} else {
LOGGER.info("车型代码{}信息不存在", String.valueOf(rowMap.get("CAR_MODEL_CODE")))
}
}
}
return srcData;
}
private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String workCenterCode, String productVersion) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(productVersion, "productVersion", ddlPackBean);
return mesProductVersionRepository.getByProperty(ddlPackBean);
}
private MesPartProdGroup getMesPartProdGroup(String organizeCode, String partProdGroupCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", ddlPackBean);
return mesPartProdGroupRepository.getByProperty(ddlPackBean);
}
private MesCustomerCarModel getMesCustomerCarModel(String organizeCode, String carModelCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(carModelCode, "carModelCode", ddlPackBean);
return mesCustomerCarModelRepository.getByProperty(ddlPackBean);
}
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup
import cn.estsh.i3plus.pojo.mes.bean.MesProductVersion
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelRepository
import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupRepository
import cn.estsh.i3plus.pojo.mes.repository.MesProductVersionRepository
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository
@ -36,11 +37,13 @@ class PiscesToMesWorkOrder {
if (srcData == null || srcData.size() == 0) {
return srcData
}
String organizeCode = mapper.getOrganizeCode();
for (Map<String, Object> rowMap : srcData) {
//
MesWorkCenter mesWorkCenter = null;
if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) {
String workCenterCode = String.valueOf(rowMap.get("ASSEMBLY_LINE"));
mesWorkCenter = getMesWorkCenter(mapper, workCenterCode, mesWorkCenter)
mesWorkCenter = getMesWorkCenter(organizeCode, workCenterCode)
if (!Objects.isNull(mesWorkCenter)) {
rowMap.put("WORK_CENTER_CODE", mesWorkCenter.getWorkCenterCode())
rowMap.put("ERP_WORK_CENTER", mesWorkCenter.getErpWorkCenter())
@ -49,18 +52,18 @@ class PiscesToMesWorkOrder {
}
}
//
if (!StringUtils.isEmpty(rowMap.get("VERID"))) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupRepository.getById(Long.parseLong(String.valueOf(rowMap.get("VERID"))))
if (!StringUtils.isEmpty(rowMap.get("PRODUCT_GROUP_ID"))) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupRepository.getById(Long.parseLong(String.valueOf(rowMap.get("PRODUCT_GROUP_ID"))))
if (!Objects.isNull(mesPartProdGroup)) {
rowMap.put("PART_PROD_GROUP_CODE", mesPartProdGroup.getPartProdGroupCode())
rowMap.put("PART_PROD_GROUP_NAME", mesPartProdGroup.getPartProdGroupName())
} else {
LOGGER.info("id{}零件生产组信息不存在", String.valueOf(rowMap.get("VERID")))
LOGGER.info("id{}零件生产组信息不存在", String.valueOf(rowMap.get("PRODUCT_GROUP_ID")))
}
}
//
if (!StringUtils.isEmpty(rowMap.get("part_no")) && !Objects.isNull(mesWorkCenter)) {
MesProductVersion mesProductVersion = getMesProductVersion(mapper, rowMap, mesWorkCenter)
MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get("part_no")), mesWorkCenter.getErpWorkCenter())
if (!Objects.isNull(mesProductVersion)) {
rowMap.put("PRODUCT_VERSION", mesProductVersion.getProductVersion())
} else {
@ -71,17 +74,17 @@ class PiscesToMesWorkOrder {
return srcData;
}
private MesWorkCenter getMesWorkCenter(MesInterfaceDataMapper mapper, String workCenterCode, MesWorkCenter mesWorkCenter) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mapper.getOrganizeCode());
private MesWorkCenter getMesWorkCenter(String organizeCode, String workCenterCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean);
return mesWorkCenterRepository.getByProperty(ddlPackBean);
}
private MesProductVersion getMesProductVersion(MesInterfaceDataMapper mapper, Map<String, Object> rowMap, MesWorkCenter mesWorkCenter) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mapper.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(String.valueOf(rowMap.get("part_no")), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean);
private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String erpWorkCenter) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(erpWorkCenter, "workCenterCode", ddlPackBean);
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
return mesProductVersionRepository.getByProperty(ddlPackBean);
}

@ -3,9 +3,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.dbinterface;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.impp.framework.boot.util.LocaleUtils;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -89,6 +91,9 @@ public class WmsSAPDbQuery {
* @throws Exception
*/
public String strFormat(String value, String srcFormat, String destFormat) throws Exception {
if(StringUtil.isEmpty(value)){
return "";
}
return TimeTool.parseStringFormat(value, srcFormat, destFormat);
}
/**
@ -124,4 +129,24 @@ public class WmsSAPDbQuery {
}
return result.get(0).get("part_name").toString();
}
/**
* sql
*
* @param sql
* @return
* @throws Exception
*/
public String getColumnDateBySql(String sql, String params, String column) throws Exception {
String[] split = null;
if (!StringUtil.isEmpty(params)) {
split = params.split(",");
}
List<Map<String, Object>> result = mesDataSourceProxy.queryMapList(srcConn, sql, split);
if (CollectionUtils.isNotEmpty(result)) {
return result.get(0).get(column).toString();
} else {
return "";
}
}
}

@ -365,6 +365,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setProduceTime(TimeTool.getToday());
}
item.setUnCompleteQty(item.getQty());
item.setFid(UUID.randomUUID().toString());
//保存发送WMS数据
if (CollectionUtils.isNotEmpty(saveMesWorkOrderToWms)) {
mesWorkOrderToWmsService.insertBatch(saveMesWorkOrderToWms);
@ -760,6 +761,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
sendToWms(mesProductVersionMap, mesBomMap, mesPartProdGroupMap, mesWorkOrderToWmsList, item, mesWorkCenter);
}
item.setUnCompleteQty(item.getQty());
item.setFid(UUID.randomUUID().toString());
index++;
}
return mesWorkOrderToWmsList;
@ -1342,6 +1344,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
item.setFid(UUID.randomUUID().toString());
ConvertBean.serviceModelInitialize(item, userName);
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);
//保存发送WMS数据

Loading…
Cancel
Save