You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
i3plus-mes-yfai/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDe...

84 lines
3.9 KiB
Groovy

import cn.estsh.i3plus.pojo.base.bean.DdlPackBean
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListRepository
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 MesToPiscesMesLoadingListDetail {
public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesMesLoadingListDetail.class)
@Autowired
private MesLoadingListRepository mesLoadingListRepository;
@Autowired
private MesShippingOrderManagementRepository mesShippingRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
}
String organizeCode = mapper.getOrganizeCode();
Map<String, MesShippingOrderManagement> mesProductionRecordMap = new HashMap<>();
Map<Long, MesLoadingList> mesLoadingListMap = new HashMap<>();
for (Map<String, Object> rowMap : srcData) {
//发运单
if (!StringUtils.isEmpty(rowMap.get("shipping_code"))) {
MesShippingOrderManagement mesShippingOrderManagement = getShippingCode(organizeCode,String.valueOf(rowMap.get("shipping_code")),mesProductionRecordMap)
if (!Objects.isNull(mesShippingOrderManagement)) {
rowMap.put("SHIPPING_FID", mesShippingOrderManagement.getFid())
} else {
rowMap.put("SHIPPING_FID", null)
LOGGER.info("发运单shipping_code{},信息不存在", String.valueOf(rowMap.get("shipping_code")))
}
}else{
rowMap.put("SHIPPING_FID", null)
}
//装车单
if (!StringUtils.isEmpty(rowMap.get("pid"))) {
long id = Long.parseLong(String.valueOf(rowMap.get("pid")));
if (Objects.isNull(mesLoadingListMap) || !mesLoadingListMap.containsKey(id)) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode)
DdlPreparedPack.getNumEqualPack(id,"id",packBean)
mesLoadingListMap.put(id, mesLoadingListRepository.getByProperty(packBean))
}
MesLoadingList mesLoadingList = mesLoadingListMap.get(id)
if (!Objects.isNull(mesLoadingList)) {
rowMap.put("LOADING_LIST_FID", mesLoadingList.getFid())
} else {
rowMap.put("LOADING_LIST_FID", null)
LOGGER.info("装车id{},信息不存在", String.valueOf(rowMap.get("pid")))
}
}else{
rowMap.put("LOADING_LIST_FID", null)
}
}
return srcData;
}
private MesShippingOrderManagement getShippingCode(String organizeCode, String shippingCode, Map<String, MesShippingOrderManagement> mesShippingOrderManagementMap) {
if (Objects.isNull(mesShippingOrderManagementMap) || !mesShippingOrderManagementMap.containsKey(shippingCode)) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(shippingCode, "shippingCode", ddlPackBean);
mesShippingOrderManagementMap.put(shippingCode, mesShippingRepository.getByProperty(ddlPackBean))
}
return mesShippingOrderManagementMap.get(shippingCode);
}
}