|
|
|
@ -5,6 +5,7 @@ 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.utils.MesException;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pojo.model.WorkOrderMaterialCutModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
|
|
|
|
|
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
@ -20,11 +21,14 @@ import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
|
|
|
|
|
import cn.hutool.core.stream.CollectorUtil;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
@ -80,7 +84,7 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doGenerateCutWorkOrder(List<Long> workOrderIds, String cutCode, String remark, String organizeCode,
|
|
|
|
|
String userName, Integer editionNumber) {
|
|
|
|
|
String userName, Integer editionNumber, boolean isFree, List<MesCutSchemeFg> mesCutSchemeFgs) {
|
|
|
|
|
|
|
|
|
|
List<MesWorkOrder> workOrderList = getMesWorkOrders(workOrderIds, organizeCode);
|
|
|
|
|
|
|
|
|
@ -88,9 +92,16 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
|
|
|
|
|
|
|
|
|
|
MesCutScheme cutScheme = getMesCutScheme(cutCode, organizeCode);
|
|
|
|
|
|
|
|
|
|
List<MesCutSchemeMaterial> cutSchemeMaterialList = getMesCutSchemeMaterials(cutCode, organizeCode);
|
|
|
|
|
|
|
|
|
|
List<MesCutSchemeFg> cutSchemeFgList = getMesCutSchemeFgs(cutCode, organizeCode);
|
|
|
|
|
log.info("isFree={}", isFree);
|
|
|
|
|
List<MesCutSchemeFg> cutSchemeFgList = new ArrayList<>();
|
|
|
|
|
if (!isFree) {
|
|
|
|
|
cutSchemeFgList = getMesCutSchemeFgs(cutCode, organizeCode);
|
|
|
|
|
} else {
|
|
|
|
|
if (CollectionUtils.isEmpty(mesCutSchemeFgs)) {
|
|
|
|
|
MesException.throwMesBusiException("未选择裁片成品");
|
|
|
|
|
}
|
|
|
|
|
cutSchemeFgList.addAll(mesCutSchemeFgs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 校验工单物料是否已在成品配置中进行维护
|
|
|
|
|
checkWorkOrderPartValid(workOrderList, cutSchemeFgList);
|
|
|
|
@ -125,19 +136,27 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
|
|
|
|
|
|
|
|
|
|
workOrderCut.setCutWorkOrderNo(cutWorkOrderNo);
|
|
|
|
|
workOrderCut.setOrganizeCode(organizeCode);
|
|
|
|
|
workOrderCut.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue());
|
|
|
|
|
workOrderCuttList.add(workOrderCut);
|
|
|
|
|
|
|
|
|
|
for (MesCutSchemeMaterial cutSchemeMaterial : cutSchemeMaterialList) {
|
|
|
|
|
MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial();
|
|
|
|
|
BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID);
|
|
|
|
|
ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName);
|
|
|
|
|
workOrderCutMaterial.setOrganizeCode(organizeCode);
|
|
|
|
|
workOrderCutMaterial.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo());
|
|
|
|
|
workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE);
|
|
|
|
|
workOrderCutMaterialList.add(workOrderCutMaterial);
|
|
|
|
|
// 44838 如果isFree 是 默认已打印
|
|
|
|
|
Integer printStatus = MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue();
|
|
|
|
|
if (isFree) {
|
|
|
|
|
printStatus = MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue();
|
|
|
|
|
}
|
|
|
|
|
workOrderCut.setPrintStatus(printStatus);
|
|
|
|
|
workOrderCuttList.add(workOrderCut);
|
|
|
|
|
|
|
|
|
|
if (!isFree) {
|
|
|
|
|
List<MesCutSchemeMaterial> cutSchemeMaterialList = getMesCutSchemeMaterials(cutCode, organizeCode);
|
|
|
|
|
|
|
|
|
|
for (MesCutSchemeMaterial cutSchemeMaterial : cutSchemeMaterialList) {
|
|
|
|
|
MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial();
|
|
|
|
|
BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID);
|
|
|
|
|
ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName);
|
|
|
|
|
workOrderCutMaterial.setOrganizeCode(organizeCode);
|
|
|
|
|
workOrderCutMaterial.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo());
|
|
|
|
|
workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE);
|
|
|
|
|
workOrderCutMaterialList.add(workOrderCutMaterial);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (MesCutSchemeFg cutSchemeFg : cutSchemeFgList) {
|
|
|
|
|
List<MesWorkOrder> workOrders = workOrderListMapByPartNo.get(cutSchemeFg.getPartNo());
|
|
|
|
|
for (MesWorkOrder workOrder : workOrders) {
|
|
|
|
@ -154,8 +173,9 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList);
|
|
|
|
|
if (!isFree) {
|
|
|
|
|
workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList);
|
|
|
|
|
}
|
|
|
|
|
workOrderCutDetailRepository.saveAll(workOrderCutDetailtList);
|
|
|
|
|
workOrderCutRepository.saveAll(workOrderCuttList);
|
|
|
|
|
|
|
|
|
@ -172,6 +192,34 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public void generateCutWorkOrderMaterial(WorkOrderMaterialCutModel workOrderMaterialCutModel) {
|
|
|
|
|
String organizeCode = AuthUtil.getOrganizeCode();
|
|
|
|
|
String userName = AuthUtil.getSessionUser().getUserName();
|
|
|
|
|
|
|
|
|
|
List<MesWorkOrderCutMaterial> workOrderCutMaterialList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
for (MesCutSchemeMaterial cutSchemeMaterial : workOrderMaterialCutModel.getMesCutSchemeMaterialList()) {
|
|
|
|
|
MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial();
|
|
|
|
|
BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID);
|
|
|
|
|
ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName);
|
|
|
|
|
workOrderCutMaterial.setOrganizeCode(organizeCode);
|
|
|
|
|
workOrderCutMaterial.setCutWorkOrderNo(workOrderMaterialCutModel.getCutWorkOrderNo());
|
|
|
|
|
workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE);
|
|
|
|
|
workOrderCutMaterialList.add(workOrderCutMaterial);
|
|
|
|
|
}
|
|
|
|
|
workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(workOrderMaterialCutModel.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean);
|
|
|
|
|
|
|
|
|
|
workOrderCutRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "isDeleted", "printStatus"},
|
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue() }, packBean);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ListPager<MesWorkOrderCutDetail> queryWorkOrderCutDetailByPager(MesWorkOrderCutDetail workOrderCutDetail, Pager pager) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderCutDetail.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(workOrderCutDetail.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean);
|
|
|
|
|