礼嘉工位零件打印配置

uat-temp-ljx-chongqi-dev-20250318
王杰 4 months ago
parent 8f7a6ad150
commit 4c811b0c9b

@ -1,9 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesCraft;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellExtendCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.bean.*;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -56,4 +53,7 @@ public interface IMesProdOrgExtService {
@ApiOperation(value = "根据生产线代码,工位代码查询主子工位实虚关系信息")
List<MesWorkCellExtendCfg> getWorkCellExtendCfgRvListByBak(String organizeCode, String workCenterCodeBak, String workCellCodeBak);
@ApiOperation(value = "根据生产线代码,工位代码查询工位零件打印机配置信息")
List<MesWorkCellPartPrinterCfg> getWorkCellPartPrinterCfgList(String organizeCode, String workCenterCode, String workCellCode);
}

@ -191,4 +191,7 @@ public interface IMesProductionProcessContextStepService {
@ApiOperation(value = "处理排序线推单配置上下文, 返回推送工位类型对应的配置信息")
List<MesQueueOrderPushCellCfg> dispatchQueueOrderPushCellCfgContext(StationRequestBean reqBean, Integer pushType);
@ApiOperation(value = "处理工位零件打印机配置")
List<MesWorkCellPartPrinterCfg> disPatchWorkCellPartPrinterCfg(StationRequestBean reqBean, Boolean pcNosortPrinterCfg);
}

@ -5,14 +5,8 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCraft;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellExtendCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.repository.MesCraftRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellExtendCfgRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -39,6 +33,9 @@ public class MesProdOrgExtService implements IMesProdOrgExtService {
@Autowired
private MesWorkCellExtendCfgRepository workCellExtendCfgRepository;
@Autowired
private MesWorkCellPartPrinterCfgRepository workCellPartPrinterCfgRepository;
@Override
public MesWorkCenter getWorkCenterDb(String organizeCode, String workCenterCode) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode)) return null;
@ -186,4 +183,11 @@ public class MesProdOrgExtService implements IMesProdOrgExtService {
return getWorkCellExtendCfgList(organizeCode, workCellExtendCfg.getWorkCenterCode(), workCellExtendCfg.getWorkCellCode(), MesExtEnumUtil.WORK_CELL_EXTEND_TYPE.RV.getValue());
}
@Override
public List<MesWorkCellPartPrinterCfg> getWorkCellPartPrinterCfgList(String organizeCode, String workCenterCode, String workCellCode) {
return workCellPartPrinterCfgRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode, workCellCode});
}
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext;
@ -43,6 +44,9 @@ import java.util.stream.Collectors;
public class MesProductSnPrintNosortStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Autowired
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
@Autowired
@ -90,6 +94,8 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
Boolean pcNosortPrinterCfg = getPcNosortPrinterCfg(reqBean.getOrganizeCode());
//保存零件数据信息
Map<String, MesPart> partDataMap = savePartDataMap(reqBean, resultBean, stepResult, prodRuleDataContextList, pcNosortPrinterCfg);
//处理工位零件打印机配置
List<MesWorkCellPartPrinterCfg> workCellPartPrinterCfgList = productionProcessContextStepService.disPatchWorkCellPartPrinterCfg(reqBean, pcNosortPrinterCfg);
//需要打印的数据 String 是打印模板code
Map<String, List<MesProduceSnPrintDataModel>> resultData = new HashMap<>();
@ -130,7 +136,7 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
mesProduceSnPrintModel.setUserName(reqBean.getUserInfo());
if (pcNosortPrinterCfg) {
//赋值打印机
String printer = filterPrinter(partDataMap, sn.getPartNo());
String printer = filterPrinter(reqBean, workCellPartPrinterCfgList, partDataMap, sn.getPartNo());
if (!StringUtils.isEmpty(printer)) mesProduceSnPrintModel.setPrinter(printer);
}
List<MesProduceSn> snList = new ArrayList<>();
@ -189,10 +195,19 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
}
//获取打印机
private String filterPrinter(Map<String, MesPart> partDataMap, String partNo) {
if (CollectionUtils.isEmpty(partDataMap) || !partDataMap.containsKey(partNo)) return null;
String priter = partDataMap.get(partNo).getProductPrinterCode();
return !StringUtils.isEmpty(priter) ? priter : null;
private String filterPrinter(StationRequestBean reqBean, List<MesWorkCellPartPrinterCfg> workCellPartPrinterCfgList, Map<String, MesPart> partDataMap, String partNo) {
String priter = null;
if (!CollectionUtils.isEmpty(workCellPartPrinterCfgList)) {
Optional<MesWorkCellPartPrinterCfg> optional = workCellPartPrinterCfgList.stream().filter(o -> (null != o
&& !StringUtils.isEmpty(o.getWorkCenterCode()) && o.getWorkCenterCode().equals(reqBean.getWorkCenterCode())
&& !StringUtils.isEmpty(o.getWorkCellCode()) && o.getWorkCellCode().equals(reqBean.getWorkCellCode())
&& !StringUtils.isEmpty(o.getPartNo()) && o.getPartNo().equals(partNo) && !StringUtils.isEmpty(o.getPrinterCode()))).findFirst();
if (null != optional && optional.isPresent()) priter = optional.get().getPrinterCode();
}
if (StringUtils.isEmpty(priter) && !CollectionUtils.isEmpty(partDataMap) && partDataMap.containsKey(partNo)) {
priter = partDataMap.get(partNo).getProductPrinterCode();
}
return priter;
}
//保存零件数据信息

@ -698,4 +698,15 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
return filterList;
}
@Override
public List<MesWorkCellPartPrinterCfg> disPatchWorkCellPartPrinterCfg(StationRequestBean reqBean, Boolean pcNosortPrinterCfg) {
if (!pcNosortPrinterCfg) return null;
String context = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.CELL_PART_PRINTER_CONTEXT);
if (!StringUtils.isEmpty(context)) return context.equals(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr()) ? null : JSONObject.parseArray(context, MesWorkCellPartPrinterCfg.class);
List<MesWorkCellPartPrinterCfg> workCellPartPrinterCfgList = prodOrgExtService.getWorkCellPartPrinterCfgList(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode());
dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.CELL_PART_PRINTER_CONTEXT,
!CollectionUtils.isEmpty(workCellPartPrinterCfgList) ? JSONObject.toJSONString(workCellPartPrinterCfgList) : CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr());
return workCellPartPrinterCfgList;
}
}

@ -662,6 +662,8 @@ public class MesPcnExtConstWords {
public static final String QUEUE_PUSH_LOCK_CONTEXT = "QUEUE_PUSH_LOCK_CONTEXT";
// 推送队列上下文
public static final String QUEUE_PUSH_CONTEXT = "QUEUE_PUSH_CONTEXT";
// 工位零件打印机上下文
public static final String CELL_PART_PRINTER_CONTEXT = "CELL_PART_PRINTER_CONTEXT";
// 上下文: 展示组件数据
public static final String MODULE_CONTENT_CONTEXT = "MODULE_CONTENT_CONTEXT";

Loading…
Cancel
Save