问题清单修复

tags/yfai-mes-ext-v1.1
jun 9 months ago
parent 0da6e7f2f6
commit 096835bd11

@ -3,6 +3,8 @@ package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.List;
/** /**
* @Description: * @Description:
* @CreateDate: 2021/9/9 3:24 * @CreateDate: 2021/9/9 3:24
@ -22,4 +24,10 @@ public interface IMesConfigService {
@ApiOperation(value = "验证分表配置") @ApiOperation(value = "验证分表配置")
Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item); Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item);
@ApiOperation(value = "根据分隔符查询存在元素的配置")
List<String> findCfgValueContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, List<String> itemList);
@ApiOperation(value = "查询分表配置")
List<String> findShardingTablesObjectCfg(String organizeCode, String cfgKey, List<String> itemList);
} }

@ -30,6 +30,8 @@ class MesProductionRecordToPisces {
public static final Logger LOGGER = LoggerFactory.getLogger(MesProductionRecordToPisces.class) public static final Logger LOGGER = LoggerFactory.getLogger(MesProductionRecordToPisces.class)
private static final String[] workCenterCodeList = ["B19CK01A", "B15CK01A", "C06CK01A", "C06CK01B", "C09CK01A", "C12CK01A"] as String[];
@Autowired @Autowired
private MesEquipmentRepository equipmentRepository; private MesEquipmentRepository equipmentRepository;
@ -69,11 +71,17 @@ class MesProductionRecordToPisces {
}else{ }else{
continue continue
} }
String workCenterCode = String.valueOf(rowMap.get("work_center_code"));
String workOrderNo = String.valueOf(rowMap.get("work_order_no")); if (!workCenterCodeList.contains(workCenterCode)) {
MesWorkOrder workOrderDb = getWorkOrderDb(mapper.getOrganizeCode(), workOrderNo); String workOrderNo = String.valueOf(rowMap.get("work_order_no"));
if (!Objects.isNull(workOrderDb)) { MesWorkOrder workOrderDb = getWorkOrderDb(mapper.getOrganizeCode(), workOrderNo);
rowMap.put("WORK_ORDER_FID", workOrderDb.getFid()) if (!Objects.isNull(workOrderDb)) {
rowMap.put("WORK_ORDER_FID", workOrderDb.getFid())
} else {
rowMap.put("WORK_ORDER_FID", null)
}
} else {
rowMap.put("WORK_ORDER_FID", null)
} }
String equipmentCode = String.valueOf(rowMap.get("equipment_code")); String equipmentCode = String.valueOf(rowMap.get("equipment_code"));

@ -6,7 +6,6 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail;
import cn.estsh.i3plus.pojo.mes.repository.MesConfigRepository; import cn.estsh.i3plus.pojo.mes.repository.MesConfigRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -17,6 +16,7 @@ import org.springframework.util.StringUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Description: * @Description:
@ -67,4 +67,23 @@ public class MesConfigService implements IMesConfigService {
return checkCfgValueIsContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.SEMICOLON, item); return checkCfgValueIsContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.SEMICOLON, item);
} }
@Override
public List<String> findCfgValueContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, List<String> itemList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(cfgCode, MesExtConstWords.CFG_CODE, packBean);
DdlPreparedPack.getStringEqualPack(cfgKey, MesExtConstWords.CFG_KEY, packBean);
DdlPreparedPack.getStringEqualPack(cfgType, MesExtConstWords.CFG_TYPE, packBean);
MesConfig config = configRepository.getByProperty(packBean);
if (null == config || StringUtils.isEmpty(config.getCfgValue())) return null;
List<String> cfgValueList = Arrays.asList(config.getCfgValue().split(splitStr));
if (CollectionUtils.isEmpty(cfgValueList)) return null;
return itemList.stream().filter(cfgValueList::contains).collect(Collectors.toList());
}
@Override
public List<String> findShardingTablesObjectCfg(String organizeCode, String cfgKey, List<String> itemList) {
if(CollectionUtils.isEmpty(itemList)) return null;
return findCfgValueContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.SEMICOLON, itemList);
}
} }

@ -1470,7 +1470,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
newMesProductOffLine.setQty(1d); newMesProductOffLine.setQty(1d);
newMesProductOffLine.setReportSn(produceSn.getProductSn()); newMesProductOffLine.setReportSn(produceSn.getProductSn());
newMesProductOffLine.setBomVersion(mesWorkOrderDb.getProductVersion()); newMesProductOffLine.setBomVersion(mesWorkOrderDb.getProductVersion());
newMesProductOffLine.setSerialNumber(produceSn.getProductSn()); newMesProductOffLine.setSerialNumber(produceSn.getSerialNumber());
newMesProductOffLine.setUnit(mesBom.getUnit()); newMesProductOffLine.setUnit(mesBom.getUnit());
newMesProductOffLine.setItemUnit(mesBom.getItemUnit()); newMesProductOffLine.setItemUnit(mesBom.getItemUnit());
newMesProductOffLine.setWorkOrderNo(mesWorkOrderDb.getWorkOrderNo()); newMesProductOffLine.setWorkOrderNo(mesWorkOrderDb.getWorkOrderNo());

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report;
import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService; import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService;
import cn.estsh.i3plus.ext.mes.api.base.file.IMesFileService; import cn.estsh.i3plus.ext.mes.api.base.file.IMesFileService;
@ -90,6 +91,9 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
@Autowired @Autowired
private MesEquipmentRepository mesEquipmentRepository; private MesEquipmentRepository mesEquipmentRepository;
@Autowired
private IMesConfigService mesConfigService;
@Override @Override
public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) {
ListPager<MesDeviceDataQueryReportResultModel> mesDeviceDataQueryReportResultModelListPager = ListPager<MesDeviceDataQueryReportResultModel> mesDeviceDataQueryReportResultModelListPager =
@ -157,7 +161,7 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
List<MesProductionAssembly> productionAssemblyList = mesProductionAssemblyRepository.findByHqlWhere(packBean); List<MesProductionAssembly> productionAssemblyList = mesProductionAssemblyRepository.findByHqlWhere(packBean);
Map<String, List<MesProductionAssembly>> productionAssemblyMap = CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getWorkCenterCode()).add(t.getWorkCellCode()).add(t.getEquipmentCode()).toString())); Map<String, List<MesProductionAssembly>> productionAssemblyMap = CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getWorkCenterCode()).add(t.getWorkCellCode()).add(t.getEquipmentCode()).toString()));
//根据设备代码查询设备id //根据设备代码查询设备id
Map<String, List<MesEquipmentLogDetail>> mesEquipmentLogDetailMap = getMesEquipmentLogDetailMap(mesProduceSn, productionRecordList); Map<String, List<MesEquipmentLogDetail>> mesEquipmentLogDetailMap = getMesEquipmentLogDetailMap(mesProduceSn.getOrganizeCode(), productionRecordList);
//查询工序名称 //查询工序名称
Map<String, MesProcess> processMap = getMesProcessMap(mesProduceSn, processCodeList); Map<String, MesProcess> processMap = getMesProcessMap(mesProduceSn, processCodeList);
//数据组装 //数据组装
@ -220,29 +224,29 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
return mesTraceabilityReportModelList; return mesTraceabilityReportModelList;
} }
private Map<String, List<MesEquipmentLogDetail>> getMesEquipmentLogDetailMap(MesProduceSn mesProduceSn, List<MesProductionRecord> productionRecordList) { private Map<String, List<MesEquipmentLogDetail>> getMesEquipmentLogDetailMap(String organizeCode, List<MesProductionRecord> productionRecordList) {
List<String> organizeCodeEquipList = getEquipList(mesProduceSn, productionRecordList); List<String> organizeCodeEquipList = getEquipList(organizeCode, productionRecordList);
//工艺加工参数 //工艺加工参数
if(CollectionUtils.isEmpty(organizeCodeEquipList)) return null; if(CollectionUtils.isEmpty(organizeCodeEquipList)) return null;
return getMesEquipmentLogDetailMap(mesProduceSn, productionRecordList, organizeCodeEquipList); return getMesEquipmentLogDetailMap(organizeCode, productionRecordList, organizeCodeEquipList);
} }
private Map<String, List<MesEquipmentLogDetail>> getMesEquipmentLogDetailMap(MesProduceSn mesProduceSn, List<MesProductionRecord> productionRecordList, List<String> organizeCodeEquipList) { private Map<String, List<MesEquipmentLogDetail>> getMesEquipmentLogDetailMap(String organizeCode, List<MesProductionRecord> productionRecordList, List<String> organizeCodeEquipList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProduceSn.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(organizeCodeEquipList, MesExtConstWords.ORG_EQUIP_ID, packBean); DdlPreparedPack.getInPackList(organizeCodeEquipList, MesExtConstWords.ORG_EQUIP_ID, packBean);
DdlPreparedPack.getInPackList(productionRecordList.stream().map(MesProductionRecord::getMouldRecordId).collect(Collectors.toList()), "mouldRecordId", packBean); DdlPreparedPack.getInPackList(productionRecordList.stream().map(MesProductionRecord::getMouldRecordId).distinct().collect(Collectors.toList()), "mouldRecordId", packBean);
DdlPreparedPack.getInPackArray(new Object[]{MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS.getValue()}, "variableType", packBean); DdlPreparedPack.getInPackArray(new Object[]{MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS.getValue()}, "variableType", packBean);
List<MesEquipmentLogDetail> mesEquipmentLogDetailList = mesEquipmentLogDetailRepository.findByHqlWhere(packBean); List<MesEquipmentLogDetail> mesEquipmentLogDetailList = mesEquipmentLogDetailRepository.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(mesEquipmentLogDetailList)) return null; if (CollectionUtils.isEmpty(mesEquipmentLogDetailList)) return null;
return mesEquipmentLogDetailList.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getMouldRecordId().toString()).add(t.getWorkCenterCode()).add(t.getWorkCellCode()).add(t.getEquipmentCode()).toString())); return mesEquipmentLogDetailList.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getMouldRecordId().toString()).add(t.getWorkCenterCode()).add(t.getWorkCellCode()).add(t.getEquipmentCode()).toString()));
} }
private List<String> getEquipList(MesProduceSn mesProduceSn, List<MesProductionRecord> productionRecordList) { private List<String> getEquipList(String organizeCode, List<MesProductionRecord> productionRecordList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProduceSn.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(productionRecordList.stream().map(MesProductionRecord::getEquipmentCode).collect(Collectors.toList()), "equipmentCode", packBean); DdlPreparedPack.getInPackList(productionRecordList.stream().map(MesProductionRecord::getEquipmentCode).distinct().collect(Collectors.toList()), "equipmentCode", packBean);
List<MesEquipment> mesEquipmentList = mesEquipmentRepository.findByHqlWhere(packBean); List<MesEquipment> mesEquipmentList = mesEquipmentRepository.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(mesEquipmentList)) return null; if (CollectionUtils.isEmpty(mesEquipmentList)) return null;
return mesEquipmentList.stream().map(t -> new StringJoiner(MesExtConstWords.E_UNDERLINE).add(t.getOrganizeCode()).add(t.getEquipId().toString()).toString()).collect(Collectors.toList()); return mesConfigService.findShardingTablesObjectCfg(organizeCode,MesEquipmentLogDetail.class.getSimpleName(),mesEquipmentList.stream().map(t -> new StringJoiner(MesExtConstWords.E_UNDERLINE).add(t.getOrganizeCode()).add(t.getEquipId().toString()).toString()).distinct().collect(Collectors.toList()));
} }
private MesWorkCenter getWorkCenter(MesProduceSn produceSn) { private MesWorkCenter getWorkCenter(MesProduceSn produceSn) {

Loading…
Cancel
Save