Merge remote-tracking branch 'origin/dev-wuhan' into dev-wuhan

tags/yfai-mes-ext-v2.3
臧学普 6 months ago
commit 81ca92c4e1

@ -14,7 +14,7 @@ public interface IMesPullingOrderInfoService extends IBaseMesService<MesPullingO
Map doSPSForEquipment( String assemblyLine, String pullingGroupCode,String organizeCode ); Map doSPSForEquipment( String assemblyLine, String pullingGroupCode,String organizeCode );
void doCreatePullOrderByPullGroupAndWorkOrder(String organizeCode, String userName); void doCreatePullOrderByPullGroupAndWorkOrder(String organizeCode,Integer pageSize, String userName);
List<MesPullingOrderInfo> doMesPullingOrderInfoPrint(MesPullingOrderInfo mesPullingOrderInfo, String userName); List<MesPullingOrderInfo> doMesPullingOrderInfoPrint(MesPullingOrderInfo mesPullingOrderInfo, String userName);
} }

@ -17,4 +17,7 @@ public interface IMesWorkOrderPartService extends IBaseMesService<MesWorkOrderPa
@ApiOperation("根据工单号查询工单零件") @ApiOperation("根据工单号查询工单零件")
List<MesWorkOrderPart> findMesWorkOrderPart(String workOrderNo, String organizeCode); List<MesWorkOrderPart> findMesWorkOrderPart(String workOrderNo, String organizeCode);
@ApiOperation("根据工单号查询工单零件")
List<MesWorkOrderPart> findMesWorkOrderPart(List<String> workOrderNoList, String organizeCode);
} }

@ -281,10 +281,10 @@ public class MesWhiteListController extends MesBaseController {
} }
@GetMapping(value = "/doCreatePullOrder") @GetMapping(value = "/doCreatePullOrder")
@ApiOperation(value = "根据拉动组和生产工单产生拉动单") @ApiOperation(value = "根据拉动组和生产工单产生拉动单")
public ResultBean doCreatePullOrder(String organizeCode, String equ) { public ResultBean doCreatePullOrder(String organizeCode, Integer pageSize) {
//统计数据 //统计数据
try { try {
pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,"test"); pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,pageSize,"test");
} catch (ImppBusiException imppException) { } catch (ImppBusiException imppException) {
return ResultBean.fail(imppException); return ResultBean.fail(imppException);
} catch (Exception e) { } catch (Exception e) {

@ -1,17 +1,19 @@
package cn.estsh.i3plus.ext.mes.apiservice.schedulejob; package cn.estsh.i3plus.ext.mes.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob; import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.pojo.model.wms.WmsJobParamModel;
import cn.estsh.impp.framework.boot.init.ApplicationProperties; import cn.estsh.impp.framework.boot.init.ApplicationProperties;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.quartz.DisallowConcurrentExecution; import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import java.util.List; import java.util.List;
@ -34,9 +36,6 @@ public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesSchedul
@Autowired @Autowired
private IMesPullingOrderInfoService pullingOrderInfoService; private IMesPullingOrderInfoService pullingOrderInfoService;
@Autowired
private IMesConfigService mesConfigService;
@Value("${server.port}") @Value("${server.port}")
private String serverPort; private String serverPort;
@Value("${impp.server.ip}") @Value("${impp.server.ip}")
@ -49,22 +48,20 @@ public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesSchedul
@Override @Override
public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
try {
String jobParam = this.getJobParam();
if (StringUtils.isBlank(jobParam)) { List<WmsJobParamModel> wmsJobParamModelList = JsonUtilTool.toList(this.getJobParam(), WmsJobParamModel.class);
throw new IllegalArgumentException("job参数为空请检查参数"); if (!CollectionUtils.isEmpty(wmsJobParamModelList)) {
for (WmsJobParamModel wmsJobParamModel : wmsJobParamModelList) {
try {
long startTime = System.currentTimeMillis();
LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB --- start", wmsJobParamModel.getOrganizeCode());
pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(wmsJobParamModel.getOrganizeCode(), wmsJobParamModel.getPageSize(), MesExtConstWords.JOB);
long endTime = System.currentTimeMillis();
LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB --- end --- 耗时: {} ms", wmsJobParamModel.getOrganizeCode(), endTime - startTime);
} catch (Exception e) {
LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB 执行失败{}", wmsJobParamModel.getOrganizeCode(), e);
} }
String[] organizeCodeList = jobParam.split(",");
LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始 -----start");
String userName = "CreatePullOrderJob";
for (String organizeCode : organizeCodeList) {
pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,userName);
} }
LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始结束 ----- end");
} catch (Exception e) {
LOGGER.error("根据拉动组和生产工单产生拉动单JOB任务结束e:{}", e.toString());
} }
} }

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -98,7 +99,11 @@ public class MesCustomerPartService extends BaseMesService<MesCustomerPart> impl
} }
List<String> customerPartNoList = mesCustomerCarModelDetails.stream().map(MesCustomerCarModelDetail::getCustPartNo).collect(Collectors.toList()); List<String> customerPartNoList = mesCustomerCarModelDetails.stream().map(MesCustomerCarModelDetail::getCustPartNo).collect(Collectors.toList());
ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode()); ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
if (customerPartNoList.size() == MesExtConstWords.ONE) {
DdlPreparedPack.getStringEqualPack(customerPartNoList.get(MesExtConstWords.ZERO), "custPartNo", ddlPackBean);
} else {
DdlPreparedPack.getInPackList(customerPartNoList, "custPartNo", ddlPackBean); DdlPreparedPack.getInPackList(customerPartNoList, "custPartNo", ddlPackBean);
}
return baseRDao.findByHqlWhere(ddlPackBean); return baseRDao.findByHqlWhere(ddlPackBean);
} }
@ -106,7 +111,11 @@ public class MesCustomerPartService extends BaseMesService<MesCustomerPart> impl
public List<MesCustomerPart> findMesCustomerPartByPartNo(String organizeCode, List<String> partNoList) { public List<MesCustomerPart> findMesCustomerPartByPartNo(String organizeCode, List<String> partNoList) {
if(StringUtils.isEmpty(organizeCode) || Objects.isNull(partNoList)) return null; if(StringUtils.isEmpty(organizeCode) || Objects.isNull(partNoList)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPack(partNoList, "erpPartNo", packBean); if (partNoList.size() == MesExtConstWords.ONE) {
DdlPreparedPack.getStringEqualPack(partNoList.get(MesExtConstWords.ZERO), "erpPartNo", packBean);
} else {
DdlPreparedPack.getInPackList(partNoList, "erpPartNo", packBean);
}
return baseRDao.findByHqlWhere(packBean); return baseRDao.findByHqlWhere(packBean);
} }

@ -2,6 +2,8 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderPartService;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
@ -52,6 +54,8 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
private IMesPrintedSnLogRepository snLogRao; private IMesPrintedSnLogRepository snLogRao;
@Autowired @Autowired
private IMesCustomerPartService mesCustomerPartService; private IMesCustomerPartService mesCustomerPartService;
@Autowired
private IMesWorkOrderPartService mesWorkOrderPartService;
protected void setPackQueryBean(MesPullingOrderInfo bean, DdlPackBean packBean) { protected void setPackQueryBean(MesPullingOrderInfo bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBean);
@ -88,7 +92,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
} }
@Override @Override
public void doCreatePullOrderByPullGroupAndWorkOrder(String organizeCode, String userName) { public void doCreatePullOrderByPullGroupAndWorkOrder(String organizeCode,Integer pageSize, String userName) {
//1.拉动组集合+拉动组明细集合pullingGroupList+ pullingpartlist //1.拉动组集合+拉动组明细集合pullingGroupList+ pullingpartlist
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
List<MesPartPull> pulliGroupList = mesPartPullRDao.findByHqlWhere(ddlPackBean); List<MesPartPull> pulliGroupList = mesPartPullRDao.findByHqlWhere(ddlPackBean);
@ -107,33 +111,27 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
Map<String, List<MesPartPullDetail>> partPullDetailListMap = pullDetailList.stream().collect(Collectors.groupingBy(MesPartPullDetail::getPartNo)); Map<String, List<MesPartPullDetail>> partPullDetailListMap = pullDetailList.stream().collect(Collectors.groupingBy(MesPartPullDetail::getPartNo));
//2.客户物料集合 [PART_NO] in 拉动组明细物料集合 //2.客户物料集合 [PART_NO] in 拉动组明细物料集合
//3.产线数据 //3.产线数据
DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode); // DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode);
List<String> workCenterList = pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).collect(Collectors.toList()); // DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", workPackBean);
DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", workPackBean); // List<MesWorkCenter> mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean);
List<MesWorkCenter> mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean); // if (CollectionUtils.isEmpty(mesWorkCenterList)) {
if (CollectionUtils.isEmpty(mesWorkCenterList)) { // LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},拉动组对应产线信息不存在-->{}", organizeCode, workCenterList);
LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},拉动组对应产线信息不存在-->{}", organizeCode, workCenterList); // return;
return; // }
} // Map<String, List<MesWorkCenter>> workCenterListMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode));
Map<String, List<MesWorkCenter>> workCenterListMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); List<String> workCenterList = pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).distinct().collect(Collectors.toList());
//4.生产工单 在加工状态 [PULLING_STATUS] =0 未创建 //4.生产工单 在加工状态 [PULLING_STATUS] =0 未创建
DdlPackBean packBeanWorkOrder = DdlPackBean.getDdlPackBean(organizeCode); List<MesWorkOrder> workOrderList = getMesWorkOrderList(organizeCode, pageSize, workCenterList);
DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", packBeanWorkOrder);
DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), "workOrderStatus", packBeanWorkOrder);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.NOTCREATE.getValue(), "pullingStatus", packBeanWorkOrder);
List<MesWorkOrder> workOrderList = mesWorkOrderRepository.findByHqlWhere(packBeanWorkOrder);
if (CollectionUtils.isEmpty(workOrderList)) { if (CollectionUtils.isEmpty(workOrderList)) {
LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线信息没有【未创建】【在加工】状态的工单-->{}", organizeCode, workCenterList); LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线信息没有【未创建】【在加工】状态的工单-->{}", organizeCode, workCenterList);
return; return;
} }
Map<String, List<MesWorkOrder>> workOrderListMap = workOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getWorkOrderNo)); Map<String, List<MesWorkOrder>> workOrderListMap = workOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getWorkOrderNo));
DdlPackBean packBeanWorkOrderPart = DdlPackBean.getDdlPackBean(organizeCode); List<MesWorkOrderPart> mesWorkOrderPartList = mesWorkOrderPartService.findMesWorkOrderPart(workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()),organizeCode);
DdlPreparedPack.getInPackList(workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()), "workOrderNo", packBeanWorkOrderPart);
List<MesWorkOrderPart> mesWorkOrderPartList = workOrderPartRepository.findByHqlWhere(packBeanWorkOrderPart);
if (CollectionUtils.isEmpty(mesWorkOrderPartList)) { if (CollectionUtils.isEmpty(mesWorkOrderPartList)) {
LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件不存在-->{}", organizeCode, workCenterList); LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件不存在-->{}", organizeCode, workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()));
return; return;
} }
LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件mesWorkOrderPartList-->{}", organizeCode, mesWorkOrderPartList); LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件mesWorkOrderPartList-->{}", organizeCode, mesWorkOrderPartList);
@ -143,7 +141,10 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
List<MesCustomerPart> mesCustomerPartByPartNoList = mesCustomerPartService.findMesCustomerPartByPartNo(organizeCode, partPullDetailListMap.keySet().stream().distinct().collect(Collectors.toList())); List<MesCustomerPart> mesCustomerPartByPartNoList = mesCustomerPartService.findMesCustomerPartByPartNo(organizeCode, partPullDetailListMap.keySet().stream().distinct().collect(Collectors.toList()));
Map<String, List<MesCustomerPart>> customerPartMap = CollectionUtils.isEmpty(mesCustomerPartByPartNoList) ? null : mesCustomerPartByPartNoList.stream().collect(Collectors.groupingBy(MesCustomerPart::getErpPartNo)); Map<String, List<MesCustomerPart>> customerPartMap = CollectionUtils.isEmpty(mesCustomerPartByPartNoList) ? null : mesCustomerPartByPartNoList.stream().collect(Collectors.groupingBy(MesCustomerPart::getErpPartNo));
List<MesPullingOrderInfo> mesPullingOrderInfoList = new ArrayList<>();
List<MesPullingOrderPartInfo> mesPullingOrderPartInfoList = new ArrayList<>();
List<MesPullingOrderExtends> mesPullingOrderExtendsList = new ArrayList<>();
List<String> workOrderNoList = new ArrayList<>();
for (Map.Entry<String, List<MesWorkOrderPart>> stringListEntry : workOrderNoListMap.entrySet()) { for (Map.Entry<String, List<MesWorkOrderPart>> stringListEntry : workOrderNoListMap.entrySet()) {
//需要生成拉动单的工单号 对应工单 //需要生成拉动单的工单号 对应工单
List<MesWorkOrder> mesWorkOrders = workOrderListMap.get(stringListEntry.getKey()); List<MesWorkOrder> mesWorkOrders = workOrderListMap.get(stringListEntry.getKey());
@ -176,29 +177,6 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
//拉动组号+年月日+工单后5位 //拉动组号+年月日+工单后5位
String orderNo = mesPartPull.getPullCode()+ TimeTool.getNowTime("yyMMdd") + String orderNo = mesPartPull.getPullCode()+ TimeTool.getNowTime("yyMMdd") +
mesWorkOrder.getWorkOrderNo().substring(mesWorkOrder.getWorkOrderNo().length()-5); mesWorkOrder.getWorkOrderNo().substring(mesWorkOrder.getWorkOrderNo().length()-5);
// if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.KITTING_PULL.getValue()) {
// orderNo = "KITTING";
// } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.JIS_PULL.getValue()) {
// orderNo = "JIS";
// } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.SPS_PULL.getValue()) {
// orderNo = "SPS";
// } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.BENZ_PULL.getValue()) {
// orderNo = "BENZ";
// } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.PICK_PULL.getValue()) {
// orderNo = "PICK";
// }
//调用平台生成拉动单号流水 -yyyyMMdd00001
// BaseResultBean<LinkedHashMap> orderResutlBean = sysOrderNoRuleCloud.getOrderNo(MesCommonConstant.MES_PULL_ORDER_NO);
// if (orderResutlBean != null && orderResutlBean.isSuccess()) {
// orderNo += orderResutlBean.getResultObject().get(WmsConstWords.CORE_ORDER_NO).toString();
// } else {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
// .setErrorDetail("生成单号失败")
// .setErrorSolution("【MES_PULL_ORDER_NO】请重新操作或查看服务")
// .build();
// }
MesPullingOrderInfo pullingOrder = new MesPullingOrderInfo(); MesPullingOrderInfo pullingOrder = new MesPullingOrderInfo();
pullingOrder.setOrganizeCode(organizeCode); pullingOrder.setOrganizeCode(organizeCode);
pullingOrder.setPullingOrderNo(orderNo); pullingOrder.setPullingOrderNo(orderNo);
@ -219,7 +197,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
pullingOrder.setOrderFlag(StringUtil.isEmpty(mesWorkOrder.getOrderFlag())?"":mesWorkOrder.getOrderFlag().substring(0,1)); pullingOrder.setOrderFlag(StringUtil.isEmpty(mesWorkOrder.getOrderFlag())?"":mesWorkOrder.getOrderFlag().substring(0,1));
ConvertBean.serviceModelInitialize(pullingOrder, userName); ConvertBean.serviceModelInitialize(pullingOrder, userName);
mesPullingOrderInfoRepository.insert(pullingOrder); mesPullingOrderInfoList.add(pullingOrder);
for (MesPartPullDetail partInfo : mesPartPullDetails) { for (MesPartPullDetail partInfo : mesPartPullDetails) {
MesPullingOrderPartInfo pullingOrderPartInfo = new MesPullingOrderPartInfo(); MesPullingOrderPartInfo pullingOrderPartInfo = new MesPullingOrderPartInfo();
@ -250,7 +228,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
pullingOrderPartInfo.setOrderFlag(pullingOrder.getOrderFlag()); pullingOrderPartInfo.setOrderFlag(pullingOrder.getOrderFlag());
ConvertBean.serviceModelInitialize(pullingOrderPartInfo, userName); ConvertBean.serviceModelInitialize(pullingOrderPartInfo, userName);
mesPullingOrderPartInfoRepository.insert(pullingOrderPartInfo); mesPullingOrderPartInfoList.add(pullingOrderPartInfo);
} }
//7.拉动组+加工单号+生成拉动单状态的对应关系中间表,每次新增都要记录 //7.拉动组+加工单号+生成拉动单状态的对应关系中间表,每次新增都要记录
MesPullingOrderExtends mesPullingOrderExtends= new MesPullingOrderExtends(); MesPullingOrderExtends mesPullingOrderExtends= new MesPullingOrderExtends();
@ -260,17 +238,51 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
mesPullingOrderExtends.setWorkOrderNo(pullingOrder.getWorkOrderNo()); mesPullingOrderExtends.setWorkOrderNo(pullingOrder.getWorkOrderNo());
mesPullingOrderExtends.setPullOrderStatus(pullingOrder.getPullOrderStatus()); mesPullingOrderExtends.setPullOrderStatus(pullingOrder.getPullOrderStatus());
ConvertBean.serviceModelInitialize(mesPullingOrderExtends, userName); ConvertBean.serviceModelInitialize(mesPullingOrderExtends, userName);
mesPullingOrderExtendsList.add(mesPullingOrderExtends);
mesPullingOrderExtendsRepository.insert(mesPullingOrderExtends);
} }
} }
//6.产生拉动单后更新工单拉动状态为已拉动 //6.产生拉动单后更新工单拉动状态为已拉动
mesWorkOrder.setPullingStatus(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.SUBMIT.getValue()); workOrderNoList.add(mesWorkOrder.getWorkOrderNo());
mesWorkOrderRepository.update(mesWorkOrder);
} }
//数据持久化
if (!CollectionUtils.isEmpty(mesPullingOrderInfoList)) {
mesPullingOrderInfoRepository.saveAll(mesPullingOrderInfoList);
}
if (!CollectionUtils.isEmpty(mesPullingOrderPartInfoList)) {
mesPullingOrderPartInfoRepository.saveAll(mesPullingOrderPartInfoList);
}
if (!CollectionUtils.isEmpty(mesPullingOrderExtendsList)) {
mesPullingOrderExtendsRepository.saveAll(mesPullingOrderExtendsList);
}
//更新拉动状态
if (!CollectionUtils.isEmpty(workOrderNoList)) {
updateMesWorkOrder(organizeCode, userName, workOrderNoList);
}
}
private List<MesWorkOrder> getMesWorkOrderList(String organizeCode, Integer pageSize, List<String> workCenterList) {
DdlPackBean packBeanWorkOrder = DdlPackBean.getDdlPackBean(organizeCode);
if (workCenterList.size() == MesExtConstWords.ONE) {
DdlPreparedPack.getStringEqualPack(workCenterList.get(MesExtConstWords.ZERO), MesExtConstWords.WORK_CENTER_CODE, packBeanWorkOrder);
} else {
DdlPreparedPack.getInPackList(workCenterList, MesExtConstWords.WORK_CENTER_CODE, packBeanWorkOrder);
}
DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), "workOrderStatus", packBeanWorkOrder);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.SUBMIT.getValue(), "pullingStatus", packBeanWorkOrder);
return mesWorkOrderRepository.findByHqlTopWhere(packBeanWorkOrder, StringUtil.isEmpty(pageSize) ? MesExtConstWords.TEN : pageSize);
}
private void updateMesWorkOrder(String organizeCode, String userName, List<String> workOrderNoList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
if (workOrderNoList.size() == MesExtConstWords.ONE) {
DdlPreparedPack.getStringEqualPack(workOrderNoList.get(MesExtConstWords.ZERO), MesExtConstWords.WORK_ORDER_NO, packBean);
} else {
DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean);
}
mesWorkOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "pullingStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.SUBMIT.getValue()}, packBean);
} }
@Override @Override

@ -1,11 +1,13 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderPartService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderPartService;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -33,4 +35,16 @@ public class MesWorkOrderPartServiceImpl extends BaseMesService<MesWorkOrderPart
DdlPreparedPack.getStringEqualPack(workOrderNo,"workOrderNo",packBean); DdlPreparedPack.getStringEqualPack(workOrderNo,"workOrderNo",packBean);
return baseRDao.findByHqlWhere(packBean); return baseRDao.findByHqlWhere(packBean);
} }
@Override
public List<MesWorkOrderPart> findMesWorkOrderPart(List<String> workOrderNoList, String organizeCode) {
if (CollectionUtils.isEmpty(workOrderNoList) || StringUtil.isEmpty(organizeCode)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
if (workOrderNoList.size() == MesExtConstWords.ONE) {
DdlPreparedPack.getStringEqualPack(workOrderNoList.get(MesExtConstWords.ZERO), MesExtConstWords.WORK_ORDER_NO, packBean);
} else {
DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean);
}
return baseRDao.findByHqlWhere(packBean);
}
} }

@ -868,6 +868,18 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
, MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()));
} }
//根据产线代码获取生产组信息
MesPartProdGroup mesPartProdGroup = null;
if (mesPartProdGroupMap.containsKey(mesWorkCenter.getWorkCenterCode())) {
mesPartProdGroup = mesPartProdGroupMap.get(mesWorkCenter.getWorkCenterCode());
} else {
mesPartProdGroup = getMesPartProdGroup(mesWorkCenter.getOrganizeCode(), mesWorkCenter.getWorkCenterCode());
mesPartProdGroupMap.put(mesWorkCenter.getWorkCenterCode(), mesPartProdGroup);
}
if (!Objects.isNull(mesPartProdGroup)) {
item.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode());
item.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName());
}
//拼接时间 //拼接时间
packPlanTime(item, mesShiftMap); packPlanTime(item, mesShiftMap);
//状态已发布 //状态已发布
@ -1922,6 +1934,12 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
, MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()));
} }
//根据产线代码获取生产组信息
MesPartProdGroup mesPartProdGroup = getMesPartProdGroup(mesWorkCenter.getOrganizeCode(),mesWorkCenter.getWorkCenterCode());
if(!Objects.isNull(mesPartProdGroup)){
bean.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode());
bean.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName());
}
bean.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); bean.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
List<MesWorkOrderToWms> saveMesWorkOrderToWms = new ArrayList<>(); List<MesWorkOrderToWms> saveMesWorkOrderToWms = new ArrayList<>();
//非试制单 //非试制单
@ -2264,6 +2282,15 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return partPtrRao.findByHqlWhere(partPtrPackBean); return partPtrRao.findByHqlWhere(partPtrPackBean);
} }
private MesPartProdGroup getMesPartProdGroup(String organizeCode, String workCenterCode) {
if (StringUtil.isEmpty(organizeCode) || StringUtil.isEmpty(workCenterCode)) {
return null;
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean);
return mesPartProdGroupRDao.getByProperty(packBean);
}
private List<MesWorkOrderAssembly> getAssemblyList(String workCenterCode, String vehicleNo, List<MesWorkOrderPart> workOrderPartList, String organizeCode) { private List<MesWorkOrderAssembly> getAssemblyList(String workCenterCode, String vehicleNo, List<MesWorkOrderPart> workOrderPartList, String organizeCode) {
//TM_BAS_WORK_ORDER_ASSEMBLY_SETTING 对应 mes_prod_rule_sort_cfg 排序生产规则 //TM_BAS_WORK_ORDER_ASSEMBLY_SETTING 对应 mes_prod_rule_sort_cfg 排序生产规则

@ -166,6 +166,12 @@ public class MesExtConstWords {
public static final int ZERO = 0; public static final int ZERO = 0;
//"0" //"0"
public static final String ZERO_STR = "0"; public static final String ZERO_STR = "0";
//1
public static final int ONE = 1;
//"1"
public static final String ONE_STR = "1";
// 10
public static final Integer TEN = 10;
//"" //""
public static final String EMPTY = ""; public static final String EMPTY = "";
//- //-
@ -222,8 +228,6 @@ public class MesExtConstWords {
public static final String DATE_DD_01 = "-01"; public static final String DATE_DD_01 = "-01";
//日期类型 //日期类型
public static final String DATE_DD_31 = "-31"; public static final String DATE_DD_31 = "-31";
// 1
public static final String ONE_STR = "1";
//日期类型 //日期类型
public static final String DATE_SERIAL_FORMAT = "yyyyMMdd"; public static final String DATE_SERIAL_FORMAT = "yyyyMMdd";

Loading…
Cancel
Save