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