|
|
|
@ -3,9 +3,9 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.api.base.IMesPartService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
|
|
|
|
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
|
|
|
|
|
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
@ -19,9 +19,12 @@ 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.util.DateUtilExt;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ResultBean;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
@ -29,9 +32,7 @@ import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
@ -43,8 +44,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
@Autowired
|
|
|
|
|
private ISyncFuncService syncFuncService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesWorkOrderToSapService iMesWorkOrderToSapService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesPartService iMesPartService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesProductVersionRepository mesProductVersionRDao;
|
|
|
|
@ -83,7 +82,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//生成工单号
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT");
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_SORT);
|
|
|
|
|
genSerialNoModel.setPartNo(bean.getPartNo());
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
|
|
|
|
|
|
|
|
|
@ -100,22 +99,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
baseRDao.insert(copyMesWorkOrder);
|
|
|
|
|
workOrderLogService.insert(workOrderLog);
|
|
|
|
|
//写入SAP下发计划表
|
|
|
|
|
saveMesProductPlan(bean);
|
|
|
|
|
//写入接口表
|
|
|
|
|
//iMesWorkOrderToSapService.insert(bean);
|
|
|
|
|
saveMesProductPlan(bean, true, false);
|
|
|
|
|
return bean;
|
|
|
|
|
} else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
|
|
|
|
|
//生成工单号
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_UN_SORT");
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_UN_SORT);
|
|
|
|
|
} else {
|
|
|
|
|
//生成工单号
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO");
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO);
|
|
|
|
|
Integer produceSeq = 0;
|
|
|
|
|
if (null != result && result.getProduceSeq() != null) {
|
|
|
|
|
produceSeq = result.getProduceSeq();
|
|
|
|
|
}
|
|
|
|
|
bean.setProduceSeq(produceSeq + 1);
|
|
|
|
|
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO_SEQ");
|
|
|
|
|
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ);
|
|
|
|
|
orderSeqSerialNoModel.setPartNo(bean.getPartNo());
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
|
|
|
|
|
bean.setWorkOrderSeq(resultList.get(0));
|
|
|
|
@ -133,11 +130,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
workOrderLogService.insert(workOrderLog);
|
|
|
|
|
bean = baseRDao.insert(bean);
|
|
|
|
|
//写入SAP下发计划表
|
|
|
|
|
saveMesProductPlan(bean);
|
|
|
|
|
saveMesProductPlan(bean, true, false);
|
|
|
|
|
return bean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void saveMesProductPlan(MesWorkOrder bean) {
|
|
|
|
|
private void saveMesProductPlan(MesWorkOrder bean, boolean isInsert, boolean isReport) {
|
|
|
|
|
if (StringUtil.isEmpty(bean.getPlanOrderNo())) {
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "planPartNo", ddlPackBean);
|
|
|
|
@ -149,19 +146,29 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
mesPlanOrder.setPlanOrderNo("");
|
|
|
|
|
mesPlanOrder.setPlanQty(bean.getQty());
|
|
|
|
|
mesPlanOrder.setPlanPartNo(bean.getPartNo());
|
|
|
|
|
mesPlanOrder.setCompleteQty(bean.getQty());
|
|
|
|
|
mesPlanOrder.setUncompleteQty(0d);
|
|
|
|
|
mesPlanOrder.setCompleteQty(0d);
|
|
|
|
|
mesPlanOrder.setUncompleteQty(bean.getQty());
|
|
|
|
|
mesPlanOrder.setUnit(bean.getUnit());
|
|
|
|
|
mesPlanOrder.setPlanStartDate(bean.getPlanStartTime());
|
|
|
|
|
mesPlanOrder.setPlanEndDate(bean.getPlanEndTime());
|
|
|
|
|
mesPlanOrder.setPartMappingWorkCenterCode(bean.getWorkCenterCode());
|
|
|
|
|
mesPlanOrder.setPartMappingWorkCenterCode(bean.getErpWorkCenter());
|
|
|
|
|
mesPlanOrder.setPlanOrganizeCode(bean.getOrganizeCode());
|
|
|
|
|
mesPlanOrder.setOrganizeCode(bean.getOrganizeCode());
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesPlanOrder, bean.getCreateUser());
|
|
|
|
|
mesProductPlanRDao.insert(mesPlanOrder);
|
|
|
|
|
} else {
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty()));
|
|
|
|
|
mesProductPlan.setPlanQty(mesProductPlan.getCompleteQty());
|
|
|
|
|
if (isInsert) {
|
|
|
|
|
mesProductPlan.setPlanQty(MathOperation.add(mesProductPlan.getPlanQty(), bean.getQty()));
|
|
|
|
|
} else {
|
|
|
|
|
//报工
|
|
|
|
|
if (isReport) {
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum()));
|
|
|
|
|
//报工调整
|
|
|
|
|
} else {
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty()));
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
|
|
|
|
|
mesProductPlanRDao.update(mesProductPlan);
|
|
|
|
|
}
|
|
|
|
@ -173,21 +180,26 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
if (null == mesProductPlan) {
|
|
|
|
|
MesException.throwMesBusiException("SAP计划单号【%s】物料【%s】,不存在", bean.getPlanOrderNo(), bean.getPartNo());
|
|
|
|
|
}
|
|
|
|
|
if (!isInsert) {
|
|
|
|
|
if (Objects.isNull(mesProductPlan.getCompleteQty())) {
|
|
|
|
|
mesProductPlan.setCompleteQty(0d);
|
|
|
|
|
}
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty()));
|
|
|
|
|
//报工
|
|
|
|
|
if (isReport) {
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum()));
|
|
|
|
|
//报工调整
|
|
|
|
|
} else {
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum()));
|
|
|
|
|
}
|
|
|
|
|
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty()));
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
|
|
|
|
|
mesProductPlanRDao.update(mesProductPlan);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesWorkOrder update(MesWorkOrder bean) {
|
|
|
|
|
//回传sap
|
|
|
|
|
boolean sendToSap = false;
|
|
|
|
|
|
|
|
|
|
MesWorkOrder result = baseRDao.getById(bean.getId());
|
|
|
|
|
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
|
|
|
|
|
if (result.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
|
|
|
|
@ -201,14 +213,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
MesException.throwMesBusiException(String.format("工单数量不能小于工单源数量【%s】",
|
|
|
|
|
result.getQty()));
|
|
|
|
|
}
|
|
|
|
|
//修改状态或者指令下发需要传给SAP
|
|
|
|
|
if (!Objects.equals(bean.getQty(), result.getQty())) {
|
|
|
|
|
sendToSap = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus() ||
|
|
|
|
|
MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() == bean.getWorkOrderStatus()) {
|
|
|
|
|
sendToSap = true;
|
|
|
|
|
}
|
|
|
|
|
//在加工的工单不能修改物料信息
|
|
|
|
|
if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.process.getValue()) {
|
|
|
|
@ -244,21 +248,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
|
|
|
|
|
BeanUtils.copyProperties(result, workOrderLog, "id");
|
|
|
|
|
workOrderLogService.insert(workOrderLog);
|
|
|
|
|
//关闭工单
|
|
|
|
|
if (MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus()) {
|
|
|
|
|
bean.setQty(0d);
|
|
|
|
|
sendToSap = true;
|
|
|
|
|
}
|
|
|
|
|
//发送给SAP
|
|
|
|
|
if (sendToSap) {
|
|
|
|
|
//iMesWorkOrderToSapService.insert(bean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
baseRDao.update(result);
|
|
|
|
|
return bean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) {
|
|
|
|
|
DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), "workOrderNo", packBean);
|
|
|
|
|
DdlPreparedPack.getStringLikerPack(bean.getPartNameRdd(), "partNameRdd", packBean);
|
|
|
|
@ -274,9 +270,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(), "planStartTime", packBean);
|
|
|
|
|
DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(), "planEndTime", packBean);
|
|
|
|
|
DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean);
|
|
|
|
|
packBean.setOrderByStr(" order by createDatetime desc ");
|
|
|
|
|
packBean.setOrderByStr(" order by createDatetime desc,workOrderSeq desc ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onInsertBean(MesWorkOrder item) {
|
|
|
|
|
|
|
|
|
|
// 数据校验
|
|
|
|
@ -291,6 +288,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
if (Objects.isNull(mesWorkCenter)) {
|
|
|
|
|
MesException.throwMesBusiException("产线【%s】不存在", item.getWorkCenterCode());
|
|
|
|
|
}
|
|
|
|
|
item.setErpWorkCenter(mesWorkCenter.getErpWorkCenter());
|
|
|
|
|
//校验标识
|
|
|
|
|
//若工单类型为排序
|
|
|
|
|
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
|
|
|
|
@ -314,7 +312,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
packPlanTime(item);
|
|
|
|
|
}
|
|
|
|
|
//生产版本为空
|
|
|
|
|
if(Objects.isNull(item.getProductVersion())){
|
|
|
|
|
if (StringUtil.isEmpty(item.getProductVersion())) {
|
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
|
|
|
|
|
item.setProductVersion(mesProductVersion.getProductVersion());
|
|
|
|
|
}
|
|
|
|
@ -352,7 +350,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
|
|
|
|
|
//生产版本为空
|
|
|
|
|
if(Objects.isNull(item.getProductVersion())){
|
|
|
|
|
if (StringUtil.isEmpty(item.getProductVersion())) {
|
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
|
|
|
|
|
item.setProductVersion(mesProductVersion.getProductVersion());
|
|
|
|
|
}
|
|
|
|
@ -397,6 +395,16 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
DdlPackBean ddlPackBean;
|
|
|
|
|
ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
|
|
|
|
|
//工单导入:计划时间不能为当天之前日期
|
|
|
|
|
try {
|
|
|
|
|
if (DateUtilExt.compareDateTime(DateUtil.SHORT_FORMAT, item.getPlanDate(), TimeTool.getToday()) < 0) {
|
|
|
|
|
MesException.throwMesBusiException("导入工单计划日期不能小于今天");
|
|
|
|
|
}
|
|
|
|
|
}catch (ImppBusiException busExcep) {
|
|
|
|
|
MesException.throwMesBusiException(busExcep.getErrorDetail());
|
|
|
|
|
}catch (Exception e) {
|
|
|
|
|
MesException.throwMesBusiException("计划日期格式异常");
|
|
|
|
|
}
|
|
|
|
|
//查询班次信息
|
|
|
|
|
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
|
|
|
|
@ -410,7 +418,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime());
|
|
|
|
|
item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime());
|
|
|
|
|
try {
|
|
|
|
|
int windowStartEndTimeCompare = this.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
|
|
|
|
|
int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
|
|
|
|
|
if (windowStartEndTimeCompare > 0) {
|
|
|
|
|
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(), 1)));
|
|
|
|
|
}
|
|
|
|
@ -419,17 +427,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onUpdateBean(MesWorkOrder item) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int compareDateTime(String formatStr, String startTimeStr, String endTimeStr) throws Exception {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
|
|
|
|
|
Date startTime = sdf.parse(startTimeStr);
|
|
|
|
|
Date endTime = sdf.parse(endTimeStr);
|
|
|
|
|
return startTime.compareTo(endTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doProductReport(MesWorkOrder mesWorkOrder) {
|
|
|
|
|
//查询物料信息
|
|
|
|
@ -462,6 +464,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
//报工类型
|
|
|
|
|
if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) {
|
|
|
|
|
mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getReportedQty()));
|
|
|
|
|
//更新SAP计划完成数量
|
|
|
|
|
saveMesProductPlan(mesWorkOrder, false, true);
|
|
|
|
|
} else {
|
|
|
|
|
//冲销数量大于工单完成数量报错
|
|
|
|
|
if (mesWorkOrder.getNum() > mesWorkOrder.getReportedQty()) {
|
|
|
|
@ -472,6 +476,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getAdjustQty())));
|
|
|
|
|
//已汇报数量减一
|
|
|
|
|
mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrder.getNum()));
|
|
|
|
|
//更新SAP计划完成数量
|
|
|
|
|
saveMesProductPlan(mesWorkOrder, false, false);
|
|
|
|
|
}
|
|
|
|
|
//更新工单状态
|
|
|
|
|
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty());
|
|
|
|
@ -487,7 +493,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
update(mesWorkOrder);
|
|
|
|
|
|
|
|
|
|
//生成条码
|
|
|
|
|
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("REPORT_SN");
|
|
|
|
|
// todo
|
|
|
|
|
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.REPORT_SN);
|
|
|
|
|
genSerialNoModel.setPartNo(mesWorkOrder.getPartNo());
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getNum()).getResultList();
|
|
|
|
|
|
|
|
|
|