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

tags/yfai-mes-ext-v2.4
jun 6 months ago
commit f1a2bc3cd3

@ -187,7 +187,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
pullingOrder.setWorkOrderSeq(StringUtil.isEmpty(mesWorkOrder.getWorkOrderSeq()) ? "" : mesWorkOrder.getWorkOrderSeq()); pullingOrder.setWorkOrderSeq(StringUtil.isEmpty(mesWorkOrder.getWorkOrderSeq()) ? "" : mesWorkOrder.getWorkOrderSeq());
pullingOrder.setIsPrint(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); pullingOrder.setIsPrint(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
pullingOrder.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue()); pullingOrder.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue());
pullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.KITTING_PULL.getValue()); pullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.PULL_ORDER_STATUS_10.getValue());
pullingOrder.setWorkCenterCode(mesPartPull.getWorkCenterCode()); pullingOrder.setWorkCenterCode(mesPartPull.getWorkCenterCode());
pullingOrder.setPullCode(mesPartPull.getPullCode()); pullingOrder.setPullCode(mesPartPull.getPullCode());
pullingOrder.setPartNo(mesWorkOrder.getPartNo()); pullingOrder.setPartNo(mesWorkOrder.getPartNo());
@ -294,7 +294,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(organizeCode);
// DdlPreparedPack.getStringEqualPack(pullingGroupCode, "pullCode", seriesPackBean); // DdlPreparedPack.getStringEqualPack(pullingGroupCode, "pullCode", seriesPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_PULL_ORDER_TYPE.SPS_PULL.getValue(), "pullOrderType", seriesPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_PULL_ORDER_TYPE.SPS_PULL.getValue(), "pullOrderType", seriesPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PULL_ORDER_STATUS.JIS_PULL.getValue(), "pullOrderStatus", seriesPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PULL_ORDER_STATUS.PULL_ORDER_STATUS_20.getValue(), "pullOrderStatus", seriesPackBean);
// DdlPreparedPack.getStringEqualPack(assemblyLine, "workCenterCode", seriesPackBean); // DdlPreparedPack.getStringEqualPack(assemblyLine, "workCenterCode", seriesPackBean);
seriesPackBean.setWhereAppend(seriesPackBean.getWhereAppend() + " order by modifyDatetime desc"); seriesPackBean.setWhereAppend(seriesPackBean.getWhereAppend() + " order by modifyDatetime desc");
@ -306,7 +306,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
return resultMap; return resultMap;
} }
//更新主表状态 源系统为25配料完成 现在-【已发送设备-30】 //更新主表状态 源系统为25配料完成 现在-【已发送设备-30】
mesPullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.SPS_PULL.getValue()); mesPullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.PULL_ORDER_STATUS_30.getValue());
ConvertBean.serviceModelUpdate(mesPullingOrder, "WS.SPS"); ConvertBean.serviceModelUpdate(mesPullingOrder, "WS.SPS");
baseRDao.update(mesPullingOrder); baseRDao.update(mesPullingOrder);
String message = "更新SPS状态成功已发送SPS信息给设备! id:" + mesPullingOrder.getId() + "Code:" + mesPullingOrder.getPullingOrderNo() + "产线" + assemblyLine + "拉动组" + pullingGroupCode + ""; String message = "更新SPS状态成功已发送SPS信息给设备! id:" + mesPullingOrder.getId() + "Code:" + mesPullingOrder.getPullingOrderNo() + "产线" + assemblyLine + "拉动组" + pullingGroupCode + "";

@ -47,6 +47,7 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service @Service
@Slf4j @Slf4j
@ -156,6 +157,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private MesQueueOrderRepository queueOrderRao; private MesQueueOrderRepository queueOrderRao;
@Autowired @Autowired
private MesPullingOrderInfoRepository pullingOrderInfoRepository;
@Autowired
private IMesWorkOrderAssemblyService mesWorkOrderAssemblyService; private IMesWorkOrderAssemblyService mesWorkOrderAssemblyService;
@Autowired @Autowired
@ -249,6 +253,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//排序工单 关闭工单对列表 //排序工单 关闭工单对列表
if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus() && MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == bean.getWorkOrderType()) { if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus() && MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == bean.getWorkOrderType()) {
closeMesQueueOrder(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName()); closeMesQueueOrder(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName());
closeMesPullingOrderInfo(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName());
} }
result.setWorkOrderStatus(bean.getWorkOrderStatus()); result.setWorkOrderStatus(bean.getWorkOrderStatus());
} }
@ -262,24 +267,21 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Override @Override
protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) { protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), "workOrderNo", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), MesExtConstWords.WORK_ORDER_NO, packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartName(), "partName", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartName(), MesExtConstWords.PART_NAME, packBean);
DdlPreparedPack.getStringLikerPack(bean.getCreateUser(), "createUser", packBean); DdlPreparedPack.getStringLikerPack(bean.getCreateUser(), MesExtConstWords.CREATE_USER, packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartNo(), MesExtConstWords.PART_NO, packBean);
DdlPreparedPack.getStringEqualPack(bean.getCustPartNo(), "custPartNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustPartNo(), MesExtConstWords.CUST_PART_NO, packBean);
DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringLikerPack(bean.getVinCode(), "vinCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getVinCode(), MesExtConstWords.VIN_CODE, packBean);
DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), "orderFlag", packBean); DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), MesExtConstWords.ORDER_FLAG, packBean);
if (!StringUtil.isEmpty(bean.getWorkOrderStatusQuery())) { if (!StringUtil.isEmpty(bean.getWorkOrderStatusQuery())) {
DdlPreparedPack.getInPackList(Arrays.stream(bean.getWorkOrderStatusQuery().split(MesExtConstWords.COMMA)).map(Integer::parseInt).collect(Collectors.toList()), "workOrderStatus", packBean); DdlPreparedPack.getInPackList(Arrays.stream(bean.getWorkOrderStatusQuery().split(MesExtConstWords.COMMA)).map(Integer::parseInt).collect(Collectors.toList()), MesExtConstWords.WORK_ORDER_STATUS, packBean);
} else DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", packBean); } else DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, packBean);
DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), "workOrderType", packBean); DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, packBean);
DdlPreparedPack.getStringBiggerPack(bean.getCreateDateTimeStart(), "createDatetime", packBean); DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), MesExtConstWords.CREATE_DATE_TIME, packBean, false);
DdlPreparedPack.getStringSmallerPack(bean.getCreateDateTimeEnd(), "createDatetime", packBean); DdlPreparedPack.timeBuilder(bean.getStartTimeStart(), bean.getStartTimeEnd(), MesExtConstWords.PLAN_START_TIME, packBean, false);
DdlPreparedPack.getStringBiggerPack(bean.getStartTimeStart(), "planStartTime", packBean); DdlPreparedPack.timeBuilder(bean.getEndTimeStart(), bean.getEndTimeEnd(), MesExtConstWords.PLAN_END_TIME, packBean, false);
DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(), "planStartTime", packBean);
DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(), "planEndTime", packBean);
DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean);
packBean.setOrderByStr(" order by workOrderSeq desc, createDatetime desc, productSeq asc, workOrderNo asc "); packBean.setOrderByStr(" order by workOrderSeq desc, createDatetime desc, productSeq asc, workOrderNo asc ");
} }
@ -291,15 +293,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
MesWorkOrder mesWorkOrder = mesWorkOrderList.iterator().next(); MesWorkOrder mesWorkOrder = mesWorkOrderList.iterator().next();
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), "workCenterCode", ddlPackBean); DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
List<MesWorkCenter> mesWorkCenterList = mesWorkCenterRDao.findByHqlWhere(ddlPackBean); List<MesWorkCenter> mesWorkCenterList = mesWorkCenterRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(mesWorkCenterList)) { if (CollectionUtils.isEmpty(mesWorkCenterList)) {
return; return;
} }
Map<String, List<MesWorkCenter>> mesWorkCenterMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); Map<String, List<MesWorkCenter>> mesWorkCenterMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode));
mesWorkOrderList.forEach(t -> { mesWorkOrderList.forEach(t -> t.setWorkCenterName(mesWorkCenterMap.containsKey(t.getWorkCenterCode()) ? mesWorkCenterMap.get(t.getWorkCenterCode()).iterator().next().getWorkCenterName() : MesExtConstWords.EMPTY));
t.setWorkCenterName(mesWorkCenterMap.containsKey(t.getWorkCenterCode()) ? mesWorkCenterMap.get(t.getWorkCenterCode()).iterator().next().getWorkCenterName() : "");
});
} }
@ -308,7 +308,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if(item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()){ if(item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()){
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN");
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(item.getOrganizeCode()), item.getCreateUser(), item.getOrganizeCode(), 1).getResultList(); List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(item.getOrganizeCode()), item.getCreateUser(), item.getOrganizeCode(), 1).getResultList();
String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", ""); String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", MesExtConstWords.EMPTY);
orderNo = item.getOrganizeCode() + item.getOrderFlag() + item.getShiftCode() + serialNo; orderNo = item.getOrganizeCode() + item.getOrderFlag() + item.getShiftCode() + serialNo;
}else if(item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.BTO.getValue()){ }else if(item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.BTO.getValue()){
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_CENTER_ORDER_NO); GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_CENTER_ORDER_NO);
@ -319,7 +319,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
orderNo = (String)syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(item.getOrganizeCode()), item.getCreateUser(), item.getOrganizeCode(), 1).getResultList().get(0); orderNo = (String)syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(item.getOrganizeCode()), item.getCreateUser(), item.getOrganizeCode(), 1).getResultList().get(0);
} }
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean); DdlPreparedPack.getStringEqualPack(orderNo, MesExtConstWords.WORK_ORDER_NO, orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) { if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号流水码生成重复"); MesException.throwMesBusiException("单号流水码生成重复");
} }
@ -358,8 +358,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesPartPtr = custPartPtrList.iterator().next(); mesPartPtr = custPartPtrList.iterator().next();
//查询ptr总成--只有特定总成才会替换 //查询ptr总成--只有特定总成才会替换
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), "ptrId", detailPartPtr); DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), MesExtConstWords.PTR_ID, detailPartPtr);
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "totalPartNo", detailPartPtr); DdlPreparedPack.getStringEqualPack(item.getPartNo(), MesExtConstWords.TOTAL_PART_NO, detailPartPtr);
List<MesPartPtrDetail> ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr); List<MesPartPtrDetail> ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr);
if (!ptrDetailList.isEmpty()) { if (!ptrDetailList.isEmpty()) {
mesPartPtrDetail = ptrDetailList.get(0); mesPartPtrDetail = ptrDetailList.get(0);
@ -382,11 +382,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
descriptionStr.append(mesPartPtr.getMemo()); descriptionStr.append(mesPartPtr.getMemo());
//更新mes_part_ptr的实际数量 + 1 //更新mes_part_ptr的实际数量 + 1
mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1);
ConvertBean.saveOrUpdate(mesPartPtr, "JOB"); ConvertBean.saveOrUpdate(mesPartPtr, MesExtConstWords.JOB);
partPtrRao.update(mesPartPtr); partPtrRao.update(mesPartPtr);
if (mesPartPtrDetail != null) { if (mesPartPtrDetail != null) {
mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1); mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1);
ConvertBean.saveOrUpdate(mesPartPtrDetail, "JOB"); ConvertBean.saveOrUpdate(mesPartPtrDetail, MesExtConstWords.JOB);
partPtrDetailRao.update(mesPartPtrDetail); partPtrDetailRao.update(mesPartPtrDetail);
} }
MesWorkOrderAssembly orderAssemblyList = null; MesWorkOrderAssembly orderAssemblyList = null;
@ -505,7 +505,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesPartProdGroup = getMesPartProdGroup(item); mesPartProdGroup = getMesPartProdGroup(item);
}else{ }else{
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), MesExtConstWords.PART_PROD_GROUP_CODE, ddlPackBean);
mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean);
if(Objects.isNull(mesPartProdGroup)){ if(Objects.isNull(mesPartProdGroup)){
MesException.throwMesBusiException("零件生产组【%s】信息不存在",item.getPartProdGroupCode()); MesException.throwMesBusiException("零件生产组【%s】信息不存在",item.getPartProdGroupCode());
@ -558,7 +558,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private void getCustomerPart(MesWorkOrder item) { private void getCustomerPart(MesWorkOrder item) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "erpPartNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getPartNo(), MesExtConstWords.ERP_PART_NO, ddlPackBean);
MesCustomerPart customerPart = mesCustomerPartRDao.getByProperty(ddlPackBean); MesCustomerPart customerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
if (!Objects.isNull(customerPart)) { if (!Objects.isNull(customerPart)) {
item.setCustPartNo(customerPart.getCustPartNo()); item.setCustPartNo(customerPart.getCustPartNo());
@ -587,8 +587,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setShiftName(mesShift.getShiftName()); item.setShiftName(mesShift.getShiftName());
try { try {
//拼接 //拼接
item.setPlanStartTime(TimeTool.parseStringFormat(item.getPlanDate() + " " + mesShift.getStartTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT)); item.setPlanStartTime(TimeTool.parseStringFormat(item.getPlanDate() + MesExtConstWords.ONE_SPACE + mesShift.getStartTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT));
item.setPlanEndTime(TimeTool.parseStringFormat(item.getPlanDate() + " " + mesShift.getEndTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT)); item.setPlanEndTime(TimeTool.parseStringFormat(item.getPlanDate() + MesExtConstWords.ONE_SPACE + mesShift.getEndTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT));
int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime()); int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
if (windowStartEndTimeCompare > 0) { if (windowStartEndTimeCompare > 0) {
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(), 1))); item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(), 1)));
@ -603,8 +603,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Override @Override
public ListPager<MesProductVersion> queryMesProductVersionByPager(MesProductVersion mesProductVersion, Pager pager) { public ListPager<MesProductVersion> queryMesProductVersionByPager(MesProductVersion mesProductVersion, Pager pager) {
DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(mesProductVersion.getOrganizeCode()); DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(mesProductVersion.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProductVersion.getPartNo(), "partNo", productVersionQueryPackBean); DdlPreparedPack.getStringEqualPack(mesProductVersion.getPartNo(), MesExtConstWords.PART_NO, productVersionQueryPackBean);
DdlPreparedPack.getStringEqualPack(mesProductVersion.getWorkCenterCode(), "workCenterCode", productVersionQueryPackBean); DdlPreparedPack.getStringEqualPack(mesProductVersion.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, productVersionQueryPackBean);
pager = PagerHelper.getPager(pager, mesProductVersionRDao.findByHqlWhereCount(productVersionQueryPackBean)); pager = PagerHelper.getPager(pager, mesProductVersionRDao.findByHqlWhereCount(productVersionQueryPackBean));
List<MesProductVersion> mesProductVersions = mesProductVersionRDao.findByHqlWherePage(productVersionQueryPackBean, pager); List<MesProductVersion> mesProductVersions = mesProductVersionRDao.findByHqlWherePage(productVersionQueryPackBean, pager);
return new ListPager<>(mesProductVersions, pager); return new ListPager<>(mesProductVersions, pager);
@ -626,9 +626,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
for (MesWorkOrder item : mesWorkOrderList) { for (MesWorkOrder item : mesWorkOrderList) {
//获取相同类型 相同标识 生产序号最大值的 //获取相同类型 相同标识 生产序号最大值的
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(item.getWorkOrderStatus(), "workOrderStatus", orderPackBean); DdlPreparedPack.getNumEqualPack(item.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, orderPackBean);
DdlPreparedPack.getStringEqualPack(item.getOrderFlag(), "orderFlag", orderPackBean); DdlPreparedPack.getStringEqualPack(item.getOrderFlag(), MesExtConstWords.ORDER_FLAG, orderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"productSeq"}, orderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesExtConstWords.PRODUCT_SEQ}, orderPackBean);
MesWorkOrder result = baseRDao.getByProperty(orderPackBean); MesWorkOrder result = baseRDao.getByProperty(orderPackBean);
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
@ -682,7 +682,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
String nowDate = TimeTool.getNowTime(true); String nowDate = TimeTool.getNowTime(true);
//获取产线信息 //获取产线信息
List<String> workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList()); List<String> workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList());
List<MesWorkCenter> mesWorkCenterList = BeanMapUtilsExt.getBeanList(mesWorkCenterRDao, "workCenterCode", organizeCode, workCenterCodeList, "产线信息"); List<MesWorkCenter> mesWorkCenterList = BeanMapUtilsExt.getBeanList(mesWorkCenterRDao, MesExtConstWords.WORK_CENTER_CODE, organizeCode, workCenterCodeList, "产线信息");
//产线导入不区分大小小 //产线导入不区分大小小
Map<String, MesWorkCenter> workCenterMap = new CaseInsensitiveMap(); Map<String, MesWorkCenter> workCenterMap = new CaseInsensitiveMap();
for (MesWorkCenter workCenter : mesWorkCenterList) { for (MesWorkCenter workCenter : mesWorkCenterList) {
@ -693,21 +693,21 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
Map<String, List<MesShift>> mesShiftMap = mesShiftList.stream().collect(Collectors.groupingBy(t -> t.getWorkCenterCode() + t.getShiftCode())); Map<String, List<MesShift>> mesShiftMap = mesShiftList.stream().collect(Collectors.groupingBy(t -> t.getWorkCenterCode() + t.getShiftCode()));
//获取生产版本 //获取生产版本
List<String> partNoList = mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()); List<String> partNoList = mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList());
List<MesProductVersion> mesProductVersionList = BeanMapUtilsExt.getBeanList(mesProductVersionRDao, "partNo", organizeCode, partNoList, "生产版本信息"); List<MesProductVersion> mesProductVersionList = BeanMapUtilsExt.getBeanList(mesProductVersionRDao, MesExtConstWords.PART_NO, organizeCode, partNoList, "生产版本信息");
//客户物料信息 //客户物料信息
Map<String, MesCustomerPart> mesCustomerPartMap = null; Map<String, MesCustomerPart> mesCustomerPartMap = null;
try { try {
mesCustomerPartMap = BeanMapUtilsExt.getBeanMap(mesCustomerPartRDao, "erpPartNo", organizeCode, partNoList, "客户物料信息"); mesCustomerPartMap = BeanMapUtilsExt.getBeanMap(mesCustomerPartRDao, MesExtConstWords.ERP_PART_NO, organizeCode, partNoList, "客户物料信息");
} catch (Exception e) { } catch (Exception e) {
} }
//获取物料信息 //获取物料信息
Map<String, MesPartSap> mesPartSapMap = BeanMapUtilsExt.getBeanMap(mesPartSapRDao, "partNo", organizeCode, partNoList, "物料信息"); Map<String, MesPartSap> mesPartSapMap = BeanMapUtilsExt.getBeanMap(mesPartSapRDao, MesExtConstWords.PART_NO, organizeCode, partNoList, "物料信息");
//获取获取vin号 //获取获取vin号
List<String> vinCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getVinCode).filter(Objects::nonNull).distinct().collect(Collectors.toList()); List<String> vinCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getVinCode).filter(Objects::nonNull).distinct().collect(Collectors.toList());
if (!CollectionUtils.isEmpty(vinCodeList)) { if (!CollectionUtils.isEmpty(vinCodeList)) {
List<MesWorkOrder> mesWorkOrders = null; List<MesWorkOrder> mesWorkOrders = null;
try { try {
mesWorkOrders = BeanMapUtilsExt.getBeanList(baseRDao, "vinCode", organizeCode, vinCodeList, "生产工单"); mesWorkOrders = BeanMapUtilsExt.getBeanList(baseRDao, MesExtConstWords.VIN_CODE, organizeCode, vinCodeList, "生产工单");
} catch (Exception e) { } catch (Exception e) {
} }
if (!CollectionUtils.isEmpty(mesWorkOrders)) { if (!CollectionUtils.isEmpty(mesWorkOrders)) {
@ -730,7 +730,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
//查询工单是否已经存在 //查询工单是否已经存在
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(next.getOrganizeCode()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(next.getOrganizeCode());
DdlPreparedPack.getInPackList(orderList, "workOrderNo", orderPackBean); DdlPreparedPack.getInPackList(orderList, MesExtConstWords.WORK_ORDER_NO, orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) { if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号已存在"); MesException.throwMesBusiException("单号已存在");
} }
@ -910,9 +910,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private List<MesShift> getMesShifts(String organizeCode, String nowDate, List<String> workCenterCodeList) { private List<MesShift> getMesShifts(String organizeCode, String nowDate, List<String> workCenterCodeList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workCenterCodeList, "workCenterCode", packBean); DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringSmallerPack(nowDate, "beginDate", packBean); DdlPreparedPack.getStringSmallerPack(nowDate, MesExtConstWords.BEGIN_DATE, packBean);
DdlPreparedPack.getStringBiggerPack(nowDate, "endDate", packBean); DdlPreparedPack.getStringBiggerPack(nowDate, MesExtConstWords.END_DATE, packBean);
List<MesShift> mesShiftList = mesShiftRDao.findByHqlWhere(packBean); List<MesShift> mesShiftList = mesShiftRDao.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(mesShiftList)) { if (CollectionUtils.isEmpty(mesShiftList)) {
MesException.throwMesBusiException("有效期内的班次信息不存在"); MesException.throwMesBusiException("有效期内的班次信息不存在");
@ -1113,13 +1113,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Override @Override
public void doCloseUnSortOrder(String organizeCode,String userName) { public void doCloseUnSortOrder(String organizeCode,String userName) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), MesExtConstWords.WORK_ORDER_TYPE, ddlPackBean);
DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean); DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), MesExtConstWords.PLAN_START_TIME, ddlPackBean);
//非排序的试制工单(P单)不自动关单(芜湖) //非排序的试制工单(P单)不自动关单(芜湖)
if (mesConfigService.checkCfgValue(organizeCode, MesExtConstWords.CLOSE_P_WORK_ORDER, MesExtConstWords.ONE_STR)) { if (mesConfigService.checkCfgValue(organizeCode, MesExtConstWords.CLOSE_P_WORK_ORDER, MesExtConstWords.ONE_STR)) {
DdlPreparedPack.getStringNoEqualPack(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue(), "orderFlag", ddlPackBean); DdlPreparedPack.getStringNoEqualPack(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue(), MesExtConstWords.ORDER_FLAG, ddlPackBean);
} }
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean); DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean);
List<MesWorkOrder> mesWorkOrderList = baseRDao.findByHqlWhere(ddlPackBean); List<MesWorkOrder> mesWorkOrderList = baseRDao.findByHqlWhere(ddlPackBean);
if(CollectionUtils.isEmpty(mesWorkOrderList)){ if(CollectionUtils.isEmpty(mesWorkOrderList)){
return; return;
@ -1141,8 +1141,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
} }
//关闭工单 //关闭工单
baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"}, baseRDao.updateByProperties(new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.WORK_ORDER_STATUS, MesExtConstWords.SYSTEM_SYNC_STATUS},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean); new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}, ddlPackBean);
} }
@ -1188,7 +1188,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
//更新工单状态 //更新工单状态
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
mesWorkOrder.setCcscStatus(""); mesWorkOrder.setCcscStatus(MesExtConstWords.EMPTY);
updateMesWorkOrder(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,mesWorkOrder.getQty()); updateMesWorkOrder(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,mesWorkOrder.getQty());
} }
//重新生成CCSC task //重新生成CCSC task
@ -1263,7 +1263,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
continue; continue;
} }
mesWorkOrder.setWorkCenterName((!StringUtils.isEmpty(mesWorkOrder.getWorkCenterCode()) && !CollectionUtils.isEmpty(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode())) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()).get(0).getWorkCenterName() : ""); mesWorkOrder.setWorkCenterName((!StringUtils.isEmpty(mesWorkOrder.getWorkCenterCode()) && !CollectionUtils.isEmpty(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode())) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()).get(0).getWorkCenterName() : MesExtConstWords.EMPTY);
MesPartProdGroup mesPartProdGroup = (!StringUtils.isEmpty(mesWorkOrder.getPartProdGroupCode()) && !CollectionUtils.isEmpty(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode())) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null; MesPartProdGroup mesPartProdGroup = (!StringUtils.isEmpty(mesWorkOrder.getPartProdGroupCode()) && !CollectionUtils.isEmpty(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode())) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null;
@ -1391,7 +1391,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesProductOffLine.setDescription(nowTime); mesProductOffLine.setDescription(nowTime);
mesProductOffLine.setStgeLoc(item.getAlort()); mesProductOffLine.setStgeLoc(item.getAlort());
mesProductOffLine.setSystemSyncStatus(CommonEnumUtil.FALSE); mesProductOffLine.setSystemSyncStatus(CommonEnumUtil.FALSE);
mesProductOffLine.setSystemSyncDatetime(""); mesProductOffLine.setSystemSyncDatetime(MesExtConstWords.EMPTY);
ConvertBean.serviceModelInitialize(mesProductOffLine, model.getUserName()); ConvertBean.serviceModelInitialize(mesProductOffLine, model.getUserName());
newProductOffLineList.add(mesProductOffLine); newProductOffLineList.add(mesProductOffLine);
}); });
@ -1410,7 +1410,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
public MesWorkOrder getMesWorkOrder(String workOrderNo, String organizeCode) { public MesWorkOrder getMesWorkOrder(String workOrderNo, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderNo,"workOrderNo",packBean); DdlPreparedPack.getStringEqualPack(workOrderNo,MesExtConstWords.WORK_ORDER_NO,packBean);
MesWorkOrder mesWorkOrder = baseRDao.getByProperty(packBean); MesWorkOrder mesWorkOrder = baseRDao.getByProperty(packBean);
if (Objects.isNull(mesWorkOrder)) { if (Objects.isNull(mesWorkOrder)) {
MesException.throwMesBusiException("工单【%s】信息不存在", workOrderNo); MesException.throwMesBusiException("工单【%s】信息不存在", workOrderNo);
@ -1514,7 +1514,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (mesPartSapMap.containsKey(mesBom.getItemPartNo())) { if (mesPartSapMap.containsKey(mesBom.getItemPartNo())) {
mesPartSap = mesPartSapMap.get(mesBom.getItemPartNo()).iterator().next(); mesPartSap = mesPartSapMap.get(mesBom.getItemPartNo()).iterator().next();
} }
MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesWorkOrder.getWorkCenterCode(), mesBom.getItemQty(), "", MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue()); MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesWorkOrder.getWorkCenterCode(), mesBom.getItemQty(), MesExtConstWords.EMPTY, MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue());
move.setMatnr(mesBom.getItemPartNo()); move.setMatnr(mesBom.getItemPartNo());
mesMoveList.add(move); mesMoveList.add(move);
} }
@ -1540,8 +1540,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private MesProdRuleSortCfg getMesProdRuleSortCfg(MesWorkOrder mesWorkOrder) { private MesProdRuleSortCfg getMesProdRuleSortCfg(MesWorkOrder mesWorkOrder) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "reportPartNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), MesExtConstWords.REPORT_PART_NO, ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
MesProdRuleSortCfg mesProdRuleSortCfg = mesProdRuleSortCfgRDao.getByProperty(ddlPackBean); MesProdRuleSortCfg mesProdRuleSortCfg = mesProdRuleSortCfgRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesProdRuleSortCfg)) { if (Objects.isNull(mesProdRuleSortCfg)) {
MesException.throwMesBusiException("产线【%s】物料【%s】排序加工规则未维护", mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo()); MesException.throwMesBusiException("产线【%s】物料【%s】排序加工规则未维护", mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo());
@ -1567,9 +1567,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (isItemReport && mesBom.getPartNo().equals(mesWorkOrder.getPartNo())) { if (isItemReport && mesBom.getPartNo().equals(mesWorkOrder.getPartNo())) {
newMesProductOffLine.setReportPartNo(mesBom.getItemPartNo()); newMesProductOffLine.setReportPartNo(mesBom.getItemPartNo());
newMesProductOffLine.setReportPartNameRdd(mesBom.getItemPartName()); newMesProductOffLine.setReportPartNameRdd(mesBom.getItemPartName());
newMesProductOffLine.setItemPartNo(""); newMesProductOffLine.setItemPartNo(MesExtConstWords.EMPTY);
newMesProductOffLine.setItemPartName(""); newMesProductOffLine.setItemPartName(MesExtConstWords.EMPTY);
newMesProductOffLine.setItemUnit(""); newMesProductOffLine.setItemUnit(MesExtConstWords.EMPTY);
newMesProductOffLine.setItemQty(0d); newMesProductOffLine.setItemQty(0d);
} }
newMesProductOffLine.setReportSn(sn); newMesProductOffLine.setReportSn(sn);
@ -1649,7 +1649,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
// statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()); // statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue());
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(statusList, "workOrderStatus", packBean); DdlPreparedPack.getInPackList(statusList, MesExtConstWords.WORK_ORDER_STATUS, packBean);
return baseRDao.findByHqlWhere(packBean); return baseRDao.findByHqlWhere(packBean);
} }
@ -1676,36 +1676,33 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单 //1.获取生产加工记录production_record表中report_status为待汇报状态的工单
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",ddlPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
DdlPreparedPack.getNumEqualPack( MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(),"reportStatus",ddlPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtConstWords.REPORT_STATUS, ddlPackBean);
//获取前一天的早班到当天早班的区间的所有加工记录,统计个数 //获取前一天的早班到当天早班的区间的所有加工记录,统计个数
DdlPreparedPack.timeBuilder( DdlPreparedPack.timeBuilder(new SimpleDateFormat(MesExtConstWords.DATE_FORMAT).format(TimeTool.getDateBefore(new Date(),MesExtConstWords.ONE)) + MesExtConstWords.APPEND_8_HMS,
new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(),1))+" 08:00:00", TimeTool.getToday() + MesExtConstWords.APPEND_8_HMS, MesExtConstWords.COMPLETE_DATE_TIME, ddlPackBean, true);
TimeTool.getToday()+" 08:00:00",
"completeDateTime", ddlPackBean, true);
return productionRecordRao.findByHqlWhere(ddlPackBean); return productionRecordRao.findByHqlWhere(ddlPackBean);
} }
@Override @Override
public List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode,List<MesProductionRecord> mesProductionRecordList ) { public List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode,List<MesProductionRecord> mesProductionRecordList ) {
DdlPackBean snPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean snPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList()), DdlPreparedPack.getInPackList(mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList()), MesExtConstWords.PRODUCT_SN, snPackBean);
"productSn",snPackBean);
return mesProduceSnRao.findByHqlWhere(snPackBean); return mesProduceSnRao.findByHqlWhere(snPackBean);
} }
@Override @Override
public List<MesWorkOrder> insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList, String organizeCode, String userName) { public List<MesWorkOrder> insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList, String organizeCode, String userName) {
List<MesWorkOrder> mesWorkOrderList=new ArrayList<>(); List<MesWorkOrder> mesWorkOrderList=new ArrayList<>();
Map<String, List<MesProductionRecord>> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() +"="+ sn.getPartNo())); Map<String, List<MesProductionRecord>> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() + MesExtConstWords.EQUAL + sn.getPartNo()));
for (Map.Entry<String, List<MesProductionRecord>> stringListEntry : mesProductionRecordListMap.entrySet()) { for (Map.Entry<String, List<MesProductionRecord>> stringListEntry : mesProductionRecordListMap.entrySet()) {
List<MesProductionRecord> value = stringListEntry.getValue(); List<MesProductionRecord> value = stringListEntry.getValue();
MesProductionRecord mesProductionRecord = value.get(0); MesProductionRecord mesProductionRecord = value.get(0);
String[] split = stringListEntry.getKey().split("="); String[] split = stringListEntry.getKey().split(MesExtConstWords.EQUAL);
String workCenterCode = split[0]; String workCenterCode = split[0];
String partNo = split[1]; String partNo = split[1];
//查询工作中心 //查询工作中心
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) { if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在",workCenterCode); MesException.throwMesBusiException("产线【%s】不存在",workCenterCode);
@ -1717,13 +1714,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setPartNo(partNo); item.setPartNo(partNo);
item.setWorkOrderType(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()); item.setWorkOrderType(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue());
item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue());
List<MesShift> collect = mesShiftList.stream().filter(s -> s.getShiftCode().equalsIgnoreCase("1")).collect(Collectors.toList()); List<MesShift> collect = mesShiftList.stream().filter(s -> s.getShiftCode().equalsIgnoreCase(MesExtConstWords.ONE_STR)).collect(Collectors.toList());
MesShift mesShift= collect.get(0); MesShift mesShift= collect.get(0);
item.setShiftCode(mesShift.getShiftCode()); item.setShiftCode(mesShift.getShiftCode());
item.setShiftCode(mesShift.getShiftName()); item.setShiftCode(mesShift.getShiftName());
String today = TimeTool.getToday(); String today = TimeTool.getToday();
item.setPlanStartTime(today+" "+mesShift.getStartTime()+":00"); item.setPlanStartTime(today + MesExtConstWords.ONE_SPACE + mesShift.getStartTime() + MesExtConstWords.APPEND_SECONDS);
item.setPlanEndTime(today+" "+mesShift.getEndTime()+":00"); item.setPlanEndTime(today + MesExtConstWords.ONE_SPACE + mesShift.getEndTime() + MesExtConstWords.APPEND_SECONDS);
//生成工单号 //生成工单号
List<String> orderList=new ArrayList<>(); List<String> orderList=new ArrayList<>();
@ -1733,7 +1730,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
String orderNo = orderList.get(0); String orderNo = orderList.get(0);
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean); DdlPreparedPack.getStringEqualPack(orderNo, MesExtConstWords.WORK_ORDER_NO, orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) { if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号流水码生成重复"); MesException.throwMesBusiException("单号流水码生成重复");
} }
@ -1798,7 +1795,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (!StringUtil.isEmpty(bean.getVinCode())) { if (!StringUtil.isEmpty(bean.getVinCode())) {
//校验vin号是否重复 //校验vin号是否重复
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getVinCode(), "vinCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(bean.getVinCode(), MesExtConstWords.VIN_CODE, ddlPackBean);
if (baseRDao.isExitByHql(ddlPackBean)) { if (baseRDao.isExitByHql(ddlPackBean)) {
MesException.throwMesBusiException("vin号【%s】重复", bean.getVinCode()); MesException.throwMesBusiException("vin号【%s】重复", bean.getVinCode());
} }
@ -1912,7 +1909,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
bean.setFid(UUID.randomUUID().toString()); bean.setFid(UUID.randomUUID().toString());
//生成WorkOrderSeq //生成WorkOrderSeq
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ); GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ);
List<String> resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel.organizeCode(bean.getOrganizeCode()), bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); List<String> resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel.organizeCode(bean.getOrganizeCode()), bean.getCreateUser(), bean.getOrganizeCode(), MesExtConstWords.ONE).getResultList();
bean.setWorkOrderSeq(resultList.get(0)); bean.setWorkOrderSeq(resultList.get(0));
baseRDao.insert(bean); baseRDao.insert(bean);
workOrderLogService.saveMesWorkOrderLog(bean,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,bean.getQty()); workOrderLogService.saveMesWorkOrderLog(bean,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,bean.getQty());
@ -1922,7 +1919,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//查询物料信息 //查询物料信息
DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode()); DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getPartNo(), "partNo", ddlPackBeanPart); DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getPartNo(), MesExtConstWords.PART_NO, ddlPackBeanPart);
MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart); MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart);
if (null == mesPart) { if (null == mesPart) {
MesException.throwMesBusiException("物料【%s】信息不存在", mesWorkOrderDb.getPartNo()); MesException.throwMesBusiException("物料【%s】信息不存在", mesWorkOrderDb.getPartNo());
@ -1930,7 +1927,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//查询产线信息 //查询产线信息
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getWorkCenterCode(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) { if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode()); MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode());
@ -1989,7 +1986,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
log.info("工厂:{}不存在未推送的工单", organizeCode); log.info("工厂:{}不存在未推送的工单", organizeCode);
} }
//获取物料信息 //获取物料信息
Map<String, MesPart> partMap = BeanMapUtilsExt.getBeanMap(mesPartRDao, "partNo", organizeCode, mesWorkOrderListToWms.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), "物料信息"); Map<String, MesPart> partMap = BeanMapUtilsExt.getBeanMap(mesPartRDao, MesExtConstWords.PART_NO, organizeCode, mesWorkOrderListToWms.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), "物料信息");
// 根据零件加生产版本分组 // 根据零件加生产版本分组
Map<String, List<MesWorkOrder>> mesWorkOrderListToWmsMap = mesWorkOrderListToWms.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).toString())); Map<String, List<MesWorkOrder>> mesWorkOrderListToWmsMap = mesWorkOrderListToWms.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).toString()));
@ -2037,7 +2034,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} else { } else {
DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean);
} }
baseRDao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "syncToWms"}, new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.VALID}, packBean); baseRDao.updateByPropertiesNoSync(
new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.SYNC_TO_WMS},
new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.VALID}, packBean);
} }
public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) { public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) {
@ -2048,9 +2047,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private List<MesWorkOrder> getMesWorkOrderListToWms(String organizeCode, Integer pageSize) { private List<MesWorkOrder> getMesWorkOrderListToWms(String organizeCode, Integer pageSize) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), "workOrderStatus", packBean); DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), MesExtConstWords.WORK_ORDER_STATUS, packBean);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.FALSE, "syncToWms", packBean); DdlPreparedPack.getNumEqualPack(CommonEnumUtil.FALSE, MesExtConstWords.SYNC_TO_WMS, packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesExtConstWords.CREATE_DATE_TIME}, packBean);
return baseRDao.findByHqlTopWhere(packBean, StringUtil.isEmpty(pageSize) ? MesExtConstWords.TEN : pageSize); return baseRDao.findByHqlTopWhere(packBean, StringUtil.isEmpty(pageSize) ? MesExtConstWords.TEN : pageSize);
} }
@ -2120,11 +2119,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
public List<MesBom> findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) { public List<MesBom> findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, ddlPackBean);
DdlPreparedPack.getStringEqualPack(bomVersion, "bomVersion", ddlPackBean); DdlPreparedPack.getStringEqualPack(bomVersion, MesExtConstWords.BOM_VERSION, ddlPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "effStartTime", ddlPackBean); DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_START_TIME, ddlPackBean);
DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), "effEndTime", ddlPackBean); DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_END_TIME, ddlPackBean);
DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean); DdlPreparedPack.getOrderBy(MesExtConstWords.EFF_START_TIME, CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean);
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean); List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) { if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) {
MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion); MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion);
@ -2137,8 +2136,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private boolean checkWorkCenterPartRelation(String workCenterCode,String partNo){ private boolean checkWorkCenterPartRelation(String workCenterCode,String partNo){
DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode()); DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode", partRelationPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode,MesExtConstWords.WORK_CENTER_CODE, partRelationPackBean);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", partRelationPackBean); DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, partRelationPackBean);
int count = partRelationRao.findByHqlWhereCount(partRelationPackBean); int count = partRelationRao.findByHqlWhereCount(partRelationPackBean);
return count > 0; return count > 0;
} }
@ -2150,7 +2149,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
String prefix = partNo.substring(0, partNo.length() - 4); String prefix = partNo.substring(0, partNo.length() - 4);
String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase(); String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase();
custGenSerialNoModel.setPartNo(prefix+partNo4); custGenSerialNoModel.setPartNo(prefix+partNo4);
String year = custCalendar.get(Calendar.YEAR)+""; String year = custCalendar.get(Calendar.YEAR)+ MesExtConstWords.EMPTY;
custGenSerialNoModel.setYear(year.substring(2)); custGenSerialNoModel.setYear(year.substring(2));
custGenSerialNoModel.setDay(String.format("%03d",custCalendar.get(Calendar.DAY_OF_YEAR))); custGenSerialNoModel.setDay(String.format("%03d",custCalendar.get(Calendar.DAY_OF_YEAR)));
List<String> custNumRuleList = syncFuncService.syncSerialNo(custGenSerialNoModel, userName, organizeCode, 1).getResultList(); List<String> custNumRuleList = syncFuncService.syncSerialNo(custGenSerialNoModel, userName, organizeCode, 1).getResultList();
@ -2217,20 +2216,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
* 3. * 3.
*/ */
DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", partPtrPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, partPtrPackBean);
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", partPtrPackBean); DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.SRC_PART_NO, partPtrPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", partPtrPackBean); DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.START_TIME, partPtrPackBean);
List<MesPartPtr> partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean); List<MesPartPtr> partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean);
/** /**
* *
*/ */
DdlPackBean part1PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean part1PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part1PtrPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, part1PtrPackBean);
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part1PtrPackBean); DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.SRC_PART_NO, part1PtrPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part1PtrPackBean); DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.START_TIME, part1PtrPackBean);
DdlPreparedPack.getIsNotNull("prtVehicleCount", part1PtrPackBean); DdlPreparedPack.getIsNotNull(MesExtConstWords.PRT_VEHICLE_COUNT, part1PtrPackBean);
DdlPreparedPack.getIsNull("endTime", part1PtrPackBean); DdlPreparedPack.getIsNull(MesExtConstWords.END_TIME, part1PtrPackBean);
List<MesPartPtr> partPtrList1 = partPtrRao.findByHqlWhere(part1PtrPackBean); List<MesPartPtr> partPtrList1 = partPtrRao.findByHqlWhere(part1PtrPackBean);
partPtrList.addAll(partPtrList1); partPtrList.addAll(partPtrList1);
@ -2242,11 +2241,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
*/ */
DdlPackBean part2PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean part2PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part2PtrPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, part2PtrPackBean);
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part2PtrPackBean); DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.SRC_PART_NO, part2PtrPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part2PtrPackBean); DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.START_TIME, part2PtrPackBean);
DdlPreparedPack.getIsNull("prtVehicleCount", part2PtrPackBean); DdlPreparedPack.getIsNull(MesExtConstWords.PRT_VEHICLE_COUNT, part2PtrPackBean);
DdlPreparedPack.getIsNull("endTime", part2PtrPackBean); DdlPreparedPack.getIsNull(MesExtConstWords.END_TIME, part2PtrPackBean);
List<MesPartPtr> partPtrList2 = partPtrRao.findByHqlWhere(part2PtrPackBean); List<MesPartPtr> partPtrList2 = partPtrRao.findByHqlWhere(part2PtrPackBean);
partPtrList.addAll(partPtrList2); partPtrList.addAll(partPtrList2);
return partPtrList; return partPtrList;
@ -2257,7 +2256,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return null; return null;
} }
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, packBean);
return mesPartProdGroupRDao.getByProperty(packBean); return mesPartProdGroupRDao.getByProperty(packBean);
} }
@ -2267,8 +2266,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
List<MesWorkOrderAssembly> workOrderAssemblyList = new ArrayList<>(); List<MesWorkOrderAssembly> workOrderAssemblyList = new ArrayList<>();
List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
DdlPackBean prodRuleSortPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean prodRuleSortPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", prodRuleSortPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, prodRuleSortPackBean);
DdlPreparedPack.getInPackList(partNoList, "assemblyPartNo", prodRuleSortPackBean); DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.ASSEMBLY_PART_NO, prodRuleSortPackBean);
//查询当前产线的所有排序生产规则--分为当前工单清单的装配件 //查询当前产线的所有排序生产规则--分为当前工单清单的装配件
List<MesProdRuleSortCfg> sortCfgList = mesProdRuleSortCfgRao.findByHqlWhere(prodRuleSortPackBean); List<MesProdRuleSortCfg> sortCfgList = mesProdRuleSortCfgRao.findByHqlWhere(prodRuleSortPackBean);
List<MesProdRuleSortCfg> sortCfgListFilter = sortCfgList.stream().filter(item -> partNoList.contains(item.getAssemblyPartNo())).collect(Collectors.toList()); List<MesProdRuleSortCfg> sortCfgListFilter = sortCfgList.stream().filter(item -> partNoList.contains(item.getAssemblyPartNo())).collect(Collectors.toList());
@ -2328,9 +2327,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//车型不为空的逻辑--用于报工 //车型不为空的逻辑--用于报工
DdlPackBean reportRuleSortPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean reportRuleSortPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", reportRuleSortPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, reportRuleSortPackBean);
DdlPreparedPack.getStringEqualPack(vehicleNo, "vehicleNo", reportRuleSortPackBean); DdlPreparedPack.getStringEqualPack(vehicleNo, MesExtConstWords.VEHICLE_NO, reportRuleSortPackBean);
DdlPreparedPack.getNotInPackList(partNoList, "assemblyPartNo", reportRuleSortPackBean); DdlPreparedPack.getNotInPackList(partNoList, MesExtConstWords.ASSEMBLY_PART_NO, reportRuleSortPackBean);
//查询当前产线的所有排序生产规则--分为当前工单清单的装配件 //查询当前产线的所有排序生产规则--分为当前工单清单的装配件
List<MesProdRuleSortCfg> prodCfgList = mesProdRuleSortCfgRao.findByHqlWhere(reportRuleSortPackBean); List<MesProdRuleSortCfg> prodCfgList = mesProdRuleSortCfgRao.findByHqlWhere(reportRuleSortPackBean);
for (MesProdRuleSortCfg ruleSortCfg : prodCfgList) { for (MesProdRuleSortCfg ruleSortCfg : prodCfgList) {
@ -2370,8 +2369,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
//查询所有共用的零件 且没有零件号,多用于螺钉---查询排序加工规则 //查询所有共用的零件 且没有零件号,多用于螺钉---查询排序加工规则
DdlPackBean prodRuleSortPublicPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean prodRuleSortPublicPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", prodRuleSortPublicPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, prodRuleSortPublicPackBean);
DdlPreparedPack.getIsNull("assemblyPartNo", prodRuleSortPublicPackBean); DdlPreparedPack.getIsNull(MesExtConstWords.ASSEMBLY_PART_NO, prodRuleSortPublicPackBean);
List<MesProdRuleSortCfg> ruleSortCfgs = mesProdRuleSortCfgRao.findByHqlWhere(prodRuleSortPublicPackBean); List<MesProdRuleSortCfg> ruleSortCfgs = mesProdRuleSortCfgRao.findByHqlWhere(prodRuleSortPublicPackBean);
for (MesProdRuleSortCfg ruleSortCfg : ruleSortCfgs) { for (MesProdRuleSortCfg ruleSortCfg : ruleSortCfgs) {
MesWorkOrderAssembly orderAssembly = new MesWorkOrderAssembly(); MesWorkOrderAssembly orderAssembly = new MesWorkOrderAssembly();
@ -2525,31 +2524,46 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
} }
public List<MesQueueOrder> findMesQueueOrder(String workOrderNo, String organizeCode) { private List<MesQueueOrder> findMesQueueOrder(String workOrderNo, String organizeCode) {
if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null; if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", packBean); DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean);
return queueOrderRao.findByHqlWhere(packBean); return queueOrderRao.findByHqlWhere(packBean);
} }
public void closeMesQueueOrder(String workOrderNo, String organizeCode, String userName) { private void closeMesQueueOrder(String workOrderNo, String organizeCode, String userName) {
if (StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue(), MesExtConstWords.STATUS, packBean);
queueOrderRao.updateByProperties(
new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.STATUS},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.QUEUE_ORDER_STATUS.CLOSED.getValue()}, packBean);
}
private void closeMesPullingOrderInfo(String workOrderNo, String organizeCode, String userName) {
if (StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return; if (StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", packBean); DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean);
queueOrderRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status"}, new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.QUEUE_ORDER_STATUS.CLOSED.getValue()}, packBean); DdlPreparedPack.getInPackList(
Stream.of(MesExtEnumUtil.PART_PULL_ORDER_TYPE.JIS_PULL.getValue(), MesExtEnumUtil.PART_PULL_ORDER_TYPE.SPS_PULL.getValue()).collect(Collectors.toList()),
MesExtConstWords.PULL_ORDER_TYPE, packBean);
pullingOrderInfoRepository.updateByProperties(
new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.PULL_ORDER_STATUS},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.PULL_ORDER_STATUS.PULL_ORDER_STATUS_50.getValue()}, packBean);
} }
public MesPrintQueue getMesPrintQuanOrder(String workOrderNo, String organizeCode) { private MesPrintQueue getMesPrintQuanOrder(String workOrderNo, String organizeCode) {
if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null; if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", packBean); DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean);
return printQueueRepository.getByProperty(packBean); return printQueueRepository.getByProperty(packBean);
} }
private Long getMaxMesWorkOrderProductSeq(MesWorkOrder bean) { private Long getMaxMesWorkOrderProductSeq(MesWorkOrder bean) {
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), "workOrderType", orderPackBean); DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, orderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"productSeq"}, orderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesExtConstWords.PRODUCT_SEQ}, orderPackBean);
MesWorkOrder workOrder = baseRDao.getByProperty(orderPackBean); MesWorkOrder workOrder = baseRDao.getByProperty(orderPackBean);
return Objects.isNull(workOrder) || StringUtils.isEmpty(workOrder.getProductSeq()) ? 0L : workOrder.getProductSeq().toString().endsWith("9") ? workOrder.getProductSeq() + 2L : workOrder.getProductSeq() + 1L; return Objects.isNull(workOrder) || StringUtils.isEmpty(workOrder.getProductSeq()) ? 0L : workOrder.getProductSeq().toString().endsWith("9") ? workOrder.getProductSeq() + 2L : workOrder.getProductSeq() + 1L;
} }
@ -2572,13 +2586,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private String getCarRemark(String custCode,String carModelCode,String organizeCode){ private String getCarRemark(String custCode,String carModelCode,String organizeCode){
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(custCode,"custCode",ddlPackBean); DdlPreparedPack.getStringEqualPack(custCode, MesExtConstWords.CUST_CODE, ddlPackBean);
DdlPreparedPack.getStringEqualPack(carModelCode,"carModelCode",ddlPackBean); DdlPreparedPack.getStringEqualPack(carModelCode,MesExtConstWords.CAR_MODEL_CODE, ddlPackBean);
List<MesCustomerCarModel> carModelList = customerCarModelRepository.findByHqlTopWhere(ddlPackBean, 1); List<MesCustomerCarModel> carModelList = customerCarModelRepository.findByHqlTopWhere(ddlPackBean, 1);
if (carModelList != null && !carModelList.isEmpty()){ if (carModelList != null && !carModelList.isEmpty()){
return carModelList.get(0).getRemark(); return carModelList.get(0).getRemark();
} }
return ""; return MesExtConstWords.EMPTY;
} }
} }

@ -151,6 +151,46 @@ public class MesExtConstWords {
public static final String ASSEMBLY_PART_NO = "assemblyPartNo"; public static final String ASSEMBLY_PART_NO = "assemblyPartNo";
//装配件零件名称 //装配件零件名称
public static final String ASSEMBLY_PART_NAME = "assemblyPartName"; public static final String ASSEMBLY_PART_NAME = "assemblyPartName";
//生产序号
public static final String PRODUCT_SEQ = "productSeq";
//ERP物料号
public static final String ERP_PART_NO = "erpPartNo";
//计划开始时间
public static final String PLAN_START_TIME = "planStartTime";
//计划结束时间
public static final String PLAN_END_TIME = "planEndTime";
//执行开始日期
public static final String BEGIN_DATE = "beginDate";
//执行结束日期
public static final String END_DATE = "endDate";
//ptr零件id
public static final String PTR_ID = "ptrId";
//总成零件号
public static final String TOTAL_PART_NO = "totalPartNo";
//汇报零件号
public static final String REPORT_PART_NO = "reportPartNo";
//汇报状态
public static final String REPORT_STATUS = "reportStatus";
//完成时间
public static final String COMPLETE_DATE_TIME = "completeDateTime";
//是否同步给WMS
public static final String SYNC_TO_WMS = "syncToWms";
//BOM版本
public static final String BOM_VERSION = "bomVersion";
//生效时间
public static final String EFF_START_TIME = "effStartTime";
//失效时间
public static final String EFF_END_TIME = "effEndTime";
//原零件号
public static final String SRC_PART_NO = "srcPartNo";
//PTR车辆数量
public static final String PRT_VEHICLE_COUNT = "prtVehicleCount";
//车型代码
public static final String VEHICLE_NO = "vehicleNo";
//拉动单类型
public static final String PULL_ORDER_TYPE = "pullOrderType";
//拉动单状态
public static final String PULL_ORDER_STATUS = "pullOrderStatus";
//时间[开始/结束]条件 //时间[开始/结束]条件
public static final String START_TIME_START = "startTimeStart"; public static final String START_TIME_START = "startTimeStart";
@ -210,6 +250,8 @@ public class MesExtConstWords {
public static final String APPEND_ZERO_HMS = " 00:00:00"; public static final String APPEND_ZERO_HMS = " 00:00:00";
//拼接23时:59分:59秒 //拼接23时:59分:59秒
public static final String APPEND_24_HMS = " 23:59:59"; public static final String APPEND_24_HMS = " 23:59:59";
//拼接23时:59分:59秒
public static final String APPEND_8_HMS = " 08:00:00";
//时间类型 //时间类型
public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
//时间类型 //时间类型
@ -239,6 +281,9 @@ public class MesExtConstWords {
//系统同步状态 //系统同步状态
public static final String SYSTEM_SYNC_STATUS = "systemSyncStatus"; public static final String SYSTEM_SYNC_STATUS = "systemSyncStatus";
//等于
public static final String EQUAL = "=";
//英文逗号 //英文逗号
public static final String COMMA = ","; public static final String COMMA = ",";

Loading…
Cancel
Save