工单下达校验当前工单是否存在工单BOM

tags/yfai-mes-ext-v1.0
yxw 1 year ago
parent 40084c90be
commit 96dca4e820

@ -10,6 +10,7 @@ import cn.estsh.i3plus.ext.mes.api.busi.bu3.ISxPartExtService;
import cn.estsh.i3plus.ext.mes.api.busi.jx.IJxPackageExtService;
import cn.estsh.i3plus.ext.mes.api.busi.jx.IJxProduceSnService;
import cn.estsh.i3plus.ext.mes.icloud.sdk.IWmsErpHouseCheckCloud;
import cn.estsh.i3plus.ext.mes.icloud.sdk.IWmsWorkOrderBomCheckCloud;
import cn.estsh.i3plus.ext.mes.pojo.bean.*;
import cn.estsh.i3plus.ext.mes.pojo.model.*;
import cn.estsh.i3plus.ext.mes.pojo.repository.*;
@ -107,6 +108,9 @@ public class WorkOrderExtService implements IWorkOrderExtService {
private IWmsErpHouseCheckCloud wmsErpHouseCheckCloud;
@Autowired
private IWmsWorkOrderBomCheckCloud wmsWorkOrderBomCheckCloud;
@Autowired
private IConfigService configService;
@Resource(name = MesExtConstWords.REDIS_MES)
@ -1824,21 +1828,11 @@ public class WorkOrderExtService implements IWorkOrderExtService {
}
} else if (MesExtEnumUtil.WORK_ORDER_STATUS.LANDED.getValue() == workOrderStatus) {
//下达 校验WMS的存储区是否存在
BaseResultBean baseResultBean = wmsErpHouseCheckCloud.getWmsZone(mesWorkOrder.getErpWarehouse(), organizeCode);
if (null == baseResultBean) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("调用校验WMS存储区微服接口失败,BaseResultBean对象为NULL")
.build();
}
if (!baseResultBean.success) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
}
checkWmsErpHouseIsExist(organizeCode, mesWorkOrder);
// 下达在WMS中校验工单是否下达工单BOM
checkWorkOrderBomIsExist(organizeCode, mesWorkOrder);
}
mesWorkOrder.setWorkOrderStatus(workOrderStatus);
ConvertBean.serviceModelUpdate(mesWorkOrder, AuthUtil.getSessionUser().getUserName());
@ -1853,6 +1847,43 @@ public class WorkOrderExtService implements IWorkOrderExtService {
}
private void checkWorkOrderBomIsExist(String organizeCode, MesWorkOrderExt mesWorkOrder) {
if (mesWorkOrder.getWorkOrderType() != MesExtEnumUtil.WORK_ORDER_TYPE.STANDARD_ORDER.getValue()) return;
BaseResultBean baseResultBean = wmsWorkOrderBomCheckCloud.getWorkOrderBom(mesWorkOrder.getOrderNo(), organizeCode);
if (null == baseResultBean) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("调用校验WMS获取工单BOM微服接口失败,BaseResultBean对象为NULL")
.build();
}
if (!baseResultBean.success) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
}
}
private void checkWmsErpHouseIsExist(String organizeCode, MesWorkOrderExt mesWorkOrder) {
BaseResultBean baseResultBean = wmsErpHouseCheckCloud.getWmsZone(mesWorkOrder.getErpWarehouse(), organizeCode);
if (null == baseResultBean) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("调用校验WMS存储区微服接口失败,BaseResultBean对象为NULL")
.build();
}
if (!baseResultBean.success) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
}
}
//根据物料信息 更新ep工单状态为不创建条码
private void updateEpWorkOrderCreateSn(MesWorkOrderExt mesWorkOrderExt){

@ -20,6 +20,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.util.SxDateRangeUtils;
import cn.estsh.i3plus.ext.mes.apiservice.util.SxMesHttpUtil;
import cn.estsh.i3plus.ext.mes.icloud.sdk.IQmsReworkRangeCloud;
import cn.estsh.i3plus.ext.mes.icloud.sdk.IWmsErpHouseCheckCloud;
import cn.estsh.i3plus.ext.mes.icloud.sdk.IWmsWorkOrderBomCheckCloud;
import cn.estsh.i3plus.ext.mes.pojo.bean.*;
import cn.estsh.i3plus.ext.mes.pojo.model.ExcelWorkOrderDto;
import cn.estsh.i3plus.ext.mes.pojo.model.GenerateWorkOrderDto;
@ -116,6 +117,9 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService {
private IWmsErpHouseCheckCloud wmsErpHouseCheckCloud;
@Autowired
private IWmsWorkOrderBomCheckCloud wmsWorkOrderBomCheckCloud;
@Autowired
private IQmsReworkRangeCloud reworkRangeCloud;
@Autowired
@ -1559,6 +1563,9 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService {
//下达 校验WMS的存储区是否存在
checkWmsErpHouseIsExist(organizeCode, mesWorkOrder);
// 下达在WMS中校验工单是否下达工单BOM
checkWorkOrderBomIsExist(organizeCode, mesWorkOrder);
if (StringUtils.isEmpty(mesWorkOrder.getReserved1()) || StringUtils.isEmpty(mesWorkOrder.getReserved2())) {
if (CollectionUtils.isEmpty(workCenterExtMap)) workCenterExtMap = new HashMap<>();
MesWorkCenterExt workCenterExt;
@ -1646,6 +1653,25 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService {
}
private void checkWorkOrderBomIsExist(String organizeCode, MesWorkOrderExt mesWorkOrder) {
if (mesWorkOrder.getWorkOrderType() != MesExtEnumUtil.WORK_ORDER_TYPE.STANDARD_ORDER.getValue()) return;
BaseResultBean baseResultBean = wmsWorkOrderBomCheckCloud.getWorkOrderBom(mesWorkOrder.getOrderNo(), organizeCode);
if (null == baseResultBean) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("调用校验WMS获取工单BOM微服接口失败,BaseResultBean对象为NULL")
.build();
}
if (!baseResultBean.success) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
}
}
private void clearProdBindRecord(String organizeCode, MesWorkOrderExt mesWorkOrder, String nowTime, List<String> serialNumberList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getOrderNo(), MesExtConstWords.WORK_ORDER_NO, packBean);

@ -0,0 +1,19 @@
package cn.estsh.i3plus.ext.mes.icloud.sdk;
import cn.estsh.i3plus.ext.mes.icloud.sdkfallback.WmsWorkOrderBomCheckFallbackFactory;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "i3wms",
path = CommonConstWords.WHITELIST_URL,
fallbackFactory = WmsWorkOrderBomCheckFallbackFactory.class
)
public interface IWmsWorkOrderBomCheckCloud {
@GetMapping(value = "/ext/base/get-wms-work-order-bom")
BaseResultBean getWorkOrderBom(@RequestParam(MesExtConstWords.WORK_ORDER_NO) String workOrderNo,
@RequestParam(MesExtConstWords.ORGANIZE_CODE) String organizeCode);
}

@ -0,0 +1,20 @@
package cn.estsh.i3plus.ext.mes.icloud.sdkfallback;
import cn.estsh.i3plus.ext.mes.icloud.sdk.IWmsWorkOrderBomCheckCloud;
import cn.estsh.i3plus.pojo.base.bean.BaseFallBackBean;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;
@Component
public class WmsWorkOrderBomCheckFallbackFactory extends BaseFallBackBean implements FallbackFactory<IWmsWorkOrderBomCheckCloud> {
@Override
public IWmsWorkOrderBomCheckCloud create(Throwable throwable) {
return new IWmsWorkOrderBomCheckCloud() {
@Override
public BaseResultBean getWorkOrderBom(String workOrderBom, String organizeCode) {
return makeBaseFallBack("微服调用出错", throwable);
}
};
}
}
Loading…
Cancel
Save