合并dev

tags/yfai-pcn-ext-v2.3
王杰 8 months ago
commit 89c1240140

@ -39,7 +39,7 @@ public interface IMesReworkTaskService {
void doAssemblySnRepeat(MesReworkTaskRequestModel requestModel);
void reworkSuccess(MesReworkTaskRequestModel requestModel);
void doReworkSuccess(MesReworkTaskRequestModel requestModel);
MesProduceSnPrintModel doPrint(MesReworkTaskRequestModel requestModel);

@ -17,5 +17,5 @@ import java.util.List;
public interface IMesJisShippingService {
@ApiOperation(value = "构筑发运报工数据")
List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList, String org);
List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList,String userName);
}

@ -2,8 +2,11 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
import io.swagger.annotations.ApiOperation;
import java.util.List;
public interface IMesProduceSnPrintService {
@ApiOperation(value = "查询包装信息")
@ -14,4 +17,7 @@ public interface IMesProduceSnPrintService {
@ApiOperation(value = "打印")
MesProduceSnPrintModel doPrint(MesProduceSnPrintModel mesProduceSnPrintModel);
@ApiOperation(value = "装配件查询")
List<MesProductionAssembly> findMesProductionAssembly(MesProductionAssembly mesProductionAssembly);
}

@ -1,11 +1,14 @@
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel;
import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description :
* @Reference :
@ -27,6 +30,9 @@ public interface IMesSortShippingCheckService {
@ApiOperation(value = "查询发运单-自动推单")
MesShippingOrderManagement queryShippingOrderNoByAutoPushOrder(String shippingGroupNo, String org);
@ApiOperation("保存发运数据")
List<MesJisShipping> getMesJisShippings(MesShippingOrderManagement mesShippingOrderManagement,String userName);
void update(MesShippingOrderManagement item);
void updateDetail(MesShippingOrderManagementDetail item);

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnPrintService;
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.MesProduceSnPrintModel;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -97,4 +98,20 @@ public class MesProduceSnPrintController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping("/mes-production-assembly/find")
@ApiOperation(value = "装配件查询")
public ResultBean findMesProductionAssembly(MesProductionAssembly mesProductionAssembly) {
try {
ValidatorBean.checkNotNull(mesProductionAssembly.getAssemblySn(), "装配件条码条码不能为空");
ValidatorBean.checkNotNull(mesProductionAssembly.getOrganizeCode(), "工厂代码不能为空");
return ResultBean.success("查询成功")
.setMsg(String.format("装配件【%s】条码查询成功!!!", mesProductionAssembly.getAssemblySn()))
.setResultList(mesProduceSnPrintService.findMesProductionAssembly(mesProductionAssembly));
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -148,11 +148,11 @@ public class MesReworkTaskController {
@PostMapping("/reworkSuccess")
@ApiOperation(value = "返工成功")
public ResultBean reworkSuccess(@RequestBody MesReworkTaskRequestModel requestModel) {
public ResultBean doReworkSuccess(@RequestBody MesReworkTaskRequestModel requestModel) {
// 数据校验
//ValidatorBean.checkNotNull(requestModel.getSn(), "条码不能为空");
try {
mesReworkTaskService.reworkSuccess(requestModel);
mesReworkTaskService.doReworkSuccess(requestModel);
return ResultBean.success("返工成功");
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);

@ -62,7 +62,7 @@ public class MesSortShippingCheckController {
// 数据校验
ValidatorBean.checkNotNull(shippingOrderManagement.getShippingCode(), "发运单不能为空");
shippingOrderManagement.setOrganizeCode(organizeCode);
ConvertBean.serviceModelUpdate(shippingOrderManagement,!StringUtils.isEmpty(shippingOrderManagement.getModifyUser()) ? shippingOrderManagement.getModifyUser() : AuthUtil.getSessionUser().getUserName());
ConvertBean.serviceModelUpdate(shippingOrderManagement, userInfo);
MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement);
return ResultBean.success("查询成功").setResultObject(model);
} catch (ImppBusiException imppException) {

@ -130,6 +130,9 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
@Autowired
private IMesProductVersionService mesProductVersionService;
@Autowired
private MesQmsScrapRepository mesQmsScrapRepository;
@Override
public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) {
String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode();
@ -252,7 +255,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
}
@Override
public void reworkSuccess(MesReworkTaskRequestModel requestModel) {
public void doReworkSuccess(MesReworkTaskRequestModel requestModel) {
MesReworkTask mesReworkTask = getMesReworkTask(requestModel);
/**
@ -262,13 +265,27 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
if (!CollectionUtils.isEmpty(reworkTaskDetails)) {
MesPcnException.throwFlowException("还有位置未返工完成,请检查");
}
MesPartInspection mesPartInspection = null;
if (!StringUtils.isEmpty(mesReworkTask.getId())){
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean);
mesPartInspection = mesPartInspectionRepository.getByProperty(packBean);
if (!StringUtils.isEmpty(mesReworkTask.getId())){
if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){
mesPartInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.DISASSEMBLY.getValue());
}
mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName());
mesPartInspectionRepository.update(mesPartInspection);
}
}
if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue() == mesReworkTask.getType()) {
mesReworkTask.setReworkedQty(requestModel.getReworkedQty());
mesReworkTask.setScrapQty(requestModel.getScrapQty());
} else {
//拆解
if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){
doAssemblyDisassembly(requestModel, mesReworkTask.getSn());
doAssemblyDisassembly(requestModel, mesReworkTask.getSn(),Objects.isNull(mesPartInspection)?"":mesPartInspection.getResponsibleParty());
}
if (MesExtEnumUtil.NC_TYPE.REWORK.getValue() == requestModel.getType()) {
@ -284,16 +301,6 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
mesReworkTask.setStatus(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue());
ConvertBean.serviceModelUpdate(mesReworkTask,requestModel.getUserName());
mesReworkTaskRepository.save(mesReworkTask);
if (!StringUtils.isEmpty(mesReworkTask.getId())){
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean);
MesPartInspection mesPartInspection = mesPartInspectionRepository.getByProperty(packBean);
if (!StringUtils.isEmpty(mesReworkTask.getId())){
mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName());
mesPartInspectionRepository.update(mesPartInspection);
}
}
}
@Override
@ -333,7 +340,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
snList.add(sn);
mesProduceSnPrintModel.getMesProduceSnList().addAll(snList);
//发送新老条码关系给WMS
createMove(requestModel.getSn(),sn.getProductSn(),organizeCode,requestModel.getUserName());
doCreateMove(requestModel.getSn(),sn.getProductSn(),organizeCode,requestModel.getUserName());
//更新条码
ConvertBean.serviceModelUpdate(sn,requestModel.getUserName());
mesProduceSnRepository.update(sn);
@ -556,15 +563,17 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
public void recursionAssemblySnTree(List<MesProductionAssemblyModel> assemblyTree, MesReworkTaskRequestModel requestModel,long pid) {
for (MesProductionAssemblyModel assembly : assemblyTree) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(assembly.getAssemblySn(), "productSn", packBean);
DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(), "assemblyStatus", packBean);
List<MesProductionAssembly> mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean);
assembly.setPid(pid);
if (!CollectionUtils.isEmpty(mesProductionAssemblies)) {
assembly.setChildren(parseArray(mesProductionAssemblies));
recursionAssemblySnTree(assembly.getChildren(), requestModel, assembly.getId());
if(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_10.getValue() == assembly.getMatchType() && !StringUtils.isEmpty(assembly.getAssemblySn())){
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(assembly.getAssemblySn(), "productSn", packBean);
DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(), "assemblyStatus", packBean);
List<MesProductionAssembly> mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean);
if (!CollectionUtils.isEmpty(mesProductionAssemblies)) {
assembly.setChildren(parseArray(mesProductionAssemblies));
recursionAssemblySnTree(assembly.getChildren(), requestModel, assembly.getId());
}
}
}
}
@ -603,14 +612,16 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
mesProduceSnRepository.update(oldProduceSn);
}
private void doAssemblyDisassembly(MesReworkTaskRequestModel requestModel, String productSn) {
private void doAssemblyDisassembly(MesReworkTaskRequestModel requestModel, String productSn,String responsibleParty) {
//报废目标库位
String destLocateNo = getDestLocateNo(requestModel.getOrganizeCode(), productSn);
//总成拆解
doProductReportReversal(requestModel,productSn);
doProductReportReversal(requestModel,productSn,destLocateNo);
//装配件数据处理
recursionCheck(requestModel.getAssemblyModelList(), requestModel.getOrganizeCode(), requestModel.getUserName(),mesConfigService.getCfgValue(requestModel.getOrganizeCode(), MesPcnExtConstWords.DISASSEMBLY_DEST_LOCATE));
doRecursionCheck(requestModel.getAssemblyModelList(), requestModel.getOrganizeCode(), requestModel.getUserName(),destLocateNo,responsibleParty);
}
private void doProductReportReversal(MesReworkTaskRequestModel requestModel, String productSn) {
private void doProductReportReversal(MesReworkTaskRequestModel requestModel, String productSn,String locateNo) {
//更新条码状态为总成拆解
MesProduceSn produceSnDb = getMesProduceSn(requestModel.getOrganizeCode(), productSn);
produceSnDb.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY_DISASSEMBLY.getValue());
@ -632,7 +643,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
mesWorkOrderService.doProductReportReversal(mesWorkOrderDb,productVersion, requestModel.getUserName());
//移库
requestModel.setSn(produceSnDb.getProductSn());
createMove(requestModel,getDestLocateNo(requestModel.getOrganizeCode(), produceSnDb.getProductSn()),productVersion.getReceiveInventoryPoint(),mesWorkOrderDb.getErpWorkCenter(),mesWorkOrderDb.getPartNo());
doCreateMove(requestModel,locateNo,productVersion.getReceiveInventoryPoint(),mesWorkOrderDb.getErpWorkCenter(),mesWorkOrderDb.getPartNo());
}
private MesProductVersion getProductVersion(MesWorkOrder mesWorkOrderDb) {
@ -643,7 +654,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
return mesProductVersion;
}
public void recursionCheck(List<MesProductionAssemblyModel> assemblyModelList,String organizeCode,String userName,String destLocate){
public void doRecursionCheck(List<MesProductionAssemblyModel> assemblyModelList,String organizeCode,String userName,String destLocate,String responsibleParty){
for (MesProductionAssemblyModel assemblyModel : assemblyModelList) {
//勾选
if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) {
@ -652,10 +663,16 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
updateOldSn(organizeCode,assemblyModel.getAssemblySn(), userName, MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
}
//对于已勾选报废的子件,对于有零件号的项,产生移库(产线的材料库位->报废库(系统参数配置))。移库数量为报废时的明细数量;
createMove(getMesWorkCenter(organizeCode, assemblyModel.getWorkCenterCode()),destLocate, assemblyModel,userName);
if(!StringUtils.isEmpty(assemblyModel.getAssemblyPartNo())){
//移库
doCreateMove(getMesWorkCenter(organizeCode, assemblyModel.getWorkCenterCode()),destLocate, assemblyModel,userName);
//报废
doCreateScrap(assemblyModel,userName,responsibleParty,organizeCode);
}
//循环处理数据
if(!CollectionUtils.isEmpty(assemblyModel.getChildren())){
recursionCheck(assemblyModel.getChildren(),organizeCode,userName,destLocate);
doRecursionCheck(assemblyModel.getChildren(),organizeCode,userName,destLocate,responsibleParty);
}
} else if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) {
//装配解绑
@ -754,7 +771,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
private MesWorkCenter getMesWorkCenter(String organizeCode, String workCenterCode) {
MesWorkCenter workCenterDb = prodOrgExtService.getWorkCenterDb(organizeCode,workCenterCode);
if(Objects.isNull(workCenterDb)) MesPcnException.throwFlowException("产线【%s】信息不存在", workCenterCode);
if(Objects.isNull(workCenterDb)) MesPcnException.throwFlowException(String.format("产线【%s】信息不存在", workCenterCode));
return workCenterDb;
}
@ -835,7 +852,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
mesProduceSnRepository.update(produceSn);
}
private MesMove createMove(String oldSn, String sn, String organizeCode, String userName) {
private MesMove doCreateMove(String oldSn, String sn, String organizeCode, String userName) {
MesMove move = new MesMove();
move.setOrganizeCode(organizeCode);
move.setFactoryCode(organizeCode);
@ -848,7 +865,23 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
return moveRepository.insert(move);
}
private void createMove(MesWorkCenter mesWorkCenter, String destLocate, MesProductionAssemblyModel assemblyModel,String userName) {
private void doCreateScrap(MesProductionAssemblyModel assemblyModel,String userName,String responsibleParty,String organizeCode) {
//新增一条数据到报废表中
MesQmsScrap mesQmsScrap = new MesQmsScrap();
mesQmsScrap.setOrganizeCode(organizeCode);
mesQmsScrap.setAsnNo("");
mesQmsScrap.setSource("MES");
mesQmsScrap.setRejectQty(assemblyModel.getScrapQty().intValue());
mesQmsScrap.setPartNo(assemblyModel.getAssemblyPartNo());
mesQmsScrap.setPartName(assemblyModel.getAssemblyPartName());
mesQmsScrap.setDefectTypeName("拆解报废");
mesQmsScrap.setReponsibilityId(responsibleParty);
mesQmsScrap.setNcJudger(userName);
ConvertBean.serviceModelInitialize(mesQmsScrap, userName);
mesQmsScrapRepository.insert(mesQmsScrap);
}
private void doCreateMove(MesWorkCenter mesWorkCenter, String destLocate, MesProductionAssemblyModel assemblyModel,String userName) {
MesMove move = new MesMove();
move.setMatnr(assemblyModel.getAssemblyPartNo());
move.setOrganizeCode(mesWorkCenter.getOrganizeCode());
@ -865,7 +898,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
moveRepository.insert(move);
}
private void createMove(MesReworkTaskRequestModel requestModel,String srcLocate, String destLocate,String workCenterCode,String partNo) {
private void doCreateMove(MesReworkTaskRequestModel requestModel,String srcLocate, String destLocate,String workCenterCode,String partNo) {
MesPartSap mesPartSap = mesPartService.getMesPartSapByPartNo(partNo, requestModel.getOrganizeCode());
MesMove move = new MesMove();
move.setMatnr(mesPartSap.getPartNo());

@ -10,7 +10,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,7 +29,7 @@ import java.util.UUID;
**/
@Service
@Slf4j
public class MesJisShippingService implements IMesJisShippingService {
public class MesJisShippingServiceImpl implements IMesJisShippingService {
@Autowired
private IMesPartShippingGroupService mesPartShippingGroupService;
@ -38,8 +37,10 @@ public class MesJisShippingService implements IMesJisShippingService {
@Autowired
private IMesConfigService configService;
public List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList, String org) {
MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(org, orderManagement.getShippingGroupCode());
public List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList,String userName) {
MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode());
String warerhouse = mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WARERHOUSE") : mesPartShippingGroup.getSrcWarerhouse();
String erpWarehous = configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WAREHOUS");
List<MesJisShipping> jisShippingList = new ArrayList<>();
orderManagementDetailList.forEach(k -> {
MesJisShipping jisShipping = new MesJisShipping();
@ -47,8 +48,8 @@ public class MesJisShippingService implements IMesJisShippingService {
BeanUtils.copyProperties(k, jisShipping, "id");
jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode());
jisShipping.setShippingTime(TimeTool.getNowTime(true));
jisShipping.setErpWarerhouse(mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(org, "ERP_WARERHOUSE"): mesPartShippingGroup.getSrcWarerhouse());
jisShipping.setErpWarehous(configService.getCfgValue(org, "ERP_WAREHOUS"));
jisShipping.setErpWarerhouse(warerhouse);
jisShipping.setErpWarehous(erpWarehous);
jisShipping.setDock(orderManagement.getSendDockCode());
jisShipping.setCusCode(orderManagement.getCustCode());
jisShipping.setCusDock(orderManagement.getCustDockCode());
@ -59,7 +60,7 @@ public class MesJisShippingService implements IMesJisShippingService {
jisShipping.setShippingOrderCode(orderManagement.getShippingCode());
jisShipping.setFid(UUID.randomUUID().toString());
jisShipping.setSystemSyncStatus(CommonEnumUtil.FALSE);
ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName());
ConvertBean.serviceModelInitialize(jisShipping, userName);
jisShippingList.add(jisShipping);
});

@ -68,6 +68,8 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
@Autowired
private MesCustomerPartRepository mesCustomerPartRDao;
@Autowired
private MesProductionAssemblyRepository mesProductionAssemblyRepository;
@Autowired
private IConfigService configService;
@ -216,4 +218,21 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
return mesCustomerPart;
}
@Override
public List<MesProductionAssembly> findMesProductionAssembly(MesProductionAssembly requestModel) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(requestModel.getAssemblySn(), "assemblySn", packBean);
if (!StringUtils.isEmpty(requestModel.getPartNo())) {
DdlPreparedPack.getStringEqualPack(requestModel.getPartNo(), "partNo", packBean);
}
if (!StringUtils.isEmpty(requestModel.getAssemblyPartNo())) {
DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean);
}
List<MesProductionAssembly> mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(mesProductionAssemblies)) {
MesPcnException.throwMesBusiException("扫描的装配件条码【%s】条码不存在请扫描其他的装配件",requestModel.getAssemblySn());
}
return mesProductionAssemblies;
}
}

@ -1,7 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesShippingLoadingCheckService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesSortShippingCheckService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.aspect.MonitorLog;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesShippingLoadingCheckModel;
@ -11,6 +11,7 @@ import cn.estsh.i3plus.platform.common.tool.TimeTool;
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.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail;
@ -48,21 +49,23 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
@Autowired
private MesShippingOrderManagementDetailRepository shippingOrderManagementDetailRepository;
@Autowired
private MesProduceSnRepository produceSnRepository;
@Autowired
private IMesJisShippingService jisShippingService;
@Autowired
private MesJisShippingRepository jisShippingRepository;
@Autowired
private MesPartShippingGroupService mesPartShippingGroupService;
@Autowired
private IMesSortShippingCheckService mesSortShippingCheckService;
@Override
public MesShippingLoadingCheckModel doLoadingOrderNoQuery(MesLoadingList loadingList) {
//校验装车单
MesLoadingList loadingListResult = checkLoadingList(loadingList.getOrderCode(), loadingList.getOrganizeCode(),loadingList.getIsPass(),loadingList.getModifyUser());
if(Objects.isNull(loadingListResult)){
return null;
}
//若生成装车单,则一定有装车单明细
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(loadingListResult.getId(), "pid", orderDetailPackBean);
@ -141,7 +144,8 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//MesLoadingList loadingList = checkLoadingList(model.getOrderCode(), organizeCode,model.getIsPass(),userInfo);
//根据扫描的发运单以及前端传的发运单明细,进行匹配,若没有找到扫描的发运单,则提示扫描的发运单号不在此装车单中,请检查数据!。
if(!Objects.isNull(model.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == model.getIsPass()){
//1 跳过
if(!Objects.isNull(model.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,model.getIsPass())){
Optional<MesLoadingListDetail> loadingListDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).findFirst();
if(loadingListDetailOptional.isPresent()){
MesLoadingListDetail loadingListDetail = loadingListDetailOptional.get();
@ -222,12 +226,8 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
vehiclesOrderDetailList.forEach(k -> {
if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == k.getStatus()){
k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.PUBLISHED.getValue()); // todo 不改变为发运状态
}else if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue() == k.getStatus()){
//关闭发运单明细
closeOrder(loadingList, k, userInfo);
}
k.setSystemSyncStatus(CommonEnumUtil.FALSE);
// k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); todo 不改变为发运状态
ConvertBean.serviceModelUpdate(k, userInfo);
});
@ -259,10 +259,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
loadingListDetail.setStatus(status);
//根据是否启动记忆判断 若启用记忆,则根据保存数据库
if (Objects.equals(loadingList.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)) {
//关闭跳过的单据
if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue() == status){
closeOrder(loadingList, loadingListDetail, userName);
}
//若装车单状态为创建或发布已生成ASN 则写入开始扫描时间
if (loadingList.getStatus() == MesExtEnumUtil.MES_LOADING_STATUS.CREATE.getValue() ||
loadingList.getStatus() == MesExtEnumUtil.MES_LOADING_STATUS.PUBLISH.getValue() ||
@ -279,18 +275,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
}
}
private void closeOrder(MesLoadingList loadingList, MesLoadingListDetail loadingListDetail, String userName) {
//关闭发运单明细
// List<Long> idList = new ArrayList<>();
// idList.add(loadingList.getId());
// List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(),idList);
// if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){
// closeShippingOrderDetails(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.SHIP_PASS, mesShippingOrderManagementList.stream().filter(t-> loadingListDetail.getShippingCode().equals(t.getShippingCode())).map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
// }
// //关闭发运单
// closeShippingOrder(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.SHIP_PASS, mesShippingOrderManagementList.stream().filter(t-> loadingListDetail.getShippingCode().equals(t.getShippingCode())).map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
}
private MesPartShippingGroup getMesPartShippingGroup(String org, String partShippingGroupCode) {
MesPartShippingGroup shippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(org, partShippingGroupCode);
if(Objects.isNull(shippingGroup)){
@ -326,6 +310,17 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
MesExtEnumUtil.MES_LOADING_STATUS.CREATE_ASN.getDescription(),
MesExtEnumUtil.MES_LOADING_STATUS.LOADING.getDescription()));
}
//跳过
if (Objects.equals(MesPcnExtConstWords.THREE, isPass)) {
//跳过的单据和明细,系统默认是完成的
loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue());
loadingList.setRemark(MesPcnExtConstWords.SHIP_PASS);
ConvertBean.serviceModelUpdate(loadingList, userName);
vehiclesOrderRepository.update(loadingList);
//明细跳过
updateLoadingList(loadingList, userName);
return null;
}
//增加发运顺序卡控查询是否存在小于当前装车单对应的seq且发运状态在“创建”“已确认”“已生成ASN”“装车中”的装车单数据
List<Integer> loadingListStatusList = new ArrayList<>();
loadingListStatusList.add(MesExtEnumUtil.MES_LOADING_STATUS.CREATE.getValue());
@ -333,7 +328,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
loadingListStatusList.add(MesExtEnumUtil.MES_LOADING_STATUS.CREATE_ASN.getValue());
loadingListStatusList.add(MesExtEnumUtil.MES_LOADING_STATUS.LOADING.getValue());
List<Integer> statusList = new ArrayList<>();
statusList.add(MesExtEnumUtil.MES_LOADING_STATUS.LOADING.getValue());
statusList.add(MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue());
statusList.add(MesExtEnumUtil.MES_LOADING_STATUS.ASN.getValue());
//最后一个扫描完成的装车单信息
@ -352,14 +346,11 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
DdlPreparedPack.getInPackList(loadingListStatusList, "status", orderPackBean);
boolean exit = vehiclesOrderRepository.isExitByHql(orderPackBean);
if (exit) {
//强过
if((!Objects.isNull(isPass) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == isPass)){
//updateLoadingListClose(loadingListStatusList,loadingList,userName);
DdlPackBean packBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "id",packBean);
vehiclesOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","remark"},
new Object[]{userName, TimeTool.getNowTime(true),MesPcnExtConstWords.STRONGER_PASS}, packBean);
//1强过
if((!Objects.isNull(isPass) && Objects.equals(MesPcnExtConstWords.ONE,isPass))) {
loadingList.setRemark(MesPcnExtConstWords.STRONGER_PASS);
ConvertBean.serviceModelUpdate(loadingList,userName);
vehiclesOrderRepository.update(loadingList);
}else {
throw new ImppBusiException(String.format("【%s】装车单对应排序【%s】前存在未扫描发运的装车单请检查数据",
orderCode, loadingList.getSeq()));
@ -385,68 +376,61 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
vehiclesOrderDetailRepository.update(item);
}
private void updateLoadingListClose(List<Integer> loadingListStatusList,MesLoadingList loadingList,String userName){
List<MesLoadingList> mesLoadingList = getMesLoadingListList(loadingListStatusList, loadingList);
if(CollectionUtils.isEmpty(mesLoadingList)) return;
List<Long> idList = mesLoadingList.stream().map(MesLoadingList::getId).distinct().collect(Collectors.toList());
private void updateLoadingList(MesLoadingList loadingList, String userName) {
List<MesLoadingListDetail> mesLoadingListDetailList = getMesLoadingListList(loadingList.getId(), loadingList.getOrganizeCode());
if (CollectionUtils.isEmpty(mesLoadingListDetailList)) return;
List<String> shippingCodeList = mesLoadingListDetailList.stream().map(MesLoadingListDetail::getShippingCode).distinct().collect(Collectors.toList());
//关闭装发运单明细
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), idList);
if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){
closeShippingOrderDetails(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.STRONGER_PASS, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), shippingCodeList);
if (!CollectionUtils.isEmpty(mesShippingOrderManagementList)) {
//发送数据给wms
for (MesShippingOrderManagement mesShippingOrderManagement : mesShippingOrderManagementList) {
jisShippingRepository.saveAll(mesSortShippingCheckService.getMesJisShippings(mesShippingOrderManagement, userName));
}
//关闭发运单明细
closeShippingOrderDetails(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
}
//关闭发运单
closeShippingOrder(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.STRONGER_PASS, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
//关闭装车单明细
closeLoadingDetails(loadingList.getOrganizeCode(), userName, idList);
//关闭装车单
closeLoadingOrder(loadingList.getOrganizeCode(), userName, idList);
closeShippingOrder(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
//明细跳过
updateLoadingDetails(loadingList.getOrganizeCode(), userName, loadingList.getId());
}
private void closeShippingOrderDetails(String organizeCode, String userName,String remark, List<Long> idList) {
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
private void closeShippingOrderDetails(String organizeCode, String userName, List<Long> idList) {
if (CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "pid",packBean);
shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),remark}, packBean);
DdlPreparedPack.getInPackList(idList, "pid", packBean);
shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
private List<MesShippingOrderManagement> getMesShippingOrderManagementList(String organizeCode, List<Long> idList) {
private List<MesShippingOrderManagement> getMesShippingOrderManagementList(String organizeCode, List<String> shippingCodeList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList,"loadingListId",packBean);
DdlPreparedPack.getInPackList(shippingCodeList, "shippingCode", packBean);
return shippingOrderManagementRepository.findByHqlWhere(packBean);
}
private void closeShippingOrder(String organizeCode, String userName,String remark, List<Long> idList) {
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
private void closeShippingOrder(String organizeCode, String userName, List<Long> idList) {
if (CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "id",packBean);
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue(),remark}, packBean);
DdlPreparedPack.getInPackList(idList, "id", packBean);
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
private void closeLoadingDetails(String organizeCode, String userName, List<Long> idList) {
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
private List<MesLoadingListDetail> getMesLoadingListList(long id, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "pid",packBean);
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean);
DdlPreparedPack.getNumEqualPack(id, "pid", packBean);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(), "status", packBean);
return vehiclesOrderDetailRepository.findByHqlWhere(packBean);
}
private void closeLoadingOrder(String organizeCode, String userName, List<Long> idList) {
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
private void updateLoadingDetails(String organizeCode, String userName, long id) {
if (StringUtil.isEmptyAndNull(id) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "id",packBean);
vehiclesOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.MES_LOADING_STATUS.CLOSED.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean);
}
private List<MesLoadingList> getMesLoadingListList(List<Integer> loadingListStatusList, MesLoadingList loadingList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode());
DdlPreparedPack.getStringSmallerNotEqualPack(loadingList.getSeq(), "seq", packBean);
DdlPreparedPack.getStringEqualPack(loadingList.getPartShippingGroupCode(),"partShippingGroupCode",packBean);
DdlPreparedPack.getInPackList(loadingListStatusList, "status", packBean);
return vehiclesOrderRepository.findByHqlWhere(packBean);
DdlPreparedPack.getNumEqualPack(id, "pid", packBean);
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
}

@ -98,6 +98,17 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
MesExtEnumUtil.SHIPPING_ORDER_STATUS.valueOfDescription(orderManagement.getStatus()),
MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getDescription(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription()));
}
//跳过
if (Objects.equals(MesPcnExtConstWords.THREE, shippingOrderManagement.getIsPass())) {
//跳过的单据和明细,系统默认是完成的
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
orderManagement.setRemark(MesPcnExtConstWords.SHIP_PASS);
ConvertBean.serviceModelUpdate(orderManagement, shippingOrderManagement.getModifyUser());
vehiclesOrderRepository.update(orderManagement);
//明细跳过
updateShippingOrderDetails(orderManagement.getOrganizeCode(), shippingOrderManagement.getModifyUser(), orderManagement.getId());
return null;
}
//校验发运单扫描顺序
List<Integer> statusForCheckList = new ArrayList<>();
@ -106,8 +117,6 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
statusForCheckList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue());
statusForCheckList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.PRINTED.getValue());
List<Integer> status = new ArrayList<>();
status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue());
status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.PRINTED.getValue());
status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.LOADING.getValue());
status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.STATISTICSING.getValue());
@ -129,12 +138,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
DdlPreparedPack.getInPackList(statusForCheckList, "status", orderManagementPackBean);
boolean exists = shippingOrderManagementRepository.isExitByHql(orderManagementPackBean);
if (exists) {
if((!Objects.isNull(shippingOrderManagement.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == shippingOrderManagement.getIsPass())){
//updateLoadingListClose(statusForCheckList,orderManagement,shippingOrderManagement.getModifyUser());
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "id",packBean);
shippingOrderManagementRepository.updateByProperties(new String[]{"forceFlag","modifyUser", "modifyDatetime","remark"},
new Object[]{MesPcnExtConstWords.STRONGER_PASS,shippingOrderManagement.getModifyUser(), TimeTool.getNowTime(true),MesPcnExtConstWords.STRONGER_PASS}, packBean);
//1强过
if((!Objects.isNull(shippingOrderManagement.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,shippingOrderManagement.getIsPass()))){
orderManagement.setRemark(MesPcnExtConstWords.STRONGER_PASS);
ConvertBean.serviceModelUpdate(orderManagement,shippingOrderManagement.getModifyUser());
vehiclesOrderRepository.update(orderManagement);
}else{
throw new ImppBusiException(String.format("【%s】发运单对应排序【%s】前存在未扫描发运的发运单请检查数据",
orderManagement.getShippingCode(), orderManagement.getSeq()));
@ -143,20 +151,20 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
if (Objects.equals(orderManagement.getIsLoading(), MesCommonConstant.TRUE_INTEGER)) {
if (StringUtils.isEmpty(orderManagement.getOrderCode()) ) {
//查询装车单明细
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean);
MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean);
if(Objects.isNull(listDetail)){
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没绑定装车单号,请检查数据!", shippingOrderManagement.getShippingCode()));
}
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderManagement.getOrderCode(), "orderCode", orderDetailPackBean);
MesLoadingList loadingList = listRepository.getByProperty(orderDetailPackBean);
if (StringUtils.isEmpty(loadingList)) {
packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean);
MesLoadingList loadingList = listRepository.getByProperty(packBean);
if(Objects.isNull(loadingList)){
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode()));
}
//判断是否先装车
if (Objects.equals(orderManagement.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) {
@ -215,7 +223,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, orderManagement.getShippingGroupCode());
//根据条码找到对应的物料号若物料号一致则修改扫描flg将flg改为true.
//根据扫描的发运单以及前端传的发运单明细,进行匹配,若没有找到扫描的发运单,则提示扫描的发运单号不在此装车单中,请检查数据!。
if(!Objects.isNull(model.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == model.getIsPass()){
//1 跳过
if(!Objects.isNull(model.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,model.getIsPass())){
Optional<MesShippingOrderManagementDetail> shippingOrderManagementDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).findFirst();
if(shippingOrderManagementDetailOptional.isPresent()){
MesShippingOrderManagementDetail mesShippingOrderManagementDetail = shippingOrderManagementDetailOptional.get();
@ -551,7 +560,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
}
if(StringUtils.isEmpty(orderManagement.getOrderCode()) || StringUtils.isEmpty(orderManagement.getLoadingListId())){
//保存当前发运单明细报工
jisShippingRepository.saveAll(getMesJisShippings(organizeCode, orderManagement));
jisShippingRepository.saveAll(getMesJisShippings(orderManagement,userInfo));
}else{
//查询装车单明细
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode);
@ -570,7 +579,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
List<MesShippingOrderManagement> shippingOrderManagementList = shippingOrderManagementRepository.findByHqlWhere(jisBean);
for (MesShippingOrderManagement mesShippingOrderManagement : shippingOrderManagementList) {
//保存当前发运单明细报工
jisShippingRepository.saveAll(getMesJisShippings(organizeCode, mesShippingOrderManagement));
jisShippingRepository.saveAll(getMesJisShippings(mesShippingOrderManagement,userInfo));
}
if(!StringUtil.isEmpty(vehiclesOrderDetail)){
@ -587,12 +596,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
}
private List<MesJisShipping> getMesJisShippings(String organizeCode, MesShippingOrderManagement mesShippingOrderManagement) {
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
public List<MesJisShipping> getMesJisShippings(MesShippingOrderManagement mesShippingOrderManagement,String userName) {
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(mesShippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesShippingOrderManagement.getId(), "pid", detailPackBean);
List<MesShippingOrderManagementDetail> shippingOrderManagementDetails = shippingOrderManagementDetailRepository.findByHqlWhere(detailPackBean);
//当前装车单所有发运单明细 需要报工的数据
return jisShippingService.getJisShipping(mesShippingOrderManagement, shippingOrderManagementDetails, organizeCode);
return jisShippingService.getJisShipping(mesShippingOrderManagement, shippingOrderManagementDetails,userName);
}
@Override
@ -607,48 +616,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
shippingOrderManagementDetailRepository.update(item);
}
private void updateLoadingListClose(List<Integer> loadingListStatusList,MesShippingOrderManagement orderManagement,String userName){
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesLoadingListList(loadingListStatusList, orderManagement);
if(CollectionUtils.isEmpty(mesShippingOrderManagementList)) return;
List<Long> idList = mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).distinct().collect(Collectors.toList());
//关闭发运单明细
closeShippingOrderDetails(orderManagement.getOrganizeCode(), userName, idList);
//关闭发运单
closeShippingOrder(orderManagement.getOrganizeCode(), userName, idList);
//更新装车单明细
updateLoadingDetails(orderManagement.getOrganizeCode(), userName, idList);
}
private List<MesShippingOrderManagement> getMesLoadingListList(List<Integer> statusForCheckList, MesShippingOrderManagement orderManagement) {
if(StringUtils.isEmpty(orderManagement.getShippingGroupCode()) || StringUtils.isEmpty(orderManagement.getSeq())) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumberSmallerPack(orderManagement.getSeq(), "seq", packBean);
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingGroupCode(),"shippingGroupCode",packBean);
DdlPreparedPack.getInPackList(statusForCheckList, "status", packBean);
return shippingOrderManagementRepository.findByHqlWhere(packBean);
}
private void closeShippingOrderDetails(String organizeCode, String userName, List<Long> idList) {
if(CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return;
private void updateShippingOrderDetails(String organizeCode, String userName, long id) {
if(StringUtils.isEmpty(id) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "pid",packBean);
DdlPreparedPack.getNumEqualPack(id, "pid",packBean);
shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(), MesPcnExtConstWords.STRONGER_PASS}, packBean);
}
private void closeShippingOrder(String organizeCode, String userName, List<Long> idList) {
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "id",packBean);
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean);
}
private void updateLoadingDetails(String organizeCode, String userName, List<Long> idList) {
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "shippingId",packBean);
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean);
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
}

@ -296,6 +296,8 @@ public class MesPcnExtConstWords {
public static final Integer ZERO = 0;
// 1
public static final Integer ONE = 1;
// 3
public static final Integer THREE = 3;
// 中括号
public static final String SQUARE_BRACKETS = "[]";
// &

@ -29,12 +29,12 @@
<log4j2.level>INFO</log4j2.level>
<skipTests>true</skipTests>
<app.charset>UTF-8</app.charset>
<!--<impp.framework.version>1.0.0.4-patch</impp.framework.version>-->
<!-- <impp.framework.version>1.0.0.4-patch</impp.framework.version>-->
<impp.framework.version>1.0.1-YZ</impp.framework.version>
<i3plus.pojo.version>1.0.0-yfai</i3plus.pojo.version>
<i3plus.platform.version>1.0.0.1-patch</i3plus.platform.version>
<i3plus.mes.pcn.version>1.0.0-yfai</i3plus.mes.pcn.version>
<i3plus.mes.pcn.version>1.0.1-yfai</i3plus.mes.pcn.version>
<log4j2.version>2.17.1</log4j2.version>
</properties>

Loading…
Cancel
Save