Merge remote-tracking branch 'origin/dev-wuhan' into dev-wuhan

tags/yfai-mes-ext-v2.3
臧学普 7 months ago
commit 3582cfca98

@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import io.swagger.annotations.ApiOperation;
import java.util.List; import java.util.List;
@ -14,4 +15,7 @@ public interface IMesCustomerPartService extends IBaseMesService<MesCustomerPart
List<MesCustomerPart> findMesCustomerPart(MesCustomerCarModelDetail mesPartProdGroupDetail); List<MesCustomerPart> findMesCustomerPart(MesCustomerCarModelDetail mesPartProdGroupDetail);
@ApiOperation("根据零件号获取客户零件关系")
List<MesCustomerPart> findMesCustomerPartByPartNo(String organizeCode,List<String> partNoList);
} }

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultM
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProdRuleReportConditionModel; import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProdRuleReportConditionModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesCokpitKanbanData;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel;
@ -48,4 +49,7 @@ public interface IMesYfReportService {
@ApiOperation("产品加工记录") @ApiOperation("产品加工记录")
ListPager<MesProductionRecord> queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager); ListPager<MesProductionRecord> queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager);
@ApiOperation("看板数据")
ListPager<MesCokpitKanbanData> queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager);
} }

@ -53,7 +53,9 @@ class MesToPiscesMesLoadingListDetail {
if (!StringUtils.isEmpty(rowMap.get("pid"))) { if (!StringUtils.isEmpty(rowMap.get("pid"))) {
long id = Long.parseLong(String.valueOf(rowMap.get("pid"))); long id = Long.parseLong(String.valueOf(rowMap.get("pid")));
if (Objects.isNull(mesLoadingListMap) || !mesLoadingListMap.containsKey(id)) { if (Objects.isNull(mesLoadingListMap) || !mesLoadingListMap.containsKey(id)) {
mesLoadingListMap.put(id, mesLoadingListRepository.getById(id)) DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode)
DdlPreparedPack.getNumEqualPack(id,"id",packBean)
mesLoadingListMap.put(id, mesLoadingListRepository.getByProperty(packBean))
} }
MesLoadingList mesLoadingList = mesLoadingListMap.get(id) MesLoadingList mesLoadingList = mesLoadingListMap.get(id)
if (!Objects.isNull(mesLoadingList)) { if (!Objects.isNull(mesLoadingList)) {

@ -51,7 +51,9 @@ class MesToPiscesMesShippingDetail {
if (!StringUtils.isEmpty(rowMap.get("pid"))) { if (!StringUtils.isEmpty(rowMap.get("pid"))) {
long id = Long.parseLong(String.valueOf(rowMap.get("pid"))); long id = Long.parseLong(String.valueOf(rowMap.get("pid")));
if (Objects.isNull(mesProductionRecordMap) || !mesProductionRecordMap.containsKey(id)) { if (Objects.isNull(mesProductionRecordMap) || !mesProductionRecordMap.containsKey(id)) {
mesProductionRecordMap.put(id, mesShippingRepository.getById(id)) DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode)
DdlPreparedPack.getNumEqualPack(id,"id",packBean)
mesProductionRecordMap.put(id, mesShippingRepository.getByProperty(packBean))
} }
MesShippingOrderManagement mesProductionRecord = mesProductionRecordMap.get(id) MesShippingOrderManagement mesProductionRecord = mesProductionRecordMap.get(id)
if (!Objects.isNull(mesProductionRecord)) { if (!Objects.isNull(mesProductionRecord)) {

@ -7,6 +7,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesCokpitKanbanData;
import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord; import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
@ -25,6 +26,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.drools.core.rule.Collect; import org.drools.core.rule.Collect;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -148,4 +150,19 @@ public class MesBusiReportController extends MesBaseController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
@ApiOperation(value = "看板数据", notes = "看板数据")
@PostMapping("/mesCokpitKanbanData/query")
public ResultBean queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager) {
try {
ValidatorBean.beginValid(kanbanData)
.notNull("organizeCode", kanbanData.getOrganizeCode());
return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesCokpitKanbanData(kanbanData,pager));
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
} }

@ -58,22 +58,7 @@ public class MesDefectAlarmConfigJob extends BaseMesScheduleJob {
throw new IllegalArgumentException("jobc参数为空请检查参数"); throw new IllegalArgumentException("jobc参数为空请检查参数");
} }
Map<String, Object> paramMap = new HashMap<>(); String[] organizeCodeList = jobParam.split(",");
try {
paramMap = (Map<String, Object>) JSONObject.parse(jobParam);
} catch (Exception e) {
LOGGER.error("参数格式不是JSON");
return;
}
if (CollectionUtils.isEmpty(paramMap)) {
LOGGER.error("检测数据同步定时任务,没有配置参数");
return;
}
List<String> organizeCodeList = (List<String>) paramMap.get("org");
for (String organizeCode : organizeCodeList) { for (String organizeCode : organizeCodeList) {
@ -83,7 +68,6 @@ public class MesDefectAlarmConfigJob extends BaseMesScheduleJob {
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("SAP接口表数据同步作业任务结束e:{}", e.toString()); LOGGER.error("SAP接口表数据同步作业任务结束e:{}", e.toString());
//sendErrorMessage(e.toString());
} }
} }

@ -92,8 +92,7 @@ public class MesSendOutTimeReworkOrderEmailJob extends BaseMesScheduleJob {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean);
packBean.setWhereAppend(packBean.getWhereAppend() + " and model.createDatetime <= '" + TimeTool.pareDateToString(DateUtil.addMinutes(new Date(), -minutes)) + "'"); packBean.setWhereAppend(packBean.getWhereAppend() + " and model.createDatetime <= '" + TimeTool.pareDateToString(DateUtil.addMinutes(new Date(), -minutes)) + "'");
List<MesReworkTask> mesReworkTaskList = mesReworkTaskRepository.findByHqlWhere(packBean); return mesReworkTaskRepository.findByHqlWhere(packBean);
return mesReworkTaskList;
} }
} }

@ -15,9 +15,11 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -100,4 +102,12 @@ public class MesCustomerPartService extends BaseMesService<MesCustomerPart> impl
return baseRDao.findByHqlWhere(ddlPackBean); return baseRDao.findByHqlWhere(ddlPackBean);
} }
@Override
public List<MesCustomerPart> findMesCustomerPartByPartNo(String organizeCode, List<String> partNoList) {
if(StringUtils.isEmpty(organizeCode) || Objects.isNull(partNoList)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPack(partNoList, "erpPartNo", packBean);
return baseRDao.findByHqlWhere(packBean);
}
} }

@ -72,7 +72,7 @@ public class MesLabelTemplateServiceImpl extends BaseMesService<MesLabelTemplate
if (mesLabelTemplate != null) { if (mesLabelTemplate != null) {
//级联获取labelTemplateParam //级联获取labelTemplateParam
DdlPackBean templateParamPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean templateParamPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(mesLabelTemplate.getId(), "templateId", templateParamPackBean); DdlPreparedPack.getStringEqualPack(mesLabelTemplate.getTemplateCode(), "templateCode", templateParamPackBean);
List<MesLabelTemplateParam> params = mesLabelTemplateParamRDao.findByHqlWhere(templateParamPackBean); List<MesLabelTemplateParam> params = mesLabelTemplateParamRDao.findByHqlWhere(templateParamPackBean);
mesLabelTemplate.setLabelTemplateParamList(params); mesLabelTemplate.setLabelTemplateParamList(params);
} }

@ -83,7 +83,7 @@ public class MesPartService extends BaseMesService<MesPart> implements IMesPartS
@Override @Override
public ListPager<MesPart> queryMesPartByPagerExt(MesPart mesPart, Pager pager) { public ListPager<MesPart> queryMesPartByPagerExt(MesPart mesPart, Pager pager) {
DdlPackBean partQueryPackBean = DdlPackBean.getDdlPackBean(); DdlPackBean partQueryPackBean = DdlPackBean.getDdlPackBean(mesPart.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesPart.getIsValid(), "isValid", partQueryPackBean); DdlPreparedPack.getNumEqualPack(mesPart.getIsValid(), "isValid", partQueryPackBean);
DdlPreparedPack.getStringLikerPack(mesPart.getPartNo(), "partNo", partQueryPackBean); DdlPreparedPack.getStringLikerPack(mesPart.getPartNo(), "partNo", partQueryPackBean);
DdlPreparedPack.getStringLikerPack(mesPart.getPartName(), "partName", partQueryPackBean); DdlPreparedPack.getStringLikerPack(mesPart.getPartName(), "partName", partQueryPackBean);

@ -33,7 +33,7 @@ public class MesProductVersionService extends BaseMesService<MesProductVersion>
@Override @Override
public ListPager<MesProductVersion> queryMesProductVersionByPagerExt(MesProductVersion mesProductVersion, Pager pager) { public ListPager<MesProductVersion> queryMesProductVersionByPagerExt(MesProductVersion mesProductVersion, Pager pager) {
DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(); DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(mesProductVersion.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesProductVersion.getIsValid(), "isValid", productVersionQueryPackBean); DdlPreparedPack.getNumEqualPack(mesProductVersion.getIsValid(), "isValid", productVersionQueryPackBean);
DdlPreparedPack.getStringLikerPack(mesProductVersion.getProductVersion(), "productVersion", productVersionQueryPackBean); DdlPreparedPack.getStringLikerPack(mesProductVersion.getProductVersion(), "productVersion", productVersionQueryPackBean);
DdlPreparedPack.getStringLikerPack(mesProductVersion.getPartNo(), "partNo", productVersionQueryPackBean); DdlPreparedPack.getStringLikerPack(mesProductVersion.getPartNo(), "partNo", productVersionQueryPackBean);

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService;
import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -49,6 +50,8 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
private MesPullingOrderExtendsRepository mesPullingOrderExtendsRepository; private MesPullingOrderExtendsRepository mesPullingOrderExtendsRepository;
@Autowired @Autowired
private IMesPrintedSnLogRepository snLogRao; private IMesPrintedSnLogRepository snLogRao;
@Autowired
private IMesCustomerPartService mesCustomerPartService;
protected void setPackQueryBean(MesPullingOrderInfo bean, DdlPackBean packBean) { protected void setPackQueryBean(MesPullingOrderInfo bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBean);
@ -136,6 +139,9 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件mesWorkOrderPartList-->{}", organizeCode, mesWorkOrderPartList); LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件mesWorkOrderPartList-->{}", organizeCode, mesWorkOrderPartList);
//5.取工单零件和拉动组交集,根据拉动主表对应的类型 生成相应的拉动单和拉动单明细 //5.取工单零件和拉动组交集,根据拉动主表对应的类型 生成相应的拉动单和拉动单明细
Map<String, List<MesWorkOrderPart>> workOrderNoListMap = mesWorkOrderPartList.stream().collect(Collectors.groupingBy(MesWorkOrderPart::getWorkOrderNo)); Map<String, List<MesWorkOrderPart>> workOrderNoListMap = mesWorkOrderPartList.stream().collect(Collectors.groupingBy(MesWorkOrderPart::getWorkOrderNo));
//6、获取客户物料信息
List<MesCustomerPart> mesCustomerPartByPartNoList = mesCustomerPartService.findMesCustomerPartByPartNo(organizeCode, partPullDetailListMap.keySet().stream().distinct().collect(Collectors.toList()));
Map<String, List<MesCustomerPart>> customerPartMap = CollectionUtils.isEmpty(mesCustomerPartByPartNoList) ? null : mesCustomerPartByPartNoList.stream().collect(Collectors.groupingBy(MesCustomerPart::getErpPartNo));
for (Map.Entry<String, List<MesWorkOrderPart>> stringListEntry : workOrderNoListMap.entrySet()) { for (Map.Entry<String, List<MesWorkOrderPart>> stringListEntry : workOrderNoListMap.entrySet()) {
@ -234,7 +240,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
pullingOrderPartInfo.setEquipment(partInfo.getEquipment()); pullingOrderPartInfo.setEquipment(partInfo.getEquipment());
pullingOrderPartInfo.setLocation(partInfo.getPullAddr());//todo pullingOrderPartInfo.setLocation(partInfo.getPullAddr());//todo
pullingOrderPartInfo.setStatus(MesExtEnumUtil.PULL_ORDER_PART_STATUS.UN_SENTED.getValue());///明细已送料为1未送料为0 pullingOrderPartInfo.setStatus(MesExtEnumUtil.PULL_ORDER_PART_STATUS.UN_SENTED.getValue());///明细已送料为1未送料为0
pullingOrderPartInfo.setCustPartNo(pullingOrder.getCustPartNo()); pullingOrderPartInfo.setCustPartNo(!Objects.isNull(customerPartMap) && customerPartMap.containsKey(partInfo.getPartNo()) ? customerPartMap.get(partInfo.getPartNo()).iterator().next().getCustPartNo() : "");
if (partInfo.getScanValidationType() == 10) { if (partInfo.getScanValidationType() == 10) {
pullingOrderPartInfo.setColor(MesExtEnumUtil.PART_PULL_DETAIL_COLOR.WHITE.getCode()); pullingOrderPartInfo.setColor(MesExtEnumUtil.PART_PULL_DETAIL_COLOR.WHITE.getCode());
} else { } else {

@ -182,7 +182,9 @@ public class MesQmsSuspiciousService extends BaseMesService<MesQmsSuspicious> im
} }
//计算返工数量 //计算返工数量
if (mesPartInspection.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.REWORK.getValue()) { if (mesPartInspection.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.REWORK.getValue()) {
MesReworkTask reworkTask = mesReworkTaskRepository.getById(mesPartInspection.getReworkTaskId()); packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(mesPartInspection.getReworkTaskId(),"id",packBean);
MesReworkTask reworkTask = mesReworkTaskRepository.getByProperty(packBean);
if (!StringUtil.isEmpty(reworkTask)) { if (!StringUtil.isEmpty(reworkTask)) {
//返工是否完成 //返工是否完成
if (reworkTask.getStatus() == MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue()) { if (reworkTask.getStatus() == MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue()) {

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLabelTemplateService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderCutService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderCutService;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
@ -60,13 +61,10 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
private MesWorkOrderCutDetailRepository workOrderCutDetailRepository; private MesWorkOrderCutDetailRepository workOrderCutDetailRepository;
@Autowired @Autowired
private MesLabelTemplateRepository labelTemplateRepository; private IMesPrintedSnLogRepository printedSnLogRepository;
@Autowired
private MesLabelTemplateParamRepository labelTemplateParamRepository;
@Autowired @Autowired
private IMesPrintedSnLogRepository printedSnLogRepository; private IMesLabelTemplateService mesLabelTemplateService;
protected void setPackQueryBean(MesWorkOrderCut bean, DdlPackBean packBean) { protected void setPackQueryBean(MesWorkOrderCut bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean); DdlPreparedPack.getStringLikerPack(bean.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean);
@ -370,7 +368,7 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
MesCutScheme cutScheme = entry.getValue(); MesCutScheme cutScheme = entry.getValue();
List<MesWorkOrderCut> workOrderCutList = workOrderCutMapByCutCode.get(cutScheme.getCutCode()); List<MesWorkOrderCut> workOrderCutList = workOrderCutMapByCutCode.get(cutScheme.getCutCode());
MesLabelTemplate labelTemplate = getLabelTemplate(cutScheme.getTemplateCode(), organizeCode); MesLabelTemplate labelTemplate = mesLabelTemplateService.getLabelTemplate(cutScheme.getTemplateCode(), organizeCode);
//模板信息丢失抛出异常 //模板信息丢失抛出异常
if (labelTemplate == null) if (labelTemplate == null)
@ -421,20 +419,6 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
} }
private MesLabelTemplate getLabelTemplate(String templateCode, String organizeCode) {
DdlPackBean templatePackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(templateCode, MesExtConstWords.TEMPLATE_CODE, templatePackBean);
MesLabelTemplate mesLabelTemplate = labelTemplateRepository.getByProperty(templatePackBean);
if (mesLabelTemplate != null) {
//级联获取labelTemplateParam
DdlPackBean templateParamPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(mesLabelTemplate.getId(), "templateId", templateParamPackBean);
List<MesLabelTemplateParam> params = labelTemplateParamRepository.findByHqlWhere(templateParamPackBean);
mesLabelTemplate.setLabelTemplateParamList(params);
}
return mesLabelTemplate;
}
@Override @Override
public void doUpdatePrintStatus(List<String> cutWorkOrderIds, String organizeCode, String userName) { public void doUpdatePrintStatus(List<String> cutWorkOrderIds, String organizeCode, String userName) {

@ -16,6 +16,7 @@ import cn.estsh.i3plus.platform.common.tool.MathOperation;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -46,7 +47,6 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service @Service
@Slf4j @Slf4j
@ -145,6 +145,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Autowired @Autowired
private IMesPrintedSnLogRepository printedSnLogRepository; private IMesPrintedSnLogRepository printedSnLogRepository;
@Autowired
private SnowflakeIdMaker snowflakeIdMaker;
@Override @Override
public MesWorkOrder insert(MesWorkOrder bean) { public MesWorkOrder insert(MesWorkOrder bean) {
//校验产线与工位的关系 //校验产线与工位的关系
@ -912,7 +915,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//查询产线信息 //查询产线信息
MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getWorkCenterCode()); MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getWorkCenterCode());
//获取生产版本 //获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb); MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getProductVersion());
//物料+生产版本获取bom信息 //物料+生产版本获取bom信息
List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
//报工类型 //报工类型
@ -1012,7 +1015,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
} }
//获取生产版本 //获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrder); MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrder.getPartNo(),mesWorkOrder.getOrganizeCode(),mesWorkOrder.getProductVersion());
//物料+生产版本获取bom信息 //物料+生产版本获取bom信息
List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
//生成条码 //生成条码
@ -1022,6 +1025,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
List<MesMove> mesMoveList = new ArrayList<>(); List<MesMove> mesMoveList = new ArrayList<>();
boolean isReport = false; boolean isReport = false;
boolean isMove = false; boolean isMove = false;
String nowTime = TimeTool.getNowTime(true);
//排序工单 //排序工单
if (MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == mesWorkOrder.getWorkOrderType()) { if (MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == mesWorkOrder.getWorkOrderType()) {
//报工类型 //报工类型
@ -1038,7 +1042,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
isReport = true; isReport = true;
isMove = true; isMove = true;
} else if (MesExtEnumUtil.MES_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == mesProdRuleSortCfg.getReportType()) { } else if (MesExtEnumUtil.MES_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == mesProdRuleSortCfg.getReportType()) {
customerSupplyMove(mesWorkOrderNew, mesProductVersion, mesBoms, sn, mesProductOffLineList, mesMoveList); customerSupplyMove(mesWorkOrderNew, mesProductVersion, mesBoms, sn, mesProductOffLineList, mesMoveList,nowTime,true);
} else { } else {
log.info("工单{}排序加工规则报工类型未维护", mesWorkOrder.getWorkOrderNo()); log.info("工单{}排序加工规则报工类型未维护", mesWorkOrder.getWorkOrderNo());
return; return;
@ -1049,7 +1053,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode()); MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode());
//成品汇报 //成品汇报
if (isReport) { if (isReport) {
String nowTime = TimeTool.getNowTime(true);
for (MesBom mesBom : mesBoms) { for (MesBom mesBom : mesBoms) {
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime,mesBoms.size())); mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime,mesBoms.size()));
} }
@ -1064,11 +1067,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} else if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == mesWorkOrder.getWorkOrderType()) { } else if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == mesWorkOrder.getWorkOrderType()) {
MesProdRuleNosortCfg mesProdRuleNoSortCfg = mesProdRuleNosortCfgService.findMesProdRuleNosortCfgByWorkCenterCode(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode()); MesProdRuleNosortCfg mesProdRuleNoSortCfg = mesProdRuleNosortCfgService.findMesProdRuleNosortCfgByWorkCenterCode(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode());
if (MesExtEnumUtil.NOSORT_REPORT_TYPE.REPORT.getValue() == mesProdRuleNoSortCfg.getReportType()) { if (MesExtEnumUtil.NOSORT_REPORT_TYPE.REPORT.getValue() == mesProdRuleNoSortCfg.getReportType()) {
String nowTime = TimeTool.getNowTime(true);
for (MesBom mesBom : mesBoms) { for (MesBom mesBom : mesBoms) {
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime,mesBoms.size())); mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime,mesBoms.size()));
} }
}else if(MesExtEnumUtil.NOSORT_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == mesProdRuleNoSortCfg.getReportType()) {
customerSupplyMove(mesWorkOrderNew, mesProductVersion, mesBoms, sn, mesProductOffLineList, mesMoveList,nowTime,false);
} }
} else { } else {
log.info("工单{}排序规则不属于排序工单和非排序工单", mesWorkOrder.getWorkOrderNo()); log.info("工单{}排序规则不属于排序工单和非排序工单", mesWorkOrder.getWorkOrderNo());
@ -1346,7 +1349,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (CollectionUtils.isEmpty(oldProductOffLineList)) { if (CollectionUtils.isEmpty(oldProductOffLineList)) {
MesException.throwMesBusiException("条码【%s】未查询到报工数据", model.getSn()); MesException.throwMesBusiException("条码【%s】未查询到报工数据", model.getSn());
} }
oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByRecordId(oldProductOffLineList.iterator().next().getProductionRecordId(), model.getOrganizeCode()); //oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByRecordId(oldProductOffLineList.iterator().next().getProductionRecordId(), model.getOrganizeCode());
oldProductOffLineList.forEach(item -> { oldProductOffLineList.forEach(item -> {
item.setReportType(MesExtEnumUtil.REPORT_TYPE.CBR.getValue()); item.setReportType(MesExtEnumUtil.REPORT_TYPE.CBR.getValue());
item.setOrderNo(model.getShipOrderNo()); item.setOrderNo(model.getShipOrderNo());
@ -1430,10 +1433,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return mesProductVersion; return mesProductVersion;
} }
private void customerSupplyMove(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List<MesBom> mesBoms, String sn, List<MesProductOffLine> mesProductOffLineList, List<MesMove> mesMoveList) { private void customerSupplyMove(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List<MesBom> mesBoms, String sn, List<MesProductOffLine> mesProductOffLineList, List<MesMove> mesMoveList,String nowTime,boolean isSort) {
boolean isItemMove; boolean isItemMove;
boolean isItemReport; boolean isItemReport;
MesMoveRule moveRule; MesMoveRule moveRule;
MesPart itemPart;
//查询零件生产组的移库规则 //查询零件生产组的移库规则
List<MesMoveRule> moveRules = mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(mesWorkOrder.getPartProdGroupCode(), mesWorkOrder.getOrganizeCode()); List<MesMoveRule> moveRules = mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(mesWorkOrder.getPartProdGroupCode(), mesWorkOrder.getOrganizeCode());
Map<String, List<MesMoveRule>> mesMoveRuleMap = moveRules.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.groupingBy(MesMoveRule::getSrcType)); Map<String, List<MesMoveRule>> mesMoveRuleMap = moveRules.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.groupingBy(MesMoveRule::getSrcType));
@ -1446,8 +1450,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
isItemReport = false; isItemReport = false;
isItemMove = false; isItemMove = false;
moveRule = null; moveRule = null;
itemPart = null;
if (itemPartMap.containsKey(mesBom.getItemPartNo())) { if (itemPartMap.containsKey(mesBom.getItemPartNo())) {
MesPart itemPart = itemPartMap.get(mesBom.getItemPartNo()).iterator().next(); itemPart = itemPartMap.get(mesBom.getItemPartNo()).iterator().next();
if (!StringUtil.isEmpty(itemPart.getEsd()) && mesMoveRuleMap.containsKey(itemPart.getEsd())) { if (!StringUtil.isEmpty(itemPart.getEsd()) && mesMoveRuleMap.containsKey(itemPart.getEsd())) {
moveRule = mesMoveRuleMap.get(itemPart.getEsd()).iterator().next(); moveRule = mesMoveRuleMap.get(itemPart.getEsd()).iterator().next();
if (MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.REPORT_MOVE.getValue() == moveRule.getReportType()) { if (MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.REPORT_MOVE.getValue() == moveRule.getReportType()) {
@ -1461,9 +1466,24 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
} }
//汇报 //汇报
if (isItemReport) { if (isItemReport && isSort) {
String nowTime = TimeTool.getNowTime(true); mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, true, nowTime, mesBoms.size()));
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, true,nowTime,mesBoms.size())); } else if (isItemReport) {
String reportSn = String.valueOf(snowflakeIdMaker.nextId());
MesProductVersion itemVersion = getMesProductVersion(mesBom.getItemPartNo(), mesWorkOrder.getOrganizeCode(), mesProductVersion.getProductVersion());
List<MesBom> bomList = null;
try {
bomList = findBomList(mesWorkOrder.getOrganizeCode(), itemPart, itemVersion.getAlternativePartList());
} catch (Exception e) {
}
//bom下的子节汇报
if (!CollectionUtils.isEmpty(bomList)) {
for (MesBom bom : bomList) {
mesProductOffLineList.add(getMesProductOffLine(mesWorkOrder, itemVersion, reportSn, bom, mesBom.getItemQty(), true, nowTime));
}
} else {
mesProductOffLineList.add(getMesProductOffLine(mesWorkOrder, itemVersion, reportSn, mesBom, mesBom.getQty(), true, nowTime));
}
} }
//移库 //移库
if (isItemMove) { if (isItemMove) {
@ -1476,18 +1496,23 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesMoveList.add(move); mesMoveList.add(move);
} }
} }
//bom下的子节汇报总成也需要汇报
if (!isSort && !CollectionUtils.isEmpty(mesProductOffLineList)) {
for (MesBom mesBom : mesBoms) {
mesProductOffLineList.add(getMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, mesBom.getQty(), false, nowTime));
}
}
} }
private Map<String, List<MesPartSap>> getPartSapMap(MesWorkOrder mesWorkOrder, List<String> itemPartNoList) { private Map<String, List<MesPartSap>> getPartSapMap(MesWorkOrder mesWorkOrder, List<String> itemPartNoList) {
List<MesPartSap> mesPartSapList = mesPartSapService.findMesPartSapByPartNoList(itemPartNoList, mesWorkOrder.getOrganizeCode()); List<MesPartSap> mesPartSapList = mesPartSapService.findMesPartSapByPartNoList(itemPartNoList, mesWorkOrder.getOrganizeCode());
Map<String, List<MesPartSap>> mesPartSapMap = mesPartSapList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPartSap::getPartNo)); return mesPartSapList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPartSap::getPartNo));
return mesPartSapMap;
} }
private Map<String, List<MesPart>> getItemPartMap(MesWorkOrder mesWorkOrder, List<String> itemPartNoList) { private Map<String, List<MesPart>> getItemPartMap(MesWorkOrder mesWorkOrder, List<String> itemPartNoList) {
List<MesPart> itemPartList = iMesPartService.findMesPartByPartNoList(itemPartNoList, mesWorkOrder.getOrganizeCode()); List<MesPart> itemPartList = iMesPartService.findMesPartByPartNoList(itemPartNoList, mesWorkOrder.getOrganizeCode());
Map<String, List<MesPart>> itemPartMap = itemPartList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPart::getPartNo)); return itemPartList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPart::getPartNo));
return itemPartMap;
} }
private MesProdRuleSortCfg getMesProdRuleSortCfg(MesWorkOrder mesWorkOrder) { private MesProdRuleSortCfg getMesProdRuleSortCfg(MesWorkOrder mesWorkOrder) {
@ -1507,23 +1532,57 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
private MesProductVersion getMesProductVersion(MesWorkOrder mesWorkOrder) { private MesProductVersion getMesProductVersion(String partNo,String organizeCode,String productVersion) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
//DdlPreparedPack.getStringEqualPack(mesWorkOrder.getErpWorkCenter(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(productVersion, "productVersion", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean);
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (null == mesProductVersion) { if (null == mesProductVersion) {
MesException.throwMesBusiException("物料【%s】生产版本【%s】信息不存在", mesWorkOrder.getPartNo(),mesWorkOrder.getProductVersion()); MesException.throwMesBusiException("物料【%s】生产版本【%s】信息不存在", partNo,productVersion);
} }
return mesProductVersion; return mesProductVersion;
} }
private MesProductOffLine getMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion,
String sn, MesBom mesBom,Double itemQty, boolean isItemReport,String nowTime) {
MesProductOffLine newMesProductOffLine = new MesProductOffLine();
BeanUtils.copyProperties(mesBom, newMesProductOffLine, "id","systemSyncStatus");
newMesProductOffLine.setReportPartNo(mesBom.getPartNo());
newMesProductOffLine.setReportPartNameRdd(mesBom.getPartName());
newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint());
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint());
newMesProductOffLine.setQty(MathOperation.mul(mesWorkOrder.getNum(),itemQty));
newMesProductOffLine.setItemQty(MathOperation.mul(newMesProductOffLine.getQty(), mesBom.getItemQty()));
if (isItemReport && mesBom.getPartNo().equals(mesWorkOrder.getPartNo())) {
newMesProductOffLine.setReportPartNo(mesBom.getItemPartNo());
newMesProductOffLine.setReportPartNameRdd(mesBom.getItemPartName());
newMesProductOffLine.setItemPartNo("");
newMesProductOffLine.setItemPartName("");
newMesProductOffLine.setItemUnit("");
newMesProductOffLine.setItemQty(0d);
}
newMesProductOffLine.setReportSn(sn);
newMesProductOffLine.setSerialNumber(sn);
newMesProductOffLine.setBomVersion(mesWorkOrder.getProductVersion());
newMesProductOffLine.setUnit(mesBom.getUnit());
newMesProductOffLine.setBomCode(mesBom.getBomCode());
newMesProductOffLine.setWorkOrderNo(mesWorkOrder.getWorkOrderNo());
newMesProductOffLine.setWorkOrderType(mesWorkOrder.getWorkOrderType());
newMesProductOffLine.setWorkCenterCode(mesWorkOrder.getWorkCenterCode());
newMesProductOffLine.setWorkCellCode(mesWorkOrder.getWorkCellCode());
newMesProductOffLine.setReportType(mesWorkOrder.getReportType());
newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode());
newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode());
newMesProductOffLine.setDescription(nowTime);
newMesProductOffLine.setProductionRecordId(mesWorkOrder.getId().toString());
ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getModifyUser());
return newMesProductOffLine;
}
private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion,
String sn, MesBom mesBom, boolean isItemReport,String nowTime,Integer bomTotalSize) { String sn, MesBom mesBom, boolean isItemReport,String nowTime,Integer bomTotalSize) {
MesProductOffLine newMesProductOffLine; MesProductOffLine newMesProductOffLine = new MesProductOffLine();
newMesProductOffLine = new MesProductOffLine();
if (!isItemReport) { if (!isItemReport) {
newMesProductOffLine.setReportPartNo(mesWorkOrder.getPartNo()); newMesProductOffLine.setReportPartNo(mesWorkOrder.getPartNo());
newMesProductOffLine.setReportPartNameRdd(mesWorkOrder.getPartName()); newMesProductOffLine.setReportPartNameRdd(mesWorkOrder.getPartName());
@ -1747,7 +1806,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode()); MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode());
} }
//获取生产版本 //获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb); MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getProductVersion());
//物料+生产版本获取bom信息 //物料+生产版本获取bom信息
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.api.busi.IProdExtOrgService; import cn.estsh.i3plus.ext.mes.api.busi.IProdExtOrgService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IEquipmentExtDao; import cn.estsh.i3plus.ext.mes.apiservice.dao.IEquipmentExtDao;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.mes.api.iservice.base.IEnumService; import cn.estsh.i3plus.mes.api.iservice.base.IEnumService;
@ -222,7 +223,9 @@ public class ProdExtOrgService implements IProdExtOrgService {
public MesArea updateMesArea(MesArea mesArea) { public MesArea updateMesArea(MesArea mesArea) {
//对id做有效性校验 //对id做有效性校验
MesArea mesAreaDb = areaRepository.getById(mesArea.getId()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(AuthUtilExt.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesArea.getId(),"id",packBean);
MesArea mesAreaDb = areaRepository.getByProperty(packBean);
if (mesAreaDb == null) { if (mesAreaDb == null) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())

@ -58,9 +58,9 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic
Map<String, List<MesCutSchemeFg>> cutSchemeFgMapByCutCode = getCutSchemeFgMapByCutCode(cutCodeList); Map<String, List<MesCutSchemeFg>> cutSchemeFgMapByCutCode = getCutSchemeFgMapByCutCode(cutCodeList,model.getOrganizeCode());
List<MesCutSchemeMaterial> cutSchemeMaterialList = getMesCutSchemeMaterials(cutCodeList); List<MesCutSchemeMaterial> cutSchemeMaterialList = getMesCutSchemeMaterials(cutCodeList, model.getOrganizeCode());
//根据裁片方案代码对裁片方案原材料分组 //根据裁片方案代码对裁片方案原材料分组
Map<String, List<MesCutSchemeMaterial>> cutSchemeMaterialMapByCutCode = cutSchemeMaterialList.stream().collect(Collectors.groupingBy(MesCutSchemeMaterial::getCutCode)); Map<String, List<MesCutSchemeMaterial>> cutSchemeMaterialMapByCutCode = cutSchemeMaterialList.stream().collect(Collectors.groupingBy(MesCutSchemeMaterial::getCutCode));
@ -151,12 +151,11 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic
return val == null ? "" : val.toString(); return val == null ? "" : val.toString();
} }
private Map<String, List<MesCutSchemeFg>> getCutSchemeFgMapByCutCode(List<String> cutCodeList) { private Map<String, List<MesCutSchemeFg>> getCutSchemeFgMapByCutCode(List<String> cutCodeList,String organizeCode) {
List<MesCutSchemeFg> cutSchemeFgList = getMesCutSchemeFgs(cutCodeList); List<MesCutSchemeFg> cutSchemeFgList = getMesCutSchemeFgs(cutCodeList,organizeCode);
//根据裁片方案代码对裁片方案成品明细分组 //根据裁片方案代码对裁片方案成品明细分组
Map<String, List<MesCutSchemeFg>> cutSchemeFgMapByCutCode = cutSchemeFgList.stream().collect(Collectors.groupingBy(MesCutSchemeFg::getCutCode)); return cutSchemeFgList.stream().collect(Collectors.groupingBy(MesCutSchemeFg::getCutCode));
return cutSchemeFgMapByCutCode;
} }
private BigDecimal[] divideAndRemainder(Double qty, Double packageQty) { private BigDecimal[] divideAndRemainder(Double qty, Double packageQty) {
@ -178,22 +177,19 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic
private List<MesCutSchemeEquipment> getMesCutSchemeEquipments(MesProduceSnPrintModel model, List<String> cutCodeList) { private List<MesCutSchemeEquipment> getMesCutSchemeEquipments(MesProduceSnPrintModel model, List<String> cutCodeList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean); DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean);
List<MesCutSchemeEquipment> cutSchemeEquipmentList = cutSchemeEquipmentRepository.findByHqlWhere(packBean); return cutSchemeEquipmentRepository.findByHqlWhere(packBean);
return cutSchemeEquipmentList;
} }
private List<MesCutSchemeMaterial> getMesCutSchemeMaterials(List<String> cutCodeList) { private List<MesCutSchemeMaterial> getMesCutSchemeMaterials(List<String> cutCodeList,String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean); DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean);
List<MesCutSchemeMaterial> cutSchemeMaterialList = cutSchemeMaterialRepository.findByHqlWhere(packBean); return cutSchemeMaterialRepository.findByHqlWhere(packBean);
return cutSchemeMaterialList;
} }
private List<MesCutSchemeFg> getMesCutSchemeFgs(List<String> cutCodeList) { private List<MesCutSchemeFg> getMesCutSchemeFgs(List<String> cutCodeList,String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean); DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean);
List<MesCutSchemeFg> cutSchemeFgList = cutSchemeFgRepository.findByHqlWhere(packBean); return cutSchemeFgRepository.findByHqlWhere(packBean);
return cutSchemeFgList;
} }
private List<Map<String, Object>> packResultMapList(MesProduceSnPrintModel printModel, List<Map<String, Object>> printTemplateDateList) { private List<Map<String, Object>> packResultMapList(MesProduceSnPrintModel printModel, List<Map<String, Object>> printTemplateDateList) {

@ -97,6 +97,10 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
@Autowired @Autowired
private MesProductionRecordRepository mesProductionRecordRepository; private MesProductionRecordRepository mesProductionRecordRepository;
@Autowired
private MesCokpitKanbanDataRepository mesCokpitKanbanDataRepository;
@Override @Override
public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) {
ListPager<MesDeviceDataQueryReportResultModel> mesDeviceDataQueryReportResultModelListPager = ListPager<MesDeviceDataQueryReportResultModel> mesDeviceDataQueryReportResultModelListPager =
@ -251,6 +255,19 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
return new ListPager<>(mesProductionRecordRepository.findByHqlWherePage(packBean, pager), pager); return new ListPager<>(mesProductionRecordRepository.findByHqlWherePage(packBean, pager), pager);
} }
@Override
public ListPager<MesCokpitKanbanData> queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(kanbanData.getOrganizeCode());
DdlPreparedPack.getStringLikerPack(kanbanData.getWorkCenterCode(),"workCenterCode",packBean);
DdlPreparedPack.getStringEqualPack("GHHCS","dataLocation",packBean);
DdlPreparedPack.getStringBiggerPack(kanbanData.getDataTimeStart(), "dataTime", packBean);
DdlPreparedPack.getStringSmallerPack(kanbanData.getDataTimeEnd(), "dataTime", packBean);
pager = PagerHelper.getPager(pager, mesCokpitKanbanDataRepository.findByHqlWhereCount(packBean));
DdlPreparedPack.getOrderBy(kanbanData.getOrderByParam(),kanbanData.getAscOrDesc(),packBean);
List<MesCokpitKanbanData> mesCokpitKanbanDataList = mesCokpitKanbanDataRepository.findByHqlWherePage(packBean, pager);
return new ListPager<>(mesCokpitKanbanDataList,pager);
}
private DdlPackBean getDdlPackBeanMesProductionRecord(MesProductionRecord mesProductionRecord) { private DdlPackBean getDdlPackBeanMesProductionRecord(MesProductionRecord mesProductionRecord) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProductionRecord.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProductionRecord.getOrganizeCode());
DdlPreparedPack.getStringLikerPack(mesProductionRecord.getProductSn(), "productSn", packBean); DdlPreparedPack.getStringLikerPack(mesProductionRecord.getProductSn(), "productSn", packBean);

Loading…
Cancel
Save