CBR报工逻辑调整

tags/yfai-mes-ext-v2.3
jun 8 months ago
parent 40f8093dd7
commit 6162899689

@ -1,6 +1,9 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description :
@ -11,5 +14,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine;
**/
public interface IMesProductOffLineService extends IBaseMesService<MesProductOffLine>{
@ApiOperation("查询报工数据")
List<MesProductOffLine> findMesProductOffLineByProductSn(String productSn, String organizeCode);
}

@ -171,7 +171,6 @@ public class MesWorkOrderController extends BaseMesController<MesWorkOrder> {
try {
ValidatorBean.checkNotNull(model.getOrganizeCode(),"工厂代码不能为空");
ValidatorBean.checkNotNull(model.getQty(),"数量不能为空");
ValidatorBean.checkNotNull(model.getSn(),"条码不能为空");
ValidatorBean.checkNotNull(model.getPartNo(),"零件号不能为空");
mesWorkOrderService.doReportWorkReversal(model);

@ -1,9 +1,15 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description :
* @Reference :
@ -14,4 +20,14 @@ import org.springframework.stereotype.Service;
@Service
public class MesProductOffLineServiceImpl extends BaseMesService<MesProductOffLine> implements IMesProductOffLineService {
@Override
public List<MesProductOffLine> findMesProductOffLineByProductSn(String productSn, String organizeCode) {
if(StringUtil.isEmpty(productSn) || StringUtil.isEmpty(organizeCode)){
return null;
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productSn,"reportSn",packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue(),"reportType",packBean);
return baseRDao.findByHqlWhere(packBean);
}
}

@ -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();
}

Loading…
Cancel
Save