|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.api.base.*;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
|
|
|
|
@ -929,7 +930,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
updateMesWorkOrder(mesWorkOrderDb,(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrder.getNum());
|
|
|
|
|
//试制单不报工
|
|
|
|
|
if(Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())){
|
|
|
|
|
String sn = getStringList(mesWorkOrder);
|
|
|
|
|
String sn = getStringList(mesWorkOrder.getOrganizeCode());
|
|
|
|
|
//保存数据
|
|
|
|
|
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
String nowTime = StringUtil.isEmpty(mesWorkOrder.getDescription())?TimeTool.getNowTime(true):mesWorkOrder.getDescription();
|
|
|
|
@ -993,7 +994,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
//物料+生产版本获取bom信息
|
|
|
|
|
List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
|
|
|
|
|
//生成条码
|
|
|
|
|
String sn = getStringList(mesWorkOrderNew);
|
|
|
|
|
String sn = getStringList(mesWorkOrderNew.getOrganizeCode());
|
|
|
|
|
//保存数据
|
|
|
|
|
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
List<MesMove> mesMoveList = new ArrayList<>();
|
|
|
|
@ -1101,15 +1102,22 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
public void doReportWorkReversal(WmsProductModel model) {
|
|
|
|
|
//查询物料信息
|
|
|
|
|
MesPart mesPart = iMesPartService.getPartByPartNo(model.getPartNo(), model.getOrganizeCode());
|
|
|
|
|
//获取生产版本
|
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(model);
|
|
|
|
|
//获取bom
|
|
|
|
|
List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
|
|
|
|
|
//保存数据
|
|
|
|
|
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
String nowTime = TimeTool.getNowTime(true);
|
|
|
|
|
for (MesBom mesBom : mesBoms) {
|
|
|
|
|
mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom,nowTime));
|
|
|
|
|
if (StringUtil.isEmpty(model.getSn())) {
|
|
|
|
|
//获取生产版本
|
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(model);
|
|
|
|
|
//获取bom
|
|
|
|
|
List<MesBom> mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
|
|
|
|
|
//生成流水码
|
|
|
|
|
model.setSn(getStringList(model.getOrganizeCode()));
|
|
|
|
|
for (MesBom mesBom : mesBoms) {
|
|
|
|
|
mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom, nowTime));
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//按照条码查询之前报工数据
|
|
|
|
|
mesProductOffLineList.addAll(getMesProductOffLineList(model, nowTime));
|
|
|
|
|
}
|
|
|
|
|
mesProductOffLineService.insertBatch(mesProductOffLineList);
|
|
|
|
|
}
|
|
|
|
@ -1152,6 +1160,25 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesProductOffLine> getMesProductOffLineList(WmsProductModel model, String nowTime) {
|
|
|
|
|
//查询报工数据
|
|
|
|
|
List<MesProductOffLine> oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByProductSn(model.getSn(), model.getOrganizeCode());
|
|
|
|
|
if (CollectionUtils.isEmpty(oldProductOffLineList)) {
|
|
|
|
|
MesException.throwMesBusiException("条码【%s】未查询到报工数据", model.getSn());
|
|
|
|
|
}
|
|
|
|
|
oldProductOffLineList.forEach(item -> {
|
|
|
|
|
item.setReportType(MesExtEnumUtil.REPORT_TYPE.CBR.getValue());
|
|
|
|
|
item.setOrderNo(model.getShipOrderNo());
|
|
|
|
|
item.setCustNo(model.getCustNo());
|
|
|
|
|
item.setCustOrder(model.getCustOrderNo());
|
|
|
|
|
item.setDescription(nowTime);
|
|
|
|
|
item.setSystemSyncStatus(CommonEnumUtil.FALSE);
|
|
|
|
|
item.setSystemSyncDatetime("");
|
|
|
|
|
ConvertBean.serviceModelInitialize(item, model.getUserName());
|
|
|
|
|
});
|
|
|
|
|
return oldProductOffLineList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesWorkOrder> getMesWorkOrderList(Long[] ids, String organizeCode) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getInPackArray(ids,"id",packBean);
|
|
|
|
@ -1281,9 +1308,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
return mesProdRuleSortCfg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String getStringList(MesWorkOrder mesWorkOrder) {
|
|
|
|
|
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.REPORT_SN);
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(mesWorkOrder.getOrganizeCode()), mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), 1).getResultList();
|
|
|
|
|
private String getStringList(String organizeCode) {
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(new GenSerialNoModel(MesCommonConstant.REPORT_SN).organizeCode(organizeCode), AuthUtilExt.getUserName(), organizeCode, 1).getResultList();
|
|
|
|
|
return resultList.iterator().next();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|