Merge branch 'dev-wuhan' into dev-wuhan-temp

tags/yfai-pcn-ext-v2.3
yxw 8 months ago
commit ffbc8c888d

@ -27,5 +27,8 @@ public interface IMesWorkCenterService {
@ApiOperation(value = "查询工单")
public ListPager<MesWorkCenter> queryMesWorkCenterByPager(MesWorkCenter workCenter, Pager pager);
@ApiOperation(value = "根据产线代码代码集合查询产线信息集合")
List<MesWorkCenter> queryMesWorkCenterList(List<String> workCenterCodeList, String organizeCode);
}

@ -4,18 +4,22 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesInputDefectRecordService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionViewModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
@ -103,6 +107,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
@Autowired
private MesProduceSnLogRepository produceSnLogRepository;
@Autowired
private MesWorkOrderRepository workOrderRepository;
@Autowired
private IMesWorkOrderExtService workOrderExtService;
@Override
public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel inputModel, String org) {
@ -118,7 +126,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
MesProduceSn produceSn = checkProduceSn(inputModel.getSn(), org);
//获取NC-零件检测-单据
partInspection = getPartInspection(inputModel, org);
partInspection = getPartInspection(produceSn,inputModel, org);
//检查物料
part = checkPart(produceSn, org);
@ -214,6 +222,17 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
public void savePartInspection(MesPartInspectionInputModel model, String org) {
MesProduceSn produceSn = getProduceSn(model.getSn(), org);
//武汉 会输入客户条码
boolean isWorkOrderQcStatus=false;
if (!StringUtil.isEmpty(produceSn)){
model.setCustSn(produceSn.getCustSn());
model.setSn(produceSn.getProductSn());
//排序产线 更新工单的 qcStatus
MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(org, produceSn.getWorkCenterCode());
if (!StringUtil.isEmpty(centerDb)){
isWorkOrderQcStatus= centerDb.getCenterType() == MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue();
}
}
if(!StringUtils.isEmpty(model.getPartInspection())){
model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
@ -242,6 +261,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
}
@ -289,6 +317,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
}
//移库
String srcLocate;
@ -349,6 +386,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
//查询条码所在库位
srcLocateNo = getDestLocateNo(model, org);
}
@ -398,6 +444,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
}
partInspectionDetailRepository.saveAll(resultDetailList);
partInspectionDetailRepository.saveAll(model.getPartInspectionDetailList());
@ -411,7 +466,12 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
}
}
public MesWorkOrder getWorkOrder(String organizeCode, String workOrderNo) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo)) return null;
return workOrderRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo});
}
private String getDestLocateNo(MesPartInspectionInputModel model, String org) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean);
@ -434,11 +494,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
* @param org
* @return
*/
private MesPartInspection getPartInspection(MesPartInspectionInputModel inputModel, String org) {
private MesPartInspection getPartInspection(MesProduceSn produceSn,MesPartInspectionInputModel inputModel, String org) {
//根据条码找最近一条单据
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(inputModel.getSn(), "sn", packBean);
DdlPreparedPack.getStringEqualPack(produceSn.getProductSn(), "sn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
MesPartInspection partInspection = partInspectionRepository.getByProperty(packBean);
@ -563,7 +623,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
//若不存在则提示条码不存在
if (StringUtils.isEmpty(produceSn)) {
throw new ImppBusiException(String.format("【%s】此条码不存在请检查数据", serialNumber));
//再查一下排序查产线
produceSn = (MesProduceSn) workOrderExtService.getWorkOrderSort(org, serialNumber, false);
if (StringUtils.isEmpty(produceSn)) {
throw new ImppBusiException(String.format("【%s】此条码不存在请检查数据", serialNumber));
}
}
//根据条码状态判断 是不是已下线条码
@ -582,7 +646,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
return produceSnRepository.getByProperty(packBean);
MesProduceSn produceSn =produceSnRepository.getByProperty(packBean);
if (StringUtil.isEmpty(produceSn)){
produceSn = (MesProduceSn) workOrderExtService.getWorkOrderSort(org, serialNumber, false);
}
return produceSn;
}
private MesProduceSn checkProduceSn(MesProduceSn produceSn, String serialNumber) {
@ -619,6 +687,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspection.setInspectionStatus(inspectionStatus);
partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue());
partInspection.setSn(model.getSn());
partInspection.setCustSn(StringUtil.isEmpty(model.getCustSn())?"":model.getCustSn());
partInspection.setLotNo(model.getLotNo());
partInspection.setQty(model.getQty().intValue());
partInspection.setWorkCenterCode(model.getWorkCenterCode());

@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNcProcessingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesNcProcessingDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingInputModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingModel;
@ -105,6 +106,12 @@ public class MesNcProcessingService implements IMesNcProcessingService {
@Autowired
private IMesProduceSnExtService produceSnExtService;
@Autowired
private IMesWorkOrderExtService workOrderExtService;
@Autowired
private MesWorkOrderRepository workOrderRepository;
@Override
public ListPager<MesPartInspection> queryPartInspectionByPager(MesPartInspection partInspection, Pager pager) {
@ -327,6 +334,17 @@ public class MesNcProcessingService implements IMesNcProcessingService {
assert model.getPartInspection() != null;
model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
MesProduceSn sn = getProduceSn(model.getSn(), org);
//武汉 会输入客户条码 todo 更新工单对应qcStatus
boolean isWorkOrderQcStatus=false;
if (!StringUtil.isEmpty(sn)){
model.setCustSn(sn.getCustSn());
model.setSn(sn.getProductSn());
//排序产线 更新工单的 qcStatus
MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(org, sn.getWorkCenterCode());
if (!StringUtil.isEmpty(centerDb)){
isWorkOrderQcStatus= centerDb.getCenterType() == MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue();
}
}
String source = configService.getCfgValue(org, "LGORT");
if (!StringUtils.isEmpty(model.getProductVersion())) {
@ -350,6 +368,15 @@ public class MesNcProcessingService implements IMesNcProcessingService {
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
produceSnExtService.update(sn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,sn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
workOrderRepository.update(workOrder);
}
}
}
//更新检验单
@ -427,6 +454,15 @@ public class MesNcProcessingService implements IMesNcProcessingService {
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
produceSnExtService.update(sn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,sn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
workOrderRepository.update(workOrder);
}
}
}
//更新检验单
@ -459,6 +495,15 @@ public class MesNcProcessingService implements IMesNcProcessingService {
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
produceSnExtService.update(sn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,sn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
workOrderRepository.update(workOrder);
}
}
}
//更新检验单
@ -479,7 +524,12 @@ public class MesNcProcessingService implements IMesNcProcessingService {
}
}
public MesWorkOrder getWorkOrder(String organizeCode, String workOrderNo) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo)) return null;
return workOrderRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo});
}
private int disassembleType(MesNcProcessingInputModel model, String org, MesProduceSn sn) {
if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue() == model.getPartInspection().getSourceType()) {
if (Objects.isNull(sn)) {
@ -521,7 +571,11 @@ public class MesNcProcessingService implements IMesNcProcessingService {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
return produceSnRepository.getByProperty(packBean);
MesProduceSn produceSn =produceSnRepository.getByProperty(packBean);
if (StringUtil.isEmpty(produceSn)){
produceSn = (MesProduceSn) workOrderExtService.getWorkOrderSort(org, serialNumber, false);
}
return produceSn;
}
private MesProduceSn checkProduceSn(MesProduceSn produceSn, String serialNumber) {

@ -1,15 +1,18 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCenterService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -58,9 +61,21 @@ public class MesWorkCenterService implements IMesWorkCenterService {
return new ListPager<>(resultList, pager);
}
@Override
public List<MesWorkCenter> queryMesWorkCenterList(List<String> workCenterCodeList, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workCenterCodeList, MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
return workCenterRepository.findByHqlWhere(packBean);
}
private DdlPackBean getDdlPackBean(MesWorkCenter workCenter) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(workCenter.getOrganizeCode());
if (!StringUtil.isEmpty(workCenter.getCenterType()) && 0 != workCenter.getCenterType()) {
DdlPreparedPack.getNumEqualPack(workCenter.getCenterType(), "centerType", packBean);
}
DdlPreparedPack.getStringLikerPack(workCenter.getWorkCenterCode(), "workCenterCode", packBean);
return packBean;
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.printqueue.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCenterService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.printqueue.IPrintQueueStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
@ -53,6 +54,9 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
@Autowired
private MesWorkOrderAssemblyRepository workOrderAssemblyRepository;
@Autowired
private IMesWorkCenterService workCenterService;
@Override
public List<MesPrintQueue> execute(MesPrintQueue model) {
@ -65,6 +69,15 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
// 获取工单信息
List<MesWorkOrder> workOrderList = getMesWorkOrders(model, printQueueList);
// 产线代码集合
List<String> workCenterCodeList = workOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList());
// 根据产线代码节后获取产线信息集合
List<MesWorkCenter> mesWorkCenters = workCenterService.queryMesWorkCenterList(workCenterCodeList, model.getOrganizeCode());
// 产线名称集合
Map<String, String> workCenterNameMap = mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y));
// 根据工单号对工单分组
Map<String, MesWorkOrder> workOrderMapByWorkOrderNo = workOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y));
@ -89,6 +102,8 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
continue;
}
mesWorkOrder.setWorkCenterName(workCenterNameMap.get(printQueue.getWorkCenterCode()));
printQueue.setWorkOrderTypeName(MesExtEnumUtil.ORDER_TYPE.valueOfDescription(mesWorkOrder.getWorkOrderType()));
MesPartProdGroup mesPartProdGroup = partProdGroupMap.get(printQueue.getPartProdGroupCode());
@ -207,6 +222,7 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
DdlPreparedPack.getInPackList(Arrays.asList(model.getPartProdGroupCodeQuery().split(MesPcnExtConstWords.COMMA)), MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean);
DdlPreparedPack.getIsNull(MesPcnExtConstWords.REMARK, packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue(), MesPcnExtConstWords.PRINT_QUEUE_TYPE, packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue(), MesPcnExtConstWords.PRINT_STATUS, packBean);
return printQueueRepository.findByHqlWherePage(packBean, pager);
}

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
@ -13,6 +14,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description :
@ -50,11 +52,14 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null;
// 工单装配件信息
List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : null;
workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq));
// 返回的结果集合
List<Map<String, Object>> printDataMapList = new ArrayList<>();
// 单个标签参数值
Map<String, Object> resultMap = new HashMap<>();
// 产线名称
resultMap.put(MesPcnExtConstWords.WORK_CENTER_NAME, workOrder.getWorkCenterName());
// 车型名称
resultMap.put(MesPcnExtConstWords.CAR_MODEL_NAME, customerCarModel == null ? "" : customerCarModel.getCarModelName());
// vinCode
@ -77,6 +82,8 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
resultMap.put(MesPcnExtConstWords.REPRINT, "");
// EDI接口时间 取工单plan_start_time
resultMap.put(MesPcnExtConstWords.EDI_REC_TIME, workOrder.getPlanStartTime());
// 打印时间
resultMap.put(MesPcnExtConstWords.PRINT_TIME, TimeTool.getNowTime("yyyyMMdd HH:mm:ss"));
// 总个数
Integer totalCount = partProdGroup.getTotalCount();

@ -0,0 +1,46 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesProductionDataSaveNosortStepService")
public class MesProductionDataSaveNosortStepService extends BaseStepService {
@Override
public StepResult execute(StationRequestBean reqBean) {
//保存开模记录工步
((IStepService) SpringContextsUtil.getBean("mesMouldRecordGenerateStepService")).executeInState(reqBean);
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//加工异常处理工步
((IStepService) SpringContextsUtil.getBean("mesProductResultErrorHandleStepService")).executeInState(reqBean);
//生成加工记录工步
((IStepService) SpringContextsUtil.getBean("mesProductionRecordGenerateStepService")).executeInState(reqBean);
//保存装配记录工步
((IStepService) SpringContextsUtil.getBean("mesAssemblySaveStepService")).executeInState(reqBean);
//保存工单信息工步
((IStepService) SpringContextsUtil.getBean("mesWorkOrderSaveStepService")).executeInState(reqBean);
return stepSuccessCompleteAndSendMsgReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "保存加工结果成功!");
}
}

@ -0,0 +1,46 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesProductionDataSaveSortStepService")
public class MesProductionDataSaveSortStepService extends BaseStepService {
@Override
public StepResult execute(StationRequestBean reqBean) {
//保存开模记录工步
((IStepService) SpringContextsUtil.getBean("mesMouldRecordGenerateStepService")).executeInState(reqBean);
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//加工异常处理工步
((IStepService) SpringContextsUtil.getBean("mesProductResultErrorHandleStepService")).executeInState(reqBean);
//生成加工记录工步
((IStepService) SpringContextsUtil.getBean("mesProductionRecordGenerateStepService")).executeInState(reqBean);
//保存装配记录工步
((IStepService) SpringContextsUtil.getBean("mesAssemblySaveStepService")).executeInState(reqBean);
//保存工单信息工步
((IStepService) SpringContextsUtil.getBean("mesWorkOrderSaveStepService")).executeInState(reqBean);
return stepSuccessCompleteAndSendMsgReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "保存加工结果成功!");
}
}

@ -1,13 +1,14 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -18,28 +19,17 @@ import org.springframework.stereotype.Service;
@Service("mesProductionDataSaveStepService")
public class MesProductionDataSaveStepService extends BaseStepService {
@Autowired
public IMesProductionProcessContextStepService productionProcessContextStepService;
@Override
public StepResult execute(StationRequestBean reqBean) {
//保存开模记录工步
((IStepService) SpringContextsUtil.getBean("mesMouldRecordGenerateStepService")).executeInState(reqBean);
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//加工异常处理工步
((IStepService) SpringContextsUtil.getBean("mesProductResultErrorHandleStepService")).executeInState(reqBean);
//生成加工记录工步
((IStepService) SpringContextsUtil.getBean("mesProductionRecordGenerateStepService")).executeInState(reqBean);
//保存装配记录工步
((IStepService) SpringContextsUtil.getBean("mesAssemblySaveStepService")).executeInState(reqBean);
//保存工单信息工步
((IStepService) SpringContextsUtil.getBean("mesWorkOrderSaveStepService")).executeInState(reqBean);
//排序线 保存加工结果工步
if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == productionProcessContextStepService.getCenterType(reqBean)) return ((IStepService) SpringContextsUtil.getBean("mesProductionDataSaveSortStepService")).executeInState(reqBean);
return stepSuccessCompleteAndSendMsgReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "保存加工结果成功!");
//非排序线 保存加工结果工步
return ((IStepService) SpringContextsUtil.getBean("mesProductionDataSaveNosortStepService")).executeInState(reqBean);
}

@ -26,6 +26,9 @@ public class MesNcProcessingInputModel {
@ApiParam("条码")
private String sn;
@ApiParam("客户条码")
private String custSn;
@ApiParam("责任人")
private String onlyPerson;

@ -42,6 +42,9 @@ public class MesPartInspectionInputModel {
@ApiParam("条码")
private String sn;
@ApiParam("客户条码")
private String custSn;
@ApiParam("正反面")
private Integer frontBack;

@ -570,4 +570,7 @@ public class MesPcnExtConstWords {
// 装配件参数
public static final String ASSEMBLY_PARAM = "assemblyParam";
// 产线名称
public static final String WORK_CENTER_NAME = "workCenterName";
}

Loading…
Cancel
Save