增加查询条件

tags/yfai-mes-ext-v1.0
LML丶 1 year ago
parent 4df13450e1
commit afa9baef86

@ -2,14 +2,18 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -23,20 +27,44 @@ import java.util.List;
public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements IMesWorkOrderService {
@Autowired
private MesWorkOrderLogService workOrderLogService;
@Autowired
private ISyncFuncService syncFuncService;
@Override
public MesWorkOrder insert(MesWorkOrder bean) {
//插入前构造数据
onInsertBean(bean);
//获取相同类型 相同标识 生产序号最大值的
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", orderPackBean);
DdlPreparedPack.getNumEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"produceSeq"}, orderPackBean);
MesWorkOrder result = baseRDao.getByProperty(orderPackBean);
GenSerialNoModel genSerialNoModel = new GenSerialNoModel();
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
Integer produceSeq = 0;
if (result.getProduceSeq() != null) {
produceSeq = result.getProduceSeq();
}
List<MesWorkOrder> sortWorkOrderList = new ArrayList<>();
List<MesWorkOrderLog> orderLogList = new ArrayList<>();
for (int i = 0; i < bean.getSortInsertOrderQty(); i++) {
//生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT");
genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), bean.getOrganizeCode(), 1).getResultList();
MesWorkOrder copyMesWorkOrder = new MesWorkOrder();
BeanUtils.copyProperties(bean, copyMesWorkOrder);
copyMesWorkOrder.setProduceSeq(produceSeq + i + 1);
copyMesWorkOrder.setQty(1D);
copyMesWorkOrder.setOrderNo(resultList.get(0));
ConvertBean.serviceModelInitialize(copyMesWorkOrder, AuthUtil.getSessionUser().getUserName());
sortWorkOrderList.add(copyMesWorkOrder);
@ -47,9 +75,28 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
insertBatch(sortWorkOrderList);
workOrderLogService.insertBatch(orderLogList);
return bean;
} else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
//生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_UN_SORT");
} else {
//生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO");
Integer produceSeq = 0;
if (result.getProduceSeq() != null) {
produceSeq = result.getProduceSeq();
}
bean.setProduceSeq(produceSeq + 1);
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO_SEQ");
orderSeqSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), bean.getOrganizeCode(), 1).getResultList();
bean.setOrderSeq(Integer.parseInt(resultList.get(0)));
}
genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), bean.getOrganizeCode(), 1).getResultList();
bean.setOrderNo(resultList.get(0));
bean.setQty(bean.getSortInsertOrderQty().doubleValue());
ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName());
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
@ -64,8 +111,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//插入前构造数据
onInsertBean(bean);
MesWorkOrder result = baseRDao.getById(bean.getId());
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
if (result.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail(String.format("工单类型为【%s】 不需要修改数量", MesExtEnumUtil.ORDER_TYPE.SORT.getValue()))
@ -73,14 +121,14 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
.build();
}
bean.setQty(bean.getSortInsertOrderQty().doubleValue());
result.setQty(bean.getSortInsertOrderQty().doubleValue());
ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName());
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
BeanUtils.copyProperties(bean, workOrderLog, "id");
BeanUtils.copyProperties(result, workOrderLog, "id");
workOrderLogService.insert(workOrderLog);
bean = baseRDao.insert(bean);
baseRDao.update(result);
return bean;
}
@ -90,6 +138,45 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
protected void onInsertBean(MesWorkOrder item) {
// 数据校验
ValidatorBean.checkNotNull(item.getWorkOrderType(), "工单类型不能为空");
ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
//校验标识
//若工单类型为排序
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
//若工单类型为排序 标识为 N E P S
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识",
item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getDescription()
, MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getDescription()))
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
}
} else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】 标识",
item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription()))
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
}
}
}
protected void onUpdateBean(MesWorkOrder item) {

@ -214,6 +214,44 @@ public class MesExtEnumUtil {
return this.description;
}
}
/**
*
*/
@JsonFormat(
shape = JsonFormat.Shape.OBJECT
)
public static enum SHIPPING_ORDER_DETAIL_SHIPPING_STATUS {
PUBLISHED(10, "Published"),
SORT_SHIPPING(20, "Shippinged");
private int value;
private String description;
private SHIPPING_ORDER_DETAIL_SHIPPING_STATUS(int value, String description) {
this.value = value;
this.description = description;
}
public static String valueOfDescription(int val) {
String tmp = null;
for (int i = 0; i < values().length; ++i) {
if (values()[i].value == val) {
tmp = values()[i].description;
}
}
return tmp;
}
public int getValue() {
return this.value;
}
public String getDescription() {
return this.description;
}
}
/**
*

Loading…
Cancel
Save