工步开发

tags/yfai-pcn-ext-v1.0
微笑着面对明天 12 months ago
parent 129d37e376
commit 9b30b12a00

@ -68,7 +68,7 @@ public class MesInputDefectRecordController {
try { try {
if (StringUtils.isEmpty(model.getSn()) && if (StringUtils.isEmpty(model.getSn()) &&
(StringUtils.isEmpty(model.getPartNo()) || StringUtils.isEmpty(model.getLot()) || StringUtils.isEmpty(model.getQty()) || model.getQty() == 0)) { (StringUtils.isEmpty(model.getPartNo()) || StringUtils.isEmpty(model.getLotNo()) || StringUtils.isEmpty(model.getQty()) || model.getQty() == 0)) {
throw new ImppBusiException("条码为空或零件号+批次+数量为空"); throw new ImppBusiException("条码为空或零件号+批次+数量为空");
} }

@ -18,6 +18,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@ -82,7 +83,9 @@ public class MesReworkTaskController {
@ApiOperation(value = "装配件查询") @ApiOperation(value = "装配件查询")
public ResultBean assemblyQuery(MesReworkTaskRequestModel requestModel) { public ResultBean assemblyQuery(MesReworkTaskRequestModel requestModel) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(requestModel.getCustSn(), "客户条码不能为空"); if (StringUtils.isEmpty(requestModel.getCustSn())) {
ResultBean.success("返工成功").setResultObject(null);
}
/*ValidatorBean.checkNotNull(requestModel.getPartNo(), "零件号不能为空");*/ /*ValidatorBean.checkNotNull(requestModel.getPartNo(), "零件号不能为空");*/
try { try {
List<MesProductionAssembly> mesProductionRecords = mesReworkTaskService.assemblyQuery(requestModel); List<MesProductionAssembly> mesProductionRecords = mesReworkTaskService.assemblyQuery(requestModel);
@ -117,7 +120,7 @@ public class MesReworkTaskController {
@ApiOperation(value = "返工成功") @ApiOperation(value = "返工成功")
public ResultBean reworkSuccess(MesReworkTaskRequestModel requestModel) { public ResultBean reworkSuccess(MesReworkTaskRequestModel requestModel) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(requestModel.getSn(), "条码不能为空"); //ValidatorBean.checkNotNull(requestModel.getSn(), "条码不能为空");
try { try {
mesReworkTaskService.reworkSuccess(requestModel); mesReworkTaskService.reworkSuccess(requestModel);
return ResultBean.success("返工成功"); return ResultBean.success("返工成功");

@ -9,9 +9,9 @@ import java.util.List;
public interface IMesNcProcessingDao { public interface IMesNcProcessingDao {
@ApiOperation(value = "查询返工返修数据") @ApiOperation(value = "查询返工返修数据")
int queryDefectRecordByPagerCount(String partNo, String lot, String org); int queryDefectRecordByPagerCount(String partNo, String lotNo, String org);
@ApiOperation(value = "查询停工统计数据") @ApiOperation(value = "查询停工统计数据")
List<MesNcProcessingPartAndLotModel> queryDefectRecordByPager(String partNo, String lot, String org, Pager pager); List<MesNcProcessingPartAndLotModel> queryDefectRecordByPager(String partNo, String lotNo, String org, Pager pager);
} }

@ -21,7 +21,7 @@ public class MesNcProcessingDao implements IMesNcProcessingDao {
private EntityManager entityManager; private EntityManager entityManager;
@Override @Override
public int queryDefectRecordByPagerCount(String partNo, String lot, String org) { public int queryDefectRecordByPagerCount(String partNo, String lotNo, String org) {
StringBuffer hql = new StringBuffer(); StringBuffer hql = new StringBuffer();
hql.append("select count(1) from mes_defect_record as mdr "); hql.append("select count(1) from mes_defect_record as mdr ");
@ -29,9 +29,9 @@ public class MesNcProcessingDao implements IMesNcProcessingDao {
hql.append(" and mdr.isValid = :isValid "); hql.append(" and mdr.isValid = :isValid ");
hql.append(" and mdr.isDeleted = :isDeleted "); hql.append(" and mdr.isDeleted = :isDeleted ");
hql.append(" and mdr.part_no = :partNo "); hql.append(" and mdr.part_no = :partNo ");
hql.append(" and mdr.lot = :lot "); hql.append(" and mdr.lotNo = :lotNo ");
hql.append(" and mdr.nc_type = 0 "); hql.append(" and mdr.nc_type = 0 ");
hql.append(" group by mdr.part_no , mdr.lot "); hql.append(" group by mdr.part_no , mdr.lotNo ");
Query query = entityManager.createNativeQuery(hql.toString()); Query query = entityManager.createNativeQuery(hql.toString());
@ -47,17 +47,17 @@ public class MesNcProcessingDao implements IMesNcProcessingDao {
} }
@Override @Override
public List<MesNcProcessingPartAndLotModel> queryDefectRecordByPager(String partNo, String lot, String org, Pager pager) { public List<MesNcProcessingPartAndLotModel> queryDefectRecordByPager(String partNo, String lotNo, String org, Pager pager) {
StringBuffer hql = new StringBuffer(); StringBuffer hql = new StringBuffer();
hql.append("select mdr.part_no ,mdr.part_name , mdr.lot from mes_defect_record as mdr "); hql.append("select mdr.part_no ,mdr.part_name , mdr.lotNo from mes_defect_record as mdr ");
hql.append(" where mdr.organizeCode = :organizeCode "); hql.append(" where mdr.organizeCode = :organizeCode ");
hql.append(" and mdr.isValid = :isValid "); hql.append(" and mdr.isValid = :isValid ");
hql.append(" and mdr.isDeleted = :isDeleted "); hql.append(" and mdr.isDeleted = :isDeleted ");
hql.append(" and mdr.part_no = :partNo "); hql.append(" and mdr.part_no = :partNo ");
hql.append(" and mdr.lot = :lot "); hql.append(" and mdr.lotNo = :lotNo ");
hql.append(" and mdr.nc_type = 0 "); hql.append(" and mdr.nc_type = 0 ");
hql.append(" group by mdr.part_no ,mdr.part_name , mdr.lot "); hql.append(" group by mdr.part_no ,mdr.part_name , mdr.lotNo ");
Query query = entityManager.createNativeQuery(hql.toString()); Query query = entityManager.createNativeQuery(hql.toString());
@ -83,7 +83,7 @@ public class MesNcProcessingDao implements IMesNcProcessingDao {
String defectLot = String.valueOf(cells[2]); String defectLot = String.valueOf(cells[2]);
model.setPartNo(defectPartNo); model.setPartNo(defectPartNo);
model.setPartName(defectPartName); model.setPartName(defectPartName);
model.setLot(defectLot); model.setLotNo(defectLot);
modelList.add(model); modelList.add(model);
} }
return modelList; return modelList;

@ -267,7 +267,12 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
private MesReworkTask getMesReworkTask(MesReworkTaskRequestModel requestModel) { private MesReworkTask getMesReworkTask(MesReworkTaskRequestModel requestModel) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(requestModel.getSn(), "sn", packBean); if (!StringUtils.isEmpty(requestModel.getSn())) {
DdlPreparedPack.getStringEqualPack(requestModel.getSn(), "sn", packBean);
}
if (!StringUtils.isEmpty(requestModel.getReworkOrder())) {
DdlPreparedPack.getStringEqualPack(requestModel.getReworkOrder(), "reworkOrder", packBean);
}
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean);
MesReworkTask res = mesReworkTaskRepository.getByProperty(packBean); MesReworkTask res = mesReworkTaskRepository.getByProperty(packBean);

@ -108,7 +108,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
} else { } else {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(inputModel.getPartNo(), "物料不能为空"); ValidatorBean.checkNotNull(inputModel.getPartNo(), "物料不能为空");
ValidatorBean.checkNotNull(inputModel.getLot(), "批次不能为空"); ValidatorBean.checkNotNull(inputModel.getLotNo(), "批次不能为空");
ValidatorBean.checkNotNull(inputModel.getFrontBack(), "正反面不能为空"); ValidatorBean.checkNotNull(inputModel.getFrontBack(), "正反面不能为空");
ValidatorBean.checkNotNull(inputModel.getQty(), "数量不能为空"); ValidatorBean.checkNotNull(inputModel.getQty(), "数量不能为空");
@ -408,7 +408,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
//根据扫描的条码查询条码是否存在 //根据扫描的条码查询条码是否存在
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(inputModel.getPartNo(), "partNo", packBean); DdlPreparedPack.getStringEqualPack(inputModel.getPartNo(), "partNo", packBean);
DdlPreparedPack.getStringEqualPack(inputModel.getLot(), "lot", packBean); DdlPreparedPack.getStringEqualPack(inputModel.getLotNo(), "lotNo", packBean);
DdlPreparedPack.getNumEqualPack(inputModel.getQty(), "qty", packBean); DdlPreparedPack.getNumEqualPack(inputModel.getQty(), "qty", packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue(), "sourceType", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue(), "sourceType", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
@ -547,7 +547,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspection.setInspectionStatus(inspectionStatus); partInspection.setInspectionStatus(inspectionStatus);
partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()); partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue());
partInspection.setSn(model.getSn()); partInspection.setSn(model.getSn());
partInspection.setLotNo(model.getLot()); partInspection.setLotNo(model.getLotNo());
partInspection.setQty(model.getQty()); partInspection.setQty(model.getQty());
partInspection.setWorkCenterCode(model.getWorkCenterCode()); partInspection.setWorkCenterCode(model.getWorkCenterCode());
partInspection.setShiftCode(model.getShiftCode()); partInspection.setShiftCode(model.getShiftCode());

@ -148,11 +148,11 @@ public class MesNcProcessingService implements IMesNcProcessingService {
} }
@Override @Override
public ListPager<MesNcProcessingPartAndLotModel> queryPartLot(String partNo, String lot, String org, Pager pager) { public ListPager<MesNcProcessingPartAndLotModel> queryPartLot(String partNo, String lotNo, String org, Pager pager) {
pager = PagerHelper.getPager(pager, ncProcessingDao.queryDefectRecordByPagerCount(partNo, lot, org)); pager = PagerHelper.getPager(pager, ncProcessingDao.queryDefectRecordByPagerCount(partNo, lotNo, org));
List<MesNcProcessingPartAndLotModel> modelList = ncProcessingDao.queryDefectRecordByPager(partNo, lot, org, pager); List<MesNcProcessingPartAndLotModel> modelList = ncProcessingDao.queryDefectRecordByPager(partNo, lotNo, org, pager);
return new ListPager(modelList, pager); return new ListPager(modelList, pager);
} }

@ -2,25 +2,39 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import akka.actor.ActorRef; import akka.actor.ActorRef;
import akka.actor.ActorSystem; import akka.actor.ActorSystem;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNcProcessingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingInputModel;
import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider; import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesDefectType;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Objects;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@ -36,12 +50,10 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
private SnowflakeIdMaker snowflakeIdMaker; private SnowflakeIdMaker snowflakeIdMaker;
@Autowired @Autowired
private ActorSystem actorSystem;
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService; private IMesProductionProcessContextStepService productionProcessContextStepService;
@Autowired
private IMesNcProcessingService ncProcessingService;
@Autowired @Autowired
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
@ -53,38 +65,61 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
@Override @Override
public StepResult execute(StationRequestBean reqBean) { public StepResult execute(StationRequestBean reqBean) {
StepResult stepResult = StepResult.getSuccessComplete();
StationResultBean resultBean = new StationResultBean(); StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete(); MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
// 获取上下文信息 String result = mesProductionDispatchContextStepService.getProductResultContext(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); // 如果是报废或者可疑需要编辑条码状态为不合格、并且nc判定需要新增一条记录
if (!Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) {
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工结果合格,无需记录异常");
}
String defectTypeCode = MesEnumUtil.DEFECT_TYPE_CODE.BACK_SPRAY.getValue();
// 获取条码信息
List<MesProduceSn> mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean); List<MesProduceSn> mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean);
// 通过上下文获取工位设备信息
MesCellEquipContext curCellEquip = productionProcessContext.getCurCellEquip(); mesProduceSns.forEach(mesProduceSn -> {
MesNcProcessingInputModel model = new MesNcProcessingInputModel();
String mesProduceSnsStr = !CollectionUtils.isEmpty(mesProduceSns) ? JSONObject.toJSONString(mesProduceSns) : null; MesDefectType mesDefectType = new MesDefectType();
ActorMessage actorMessage = ActorMessage.builder() mesDefectType.setBackDefect(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
.equipmentCode(curCellEquip.getEquipmentCode()) mesDefectType.setDefectTypeCode(defectTypeCode);
.equipId(curCellEquip.getEquipId()) mesDefectType.setDefectTypeName(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getDescription());
.organizeCode(reqBean.getOrganizeCode()) //mesDefectType.setDefectType(MesExtEnumUtil.MES_DEFECT_TYPE);
.organizeName(reqBean.getOrganizeName()) model.setSn(mesProduceSn.getProductSn());
.workCellCode(reqBean.getWorkCellCode()) model.setPerson(mesDefectType);
.workCenterCode(reqBean.getWorkCenterCode())
.areaCode(reqBean.getAreaCode()) MesPartInspection partInspection = new MesPartInspection();
.craftCode(productionProcessContext.getCraftCode())
.processCode(reqBean.getProcessCode()) Long id = snowflakeIdMaker.nextId();
.produceSnJson(mesProduceSnsStr) partInspection.setWorkCenterCode(reqBean.getWorkCenterCode());
.userName(reqBean.getUserInfo()) partInspection.setSourceType(MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue());
.build(); partInspection.setPartNo(mesProduceSn.getPartNo());
// 数据采集信息需要存放到 redis中 partInspection.setPartName(mesProduceSn.getPartNameRdd());
String key = this.getFsmBusikey(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.name()); partInspection.setDefectTypeCode(mesDefectType.getDefectTypeCode());
ActorRef ref = refMap.computeIfAbsent(key, partInspection.setInspectionDate(DateUtil.format(new Date(), DatePattern.NORM_DATETIME_FORMATTER));
k -> actorSystem.actorOf(SpringExtProvider.getInstance().get(actorSystem).create("mesHandlerEquipLogActor"), key)); partInspection.setLotNo(mesProduceSn.getLotNo());
ref.tell(actorMessage, ActorRef.noSender()); partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue());
partInspection.setRejectQty(mesProduceSn.getQty().intValue());
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存工艺参数成功"); partInspection.setShiftCode(mesProduceSn.getShiftCode());
} partInspection.setSn(mesProduceSn.getProductSn());
partInspection.setQty(mesProduceSn.getQty().intValue());
partInspection.setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue());
partInspection.setId(id);
ConvertBean.serviceModelInitialize(partInspection, reqBean.getUserInfo());
MesPartInspectionDetail mesPartInspectionDetail = new MesPartInspectionDetail();
mesPartInspectionDetail.setPid(id);
mesPartInspectionDetail.setStatus(10);
mesPartInspectionDetail.setDefectTypeCode(mesDefectType.getDefectTypeCode());
mesPartInspectionDetail.setDefectTypeName(mesDefectType.getDefectTypeName());
model.setPartInspection(partInspection);
model.setPartInspectionDetailList(Arrays.asList(mesPartInspectionDetail));
ncProcessingService.saveNc(model, reqBean.getOrganizeCode());
});
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工异常处理成功");
}
} }

@ -22,6 +22,7 @@ import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.google.common.base.Objects;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -65,6 +66,7 @@ public class MesProductSnGenerateStepService extends BaseStepService {
StationResultBean resultBean = new StationResultBean(); StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete(); StepResult stepResult = StepResult.getSuccessComplete();
String result = mesProductionDispatchContextStepService.getProductResultContext(reqBean);
// 获取上下文信息 // 获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue()); MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
MesWorkCell mesWorkCell = productionProcessContext.getWorkCell(); MesWorkCell mesWorkCell = productionProcessContext.getWorkCell();
@ -73,7 +75,7 @@ public class MesProductSnGenerateStepService extends BaseStepService {
// 获取零件号,可能存在多个 // 获取零件号,可能存在多个
List<String> partNoList = productionPartContextList.stream().map(MesProductionPartContext::getPartNo).collect(Collectors.toList()); List<String> partNoList = productionPartContextList.stream().map(MesProductionPartContext::getPartNo).collect(Collectors.toList());
// 根据零件号组装产品条码信息 // 根据零件号组装产品条码信息
List<MesProduceSn> mesProduceSns = generateSn(reqBean, productionProcessContext, mesWorkCell, partNoList); List<MesProduceSn> mesProduceSns = generateSn(reqBean, productionProcessContext, mesWorkCell, partNoList, result);
// 保存条码信息 // 保存条码信息
mesProduceSnRepository.saveAll(mesProduceSns); mesProduceSnRepository.saveAll(mesProduceSns);
// 放到上下文 // 放到上下文
@ -90,7 +92,7 @@ public class MesProductSnGenerateStepService extends BaseStepService {
* @param partNoList * @param partNoList
* @return * @return
*/ */
private List<MesProduceSn> generateSn(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, MesWorkCell mesWorkCell, List<String> partNoList) { private List<MesProduceSn> generateSn(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, MesWorkCell mesWorkCell, List<String> partNoList, String result) {
List<MesProduceSn> mesProduceSns = new ArrayList<>(); List<MesProduceSn> mesProduceSns = new ArrayList<>();
for (String partNo : partNoList) { for (String partNo : partNoList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
@ -102,7 +104,7 @@ public class MesProductSnGenerateStepService extends BaseStepService {
// 根据条码规则生成条码 // 根据条码规则生成条码
String sn = generateByRule(mesPart); String sn = generateByRule(mesPart);
// 组装条码信息 // 组装条码信息
MesProduceSn mesProduceSn = generateMesProduceSn(mesPart, sn, mesWorkCell, productionProcessContext, reqBean); MesProduceSn mesProduceSn = generateMesProduceSn(mesPart, sn, mesWorkCell, productionProcessContext, reqBean, result);
ConvertBean.serviceModelInitialize(mesProduceSn, reqBean.getUserInfo()); ConvertBean.serviceModelInitialize(mesProduceSn, reqBean.getUserInfo());
mesProduceSns.add(mesProduceSn); mesProduceSns.add(mesProduceSn);
} }
@ -122,7 +124,7 @@ public class MesProductSnGenerateStepService extends BaseStepService {
return resultList.get(0); return resultList.get(0);
} }
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, MesWorkCell mesWorkCell,MesProductionProcessContext productionProcessContext, StationRequestBean reqBean) { private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, MesWorkCell mesWorkCell,MesProductionProcessContext productionProcessContext, StationRequestBean reqBean, String result) {
long serialNum = snowflakeIdMaker.nextId(); long serialNum = snowflakeIdMaker.nextId();
MesProduceSn mesProduceSn = new MesProduceSn(); MesProduceSn mesProduceSn = new MesProduceSn();
@ -139,7 +141,13 @@ public class MesProductSnGenerateStepService extends BaseStepService {
mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate()); mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate());
mesProduceSn.setQty(1d); mesProduceSn.setQty(1d);
mesProduceSn.setSnStatus(10); mesProduceSn.setSnStatus(10);
mesProduceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); Integer qcStatus = MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue();
if (Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) {
qcStatus = MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue();
} else if (Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SUSPICIOUS.getValue(), result)) {
qcStatus = MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue();
}
mesProduceSn.setQcStatus(qcStatus);
mesProduceSn.setLotNo(DateUtil.format(new Date(), "YYYYMMDD")); mesProduceSn.setLotNo(DateUtil.format(new Date(), "YYYYMMDD"));
mesProduceSn.setRouteCode(reqBean.getRouteCode()); mesProduceSn.setRouteCode(reqBean.getRouteCode());
mesProduceSn.setProcessCode(productionProcessContext.getProcessCode()); mesProduceSn.setProcessCode(productionProcessContext.getProcessCode());

@ -80,6 +80,9 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService {
.userName(reqBean.getUserInfo()) .userName(reqBean.getUserInfo())
.build(); .build();
// 数据采集信息需要存放到 redis中 // 数据采集信息需要存放到 redis中
// 需要保存磨具号
String key = this.getFsmBusikey(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.name()); String key = this.getFsmBusikey(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.name());
ActorRef ref = refMap.computeIfAbsent(key, ActorRef ref = refMap.computeIfAbsent(key,
k -> actorSystem.actorOf(SpringExtProvider.getInstance().get(actorSystem).create("mesHandlerEquipLogActor"), key)); k -> actorSystem.actorOf(SpringExtProvider.getInstance().get(actorSystem).create("mesHandlerEquipLogActor"), key));

@ -1,7 +1,7 @@
#\u9879\u76EE\u7AEF\u53E3 #\u9879\u76EE\u7AEF\u53E3
server.port=8350 server.port=8350
#\u672C\u673Aip #\u672C\u673Aip
impp.server.ip=10.196.77.226 impp.server.ip=10.196.76.180
#impp.server.ip=192.168.0.105 #impp.server.ip=192.168.0.105
#andon ip #andon ip
impp.andon.url=http://10.195.88.71:8750 impp.andon.url=http://10.195.88.71:8750
@ -24,7 +24,7 @@ impp.cluster.regist.center=http://10.195.88.71:8000/eureka/
logging.config=classpath:log4j2-spring.xml logging.config=classpath:log4j2-spring.xml
mes.ws=ws://10.197.190.121:8300/ws/pcn-regist/ mes.ws=ws://10.197.190.121:8300/ws/pcn-regist/
#mes-pcn.ws.path=ws://10.197.176.77:8350 #mes-pcn.ws.path=ws://10.197.176.77:8350
mes-pcn.ws.path=ws://10.196.77.226:8350 mes-pcn.ws.path=ws://10.196.76.180:8350
pcn.code=PCN-U7 pcn.code=PCN-U7
########\u5E73\u53F0\u76F8\u5173\u53C2\u6570########## ########\u5E73\u53F0\u76F8\u5173\u53C2\u6570##########
#\u662F\u5426\u5F00\u542Fredis\u7F13\u5B58 #\u662F\u5426\u5F00\u542Fredis\u7F13\u5B58

@ -18,7 +18,7 @@ import java.util.List;
* @Modify: * @Modify:
**/ **/
@Data @Data
public class MesNcProcessingInputModel { public class MesNcProcessingInputModel {
@ApiParam("类型") @ApiParam("类型")
private Integer type; private Integer type;

@ -21,7 +21,7 @@ public class MesNcProcessingPartAndLotModel {
private String partName; private String partName;
@ApiParam("批次") @ApiParam("批次")
private String lot; private String lotNo;
} }

@ -38,7 +38,7 @@ public class MesPartInspectionInputModel {
private Integer frontBack; private Integer frontBack;
@ApiParam("批次") @ApiParam("批次")
private String lot; private String lotNo;
@ApiParam("数量") @ApiParam("数量")
private Integer qty; private Integer qty;

@ -19,11 +19,11 @@ public class MesReworkTaskRequestModel {
* *
*/ */
private String custSn; private String custSn;
/** /**
* *
*/ */
private String reworkOrder; private String reworkOrder;
/** /**
* *
*/ */

Loading…
Cancel
Save