42602 发运后,客退品返工,生成并打印新条码

42582 线边库存报表
tags/yfai-pcn-ext-v1.7
jun 11 months ago
parent 879b6d2f93
commit 3f4af68ed3

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.api.base; package cn.estsh.i3plus.ext.mes.pcn.api.base;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
@ -39,4 +40,6 @@ public interface IMesReworkTaskService {
void reworkSuccess(MesReworkTaskRequestModel requestModel); void reworkSuccess(MesReworkTaskRequestModel requestModel);
MesProduceSnPrintModel doPrint(MesReworkTaskRequestModel requestModel);
} }

@ -131,4 +131,20 @@ public class MesReworkTaskController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
@GetMapping("/doPrint")
@ApiOperation(value = "打印")
public ResultBean doPrint(MesReworkTaskRequestModel requestModel) {
// 数据校验
ValidatorBean.checkNotNull(requestModel.getSn(), "条码不能为空");
ValidatorBean.checkNotNull(requestModel.getOrganizeCode(), "工厂代码不能为空");
ValidatorBean.checkNotNull(requestModel.getUserName(), "操作人不能为空");
try {
return ResultBean.success("打印成功").setResultObject(mesReworkTaskService.doPrint(requestModel));
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
} }

@ -1,28 +1,33 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesReworkTaskService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesReworkTaskService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
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.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;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.bean.MesPartTypePicture;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection; import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail; import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask; import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTaskDetail; import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTaskDetail;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap; import org.apache.commons.collections.map.HashedMap;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -34,7 +39,6 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -76,6 +80,21 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
@Autowired @Autowired
private MesProduceSnRepository mesProduceSnRepository; private MesProduceSnRepository mesProduceSnRepository;
@Autowired
private IMesTemplateService mesTemplateService;
@Autowired
private ISyncFuncService syncFuncService;
@Autowired
private IMesPartService mesPartService;
@Autowired
private MesMoveRepository moveRepository;
@Autowired
private MesProductionRecordRepository mesProductionRecordRepository;
@Override @Override
public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) { public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) {
String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode(); String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode();
@ -206,6 +225,69 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
} }
@Override @Override
public MesProduceSnPrintModel doPrint(MesReworkTaskRequestModel requestModel) {
String organizeCode = requestModel.getOrganizeCode();
String userName = requestModel.getUserName();
MesReworkTask mesReworkTask = getMesReworkTask(requestModel);
List<MesReworkTaskDetail> reworkTaskDetails = getMesReworkTaskDetail(mesReworkTask);
if (!CollectionUtils.isEmpty(reworkTaskDetails)) {
MesPcnException.throwFlowException("还有位置未返工完成,请检查");
}
MesProduceSn sn = checkProduceSn(requestModel.getSn(), organizeCode);
//查询物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(sn.getPartNo(), organizeCode);
String prodLabelTemplate = sn.getProdLabelTemplate();
if (prodLabelTemplate == null) {
MesPcnException.throwMesBusiException("零件号[%s]的模板代码[%s]的模板信息丢失,请配置!", sn.getPartNo(), prodLabelTemplate);
}
MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel();
// 查模板代码
MesLabelTemplate labelTemplate = mesTemplateService.getMesLabelTemplate(prodLabelTemplate,organizeCode);
//根据反射获取策略类--封装打印数据
String methodCode = labelTemplate.getMethodCode();
//模板信息丢失抛出异常
if (methodCode == null) {
MesPcnException.throwMesBusiException("零件号[%s]的模板代码[%s]的反射类丢失,请配置!", sn.getPartNo(), prodLabelTemplate);
}
mesProduceSnPrintModel.setMesLabelTemplate(labelTemplate);
mesProduceSnPrintModel.setProductSn(sn.getProductSn());
mesProduceSnPrintModel.setPartNo(sn.getPartNo());
mesProduceSnPrintModel.setOrganizeCode(organizeCode);
List<MesProduceSn> snList = new ArrayList<>();
sn.setDescription(String.format("源条码:%s",sn.getProductSn()));
sn.setProductSn(doGererateSerialNo(mesPart, organizeCode, requestModel.getUserName()));
snList.add(sn);
mesProduceSnPrintModel.getMesProduceSnList().addAll(snList);
//发送新老条码关系给WMS
createMove(requestModel.getSn(),sn.getProductSn(),organizeCode,requestModel.getUserName());
//更新条码
ConvertBean.serviceModelUpdate(sn,requestModel.getUserName());
mesProduceSnRepository.update(sn);
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(requestModel.getSn(),"productSn",packBean);
DdlPreparedPack.getStringEqualPack(sn.getPartNo(),"partNo",packBean);
//更新加工记录
mesProductionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","productSn","description"},
new Object[]{userName, TimeTool.getNowTime(true),sn.getProductSn(),sn.getDescription()},packBean);
//更新装配记录
mesProductionAssemblyRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","productSn","description"},
new Object[]{userName, TimeTool.getNowTime(true),sn.getProductSn(),sn.getDescription()},packBean);
//更新返工记录
mesReworkTaskRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","sn","description"},
new Object[]{userName, TimeTool.getNowTime(true),sn.getProductSn(),sn.getDescription()},packBean);
IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode);
return strategyService.execute(null, mesProduceSnPrintModel, null, null, null, true);
}
private String doGererateSerialNo(MesPart part,String organizeCode,String userName) {
if(StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("请检查零件信息,零件[%s]信息未维护零件条码编码规则!", part.getPartNo());
return syncFuncService.syncSerialNo(
new GenSerialNoModel(part.getProductMatchRule()).partNo(part.getPartNo()).putDataMap(MesPart.class.getSimpleName(), part).organizeCode(organizeCode),
userName, organizeCode, 1).getResultList().get(0).toString();
}
@Override
public boolean validateSn(MesReworkTaskRequestModel requestModel) { public boolean validateSn(MesReworkTaskRequestModel requestModel) {
// //
List<String> snList = Arrays.asList(requestModel.getSn().split(",")); List<String> snList = Arrays.asList(requestModel.getSn().split(","));
@ -448,4 +530,17 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
return produceSn; return produceSn;
} }
private MesMove createMove(String sn, String oldSn, String organizeCode, String userName) {
MesMove move = new MesMove();
move.setOrganizeCode(organizeCode);
move.setFactoryCode(organizeCode);
move.setPostDate(TimeTool.getToday());
move.setPostTime(TimeTool.getTimeShortWithColon());
move.setMoveType(MesExtEnumUtil.MOVE_TYPE.REWORK_REPLACE.getValue());
move.setProductSn(sn);
move.setProductSnOld(oldSn);
ConvertBean.serviceModelInitialize(move, userName);
return moveRepository.insert(move);
}
} }

@ -132,8 +132,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//updateLoadingListClose(statusForCheckList,orderManagement,shippingOrderManagement.getModifyUser()); //updateLoadingListClose(statusForCheckList,orderManagement,shippingOrderManagement.getModifyUser());
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "id",packBean); DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "id",packBean);
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","remark"}, shippingOrderManagementRepository.updateByProperties(new String[]{"forceFlag","modifyUser", "modifyDatetime","remark"},
new Object[]{shippingOrderManagement.getModifyUser(), TimeTool.getNowTime(true),MesPcnExtConstWords.STRONGER_PASS}, packBean); new Object[]{MesPcnExtConstWords.STRONGER_PASS,shippingOrderManagement.getModifyUser(), TimeTool.getNowTime(true),MesPcnExtConstWords.STRONGER_PASS}, packBean);
}else{ }else{
throw new ImppBusiException(String.format("【%s】发运单对应排序【%s】前存在未扫描发运的发运单请检查数据", throw new ImppBusiException(String.format("【%s】发运单对应排序【%s】前存在未扫描发运的发运单请检查数据",
orderManagement.getShippingCode(), orderManagement.getSeq())); orderManagement.getShippingCode(), orderManagement.getSeq()));

@ -7,7 +7,6 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; 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.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -154,8 +153,10 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringLikerPack(workOrder.getWorkCellCode(), "workCellCode", packBean); DdlPreparedPack.getStringLikerPack(workOrder.getWorkCellCode(), "workCellCode", packBean);
DdlPreparedPack.getStringLikerPack(workOrder.getWorkOrderNo(), "workOrderNo", packBean); DdlPreparedPack.getStringLikerPack(workOrder.getWorkOrderNo(), "workOrderNo", packBean);
if (!StringUtils.isEmpty(workOrder.getWorkOrderStatus())) DdlPreparedPack.getNumEqualPack(workOrder.getWorkOrderStatus(), "workOrderStatus", packBean); if (!StringUtils.isEmpty(workOrder.getWorkOrderStatus()))
else DdlPreparedPack.getInPackList(Stream.of(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(), MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()).collect(Collectors.toList()), "workOrderStatus", packBean); DdlPreparedPack.getNumEqualPack(workOrder.getWorkOrderStatus(), "workOrderStatus", packBean);
else
DdlPreparedPack.getInPackList(Stream.of(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(), MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()).collect(Collectors.toList()), "workOrderStatus", packBean);
DdlPreparedPack.getStringBiggerPack(workOrder.getStartTimeStart(), "planStartTime", packBean); DdlPreparedPack.getStringBiggerPack(workOrder.getStartTimeStart(), "planStartTime", packBean);
DdlPreparedPack.getStringSmallerPack(workOrder.getStartTimeEnd(), "planStartTime", packBean); DdlPreparedPack.getStringSmallerPack(workOrder.getStartTimeEnd(), "planStartTime", packBean);
@ -245,6 +246,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>(); List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
MesProductOffLine newMesProductOffLine; MesProductOffLine newMesProductOffLine;
for (MesProduceSn produceSn : mesWorkOrderList) { for (MesProduceSn produceSn : mesWorkOrderList) {
String nowTime = TimeTool.getNowTime(true);
for (MesBom mesBom : mesBoms) { for (MesBom mesBom : mesBoms) {
newMesProductOffLine = new MesProductOffLine(); newMesProductOffLine = new MesProductOffLine();
newMesProductOffLine.setReportPartNo(oldMesWorkOrder.getPartNo()); newMesProductOffLine.setReportPartNo(oldMesWorkOrder.getPartNo());
@ -266,7 +268,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType()); newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType());
newMesProductOffLine.setSapWorkCenter(oldMesWorkOrder.getErpWorkCenter()); newMesProductOffLine.setSapWorkCenter(oldMesWorkOrder.getErpWorkCenter());
newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode()); newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode());
newMesProductOffLine.setDescription(nowTime);
ConvertBean.serviceModelInitialize(newMesProductOffLine, userName); ConvertBean.serviceModelInitialize(newMesProductOffLine, userName);
mesProductOffLineList.add(newMesProductOffLine); mesProductOffLineList.add(newMesProductOffLine);
} }
@ -274,6 +276,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
mesProductOffLineRDao.saveAll(mesProductOffLineList); mesProductOffLineRDao.saveAll(mesProductOffLineList);
} }
} }
public void doPcnJobProductReport(List<MesProductionRecord> mesProductionRecordList, List<MesShift> mesShiftList, String organizeCode, String userName, MesWorkOrder mesWorkOrderDb) { public void doPcnJobProductReport(List<MesProductionRecord> mesProductionRecordList, List<MesShift> mesShiftList, String organizeCode, String userName, MesWorkOrder mesWorkOrderDb) {
//查询物料信息 //查询物料信息
@ -340,6 +343,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
mesProductOffLineRDao.saveAll(mesProductOffLineList); mesProductOffLineRDao.saveAll(mesProductOffLineList);
} }
private void updateMesWorkOrder(MesWorkOrder mesWorkOrder, String userName) { private void updateMesWorkOrder(MesWorkOrder mesWorkOrder, String userName) {
//修改工单,需要重新同步 //修改工单,需要重新同步
mesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); mesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
@ -349,11 +353,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
//保存记录 //保存记录
saveMesWorkOrderLog(mesWorkOrder); saveMesWorkOrderLog(mesWorkOrder);
} }
public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) { public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) {
MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
BeanUtils.copyProperties(mesWorkOrder, workOrderLog, "id"); BeanUtils.copyProperties(mesWorkOrder, workOrderLog, "id");
mesWorkOrderLogRepository.insert(workOrderLog); mesWorkOrderLogRepository.insert(workOrderLog);
} }
public List<MesBom> findBomList(String organizeCode, MesPart mesPart, String bomVersion) { public List<MesBom> findBomList(String organizeCode, MesPart mesPart, String bomVersion) {
List<MesBom> bomData = new ArrayList<>(); List<MesBom> bomData = new ArrayList<>();
// 递归展开 BOM // 递归展开 BOM
@ -391,6 +397,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
// 返回汇总数据 // 返回汇总数据
return new ArrayList<>(summaryBomMap.values()); return new ArrayList<>(summaryBomMap.values());
} }
/** /**
* BOM * BOM
* *
@ -418,6 +425,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
} }
} }
public List<MesBom> findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) { public List<MesBom> findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
@ -432,6 +440,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
//如果存在多个bomCode取最新的一个 //如果存在多个bomCode取最新的一个
return mesBoms.stream().collect(Collectors.groupingBy(MesBom::getBomCode)).get(next.getBomCode()); return mesBoms.stream().collect(Collectors.groupingBy(MesBom::getBomCode)).get(next.getBomCode());
} }
private MesProductVersion getMesProductVersion(MesWorkOrder mesWorkOrder) { private MesProductVersion getMesProductVersion(MesWorkOrder mesWorkOrder) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
@ -476,8 +485,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
report(productionRecord, organizeCode, userName, oldMesWorkOrderList); report(productionRecord, organizeCode, userName, oldMesWorkOrderList);
} } catch (Exception e) {
catch (Exception e) {
String msg = e.getMessage(); String msg = e.getMessage();
if (e instanceof ImppBusiException) { if (e instanceof ImppBusiException) {
msg = ((ImppBusiException) e).getErrorMsg(); msg = ((ImppBusiException) e).getErrorMsg();
@ -487,6 +495,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg); productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg);
} }
} }
@Override @Override
@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED, readOnly = false, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED, readOnly = false, rollbackFor = Exception.class)
public void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) { public void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
@ -515,6 +524,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
/** /**
* *
*
* @param oldMesWorkOrderList * @param oldMesWorkOrderList
* @param mesWorkCenter * @param mesWorkCenter
* @return * @return
@ -671,6 +681,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
/** /**
* *
*
* @param productionRecord * @param productionRecord
* @param organizeCode * @param organizeCode
* @return * @return
@ -799,6 +810,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
/** /**
* flag = 1 1 = 2 * flag = 1 1 = 2
*
* @param lotNo * @param lotNo
* @param flag * @param flag
* @return * @return
@ -834,6 +846,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
return mesProductVersion; return mesProductVersion;
} }
@Override @Override
public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode) { public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode) {
@ -935,6 +948,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
return productionRecordRao.findByHqlWhere(ddlPackBean); return productionRecordRao.findByHqlWhere(ddlPackBean);
} }
@Override @Override
public List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode, List<MesProductionRecord> mesProductionRecordList) { public List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode, List<MesProductionRecord> mesProductionRecordList) {
DdlPackBean snPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean snPackBean = DdlPackBean.getDdlPackBean(organizeCode);
@ -1000,8 +1014,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
if (Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())) { if (Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())) {
//保存数据 //保存数据
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>(); List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
String nowTime = TimeTool.getNowTime(true);
for (MesBom mesBom : mesBoms) { for (MesBom mesBom : mesBoms) {
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom)); mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, nowTime));
} }
mesProductOffLineRDao.saveAll(mesProductOffLineList); mesProductOffLineRDao.saveAll(mesProductOffLineList);
} }
@ -1171,6 +1186,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
workOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus"}, workOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus"},
new Object[]{"CLOSE_JOB", TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()}, ddlPackBean); new Object[]{"CLOSE_JOB", TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()}, ddlPackBean);
} }
public List<MesWorkOrderToWms> saveMesWorkOrderToWms(MesWorkOrder mesWorkOrder, List<MesBom> mesBomList) { public List<MesWorkOrderToWms> saveMesWorkOrderToWms(MesWorkOrder mesWorkOrder, List<MesBom> mesBomList) {
List<MesWorkOrderToWms> mesWorkOrderToWmsList = new ArrayList<>(); List<MesWorkOrderToWms> mesWorkOrderToWmsList = new ArrayList<>();
MesWorkOrderToWms mesWorkOrderToWms = null; MesWorkOrderToWms mesWorkOrderToWms = null;
@ -1187,6 +1203,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
return mesWorkOrderToWmsList; return mesWorkOrderToWmsList;
} }
private MesProductVersion checkMesProductVersion(MesWorkOrder item) { private MesProductVersion checkMesProductVersion(MesWorkOrder item) {
DdlPackBean ddlPackBean; DdlPackBean ddlPackBean;
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
@ -1204,12 +1221,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
private String getOrderNo(MesWorkOrder mesWorkOrder, MesPart mesPart, String userName) { private String getOrderNo(MesWorkOrder mesWorkOrder, MesPart mesPart, String userName) {
if (StringUtils.isEmpty(mesPart.getProductMatchRule())) MesPcnException.throwMesBusiException("请检查零件信息,零件[%s]信息未维护零件条码编码规则!", mesPart.getPartNo()); if (StringUtils.isEmpty(mesPart.getProductMatchRule()))
MesPcnException.throwMesBusiException("请检查零件信息,零件[%s]信息未维护零件条码编码规则!", mesPart.getPartNo());
return syncFuncService.syncSerialNo(new GenSerialNoModel(mesPart.getProductMatchRule()).prodLocation(mesWorkOrder.getWorkCenterCode()).partNo(mesPart.getPartNo()).putDataMap(MesPart.class.getSimpleName(), mesPart).organizeCode(mesPart.getOrganizeCode()), userName, mesWorkOrder.getOrganizeCode(), 1).getResultList().get(0).toString(); return syncFuncService.syncSerialNo(new GenSerialNoModel(mesPart.getProductMatchRule()).prodLocation(mesWorkOrder.getWorkCenterCode()).partNo(mesPart.getPartNo()).putDataMap(MesPart.class.getSimpleName(), mesPart).organizeCode(mesPart.getOrganizeCode()), userName, mesWorkOrder.getOrganizeCode(), 1).getResultList().get(0).toString();
} }
private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion,
String sn, MesBom mesBom) { String sn, MesBom mesBom, String nowTime) {
MesProductOffLine newMesProductOffLine; MesProductOffLine newMesProductOffLine;
newMesProductOffLine = new MesProductOffLine(); newMesProductOffLine = new MesProductOffLine();
newMesProductOffLine.setReportPartNo(mesWorkOrder.getPartNo()); newMesProductOffLine.setReportPartNo(mesWorkOrder.getPartNo());
@ -1231,7 +1249,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
newMesProductOffLine.setReportType(mesWorkOrder.getReportType()); newMesProductOffLine.setReportType(mesWorkOrder.getReportType());
newMesProductOffLine.setSapWorkCenter(mesWorkOrder.getErpWorkCenter()); newMesProductOffLine.setSapWorkCenter(mesWorkOrder.getErpWorkCenter());
newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode()); newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode());
newMesProductOffLine.setDescription(nowTime);
ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getCreateUser()); ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getCreateUser());
return newMesProductOffLine; return newMesProductOffLine;
} }

@ -52,4 +52,7 @@ public class MesReworkTaskRequestModel {
@ApiModelProperty("类型") @ApiModelProperty("类型")
private Integer type; private Integer type;
@ApiModelProperty("操作人")
private String userName;
} }

Loading…
Cancel
Save