|
|
|
@ -25,7 +25,6 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.shipping.MesWorkOrderToWmsRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
|
|
|
|
import cn.hutool.core.date.DatePattern;
|
|
|
|
@ -33,7 +32,6 @@ import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.date.format.DateParser;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
@ -94,8 +92,6 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesWorkOrderLogRepository mesWorkOrderLogRepository;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesWorkOrderToWmsRepository mesWorkOrderToWmsRDao;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesShiftRepository mesShiftRepository;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesConfigService configService;
|
|
|
|
@ -190,6 +186,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
DdlPreparedPack.getStringLikerPack(workOrder.getWorkCenterCode(), "workCenterCode", packBean);
|
|
|
|
|
DdlPreparedPack.getStringLikerPack(workOrder.getWorkCellCode(), "workCellCode", packBean);
|
|
|
|
|
DdlPreparedPack.getStringLikerPack(workOrder.getWorkOrderNo(), "workOrderNo", packBean);
|
|
|
|
|
DdlPreparedPack.getStringLikerPack(workOrder.getPartNo(), "partNo", packBean);
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(workOrder.getWorkOrderStatus()))
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(workOrder.getWorkOrderStatus(), "workOrderStatus", packBean);
|
|
|
|
@ -815,20 +812,6 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
return df.format(cal.getTime()).substring(0, 10);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProductVersion getMesProductVersion(MesWorkOrder item, MesWorkCenter mesWorkCenter) {
|
|
|
|
|
DdlPackBean ddlPackBean;
|
|
|
|
|
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean);
|
|
|
|
|
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
|
|
|
|
|
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
|
|
|
|
|
if (Objects.isNull(mesProductVersion)) {
|
|
|
|
|
MesPcnException.throwMesBusiException("物料【%s】工作中心【%s】对应的生产版本信息不存在", item.getPartNo(),
|
|
|
|
|
mesWorkCenter.getErpWorkCenter());
|
|
|
|
|
}
|
|
|
|
|
return mesProductVersion;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode) {
|
|
|
|
|
|
|
|
|
@ -1211,7 +1194,6 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
|
|
|
|
|
//校验标识
|
|
|
|
|
//若工单类型为排序
|
|
|
|
|
List<MesWorkOrderToWms> saveMesWorkOrderToWms = new ArrayList<>();
|
|
|
|
|
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
|
|
|
|
|
//校验产线类型和工单类型是否匹配
|
|
|
|
|
if (!Objects.equals(mesWorkCenter.getCenterType(), MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue())) {
|
|
|
|
@ -1230,18 +1212,12 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
if (org.springframework.util.CollectionUtils.isEmpty(bomList)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
//发送工单信息给WMS
|
|
|
|
|
saveMesWorkOrderToWms.addAll(saveMesWorkOrderToWms(item, bomList));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
item.setFid(UUID.randomUUID().toString());
|
|
|
|
|
ConvertBean.serviceModelInitialize(item, userName);
|
|
|
|
|
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);
|
|
|
|
|
//保存发送WMS数据
|
|
|
|
|
if (CollectionUtils.isNotEmpty(saveMesWorkOrderToWms)) {
|
|
|
|
|
mesWorkOrderToWmsRDao.saveAll(saveMesWorkOrderToWms);
|
|
|
|
|
}
|
|
|
|
|
saveMesWorkOrderLog(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT.getValue(),item.getQty());
|
|
|
|
|
mesWorkOrderList.add(mesWorkOrder);
|
|
|
|
|
}
|
|
|
|
@ -1249,36 +1225,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
return mesWorkOrderList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void deleteUnSortOrder(String organizeCode, List<String> partNoList) {
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getInPackList(partNoList, "partNo", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean);
|
|
|
|
|
workOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus"},
|
|
|
|
|
new Object[]{"CLOSE_JOB", TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()}, ddlPackBean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<MesWorkOrderToWms> saveMesWorkOrderToWms(MesWorkOrder mesWorkOrder, List<MesBom> mesBomList) {
|
|
|
|
|
List<MesWorkOrderToWms> mesWorkOrderToWmsList = new ArrayList<>();
|
|
|
|
|
MesWorkOrderToWms mesWorkOrderToWms = null;
|
|
|
|
|
for (MesBom mesBom : mesBomList) {
|
|
|
|
|
mesWorkOrderToWms = new MesWorkOrderToWms();
|
|
|
|
|
BeanUtils.copyProperties(mesWorkOrder, mesWorkOrderToWms, "id");
|
|
|
|
|
mesWorkOrderToWms.setUnit(mesBom.getUnit());
|
|
|
|
|
mesWorkOrderToWms.setItemPartNo(mesBom.getItemPartNo());
|
|
|
|
|
mesWorkOrderToWms.setItemPartName(mesBom.getItemPartName());
|
|
|
|
|
mesWorkOrderToWms.setItemUnit(mesBom.getItemUnit());
|
|
|
|
|
mesWorkOrderToWms.setItemQty(MathOperation.mul(mesWorkOrder.getQty(), mesBom.getItemQty()));
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesWorkOrderToWms, mesWorkOrderToWms.getCreateUser());
|
|
|
|
|
mesWorkOrderToWmsList.add(mesWorkOrderToWms);
|
|
|
|
|
}
|
|
|
|
|
return mesWorkOrderToWmsList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProductVersion checkMesProductVersion(MesWorkOrder item) {
|
|
|
|
|
DdlPackBean ddlPackBean;
|
|
|
|
|
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getErpWorkCenter(), "workCenterCode", ddlPackBean);
|
|
|
|
|
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
|
|
|
|
|