工步开发

tags/yfai-pcn-ext-v1.0
微笑着面对明天 12 months ago
parent 15ea715a11
commit af8decbd88

@ -27,7 +27,6 @@ public interface IMesWorkOrderService {
@ApiOperation(value = "查询工单")
public ListPager<MesWorkOrder> queryMesWorkOrderListByPager(MesWorkOrder workOrder, Pager pager);
void doProductReport(List<MesProduceSn> mesProduceSnList);
void doProductReport(List<MesProduceSn> mesProduceSnList, String organizeCode, String userName);
}

@ -65,7 +65,7 @@ public class MesWorkOrderController {
@ApiOperation(value = "生产报工")
public ResultBean doProductReport(@RequestBody List<MesProduceSn> mesProduceSnList) {
try {
workOrderService.doProductReport(mesProduceSnList);
//workOrderService.doProductReport(mesProduceSnList);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {

@ -96,11 +96,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Override
public void doProductReport(List<MesProduceSn> mesProduceSnList) {
//新增初始化
String organizeCode = AuthUtil.getOrganizeCode();
String userName = AuthUtil.getSessionUser().getUserName();
public void doProductReport(List<MesProduceSn> mesProduceSnList, String organizeCode, String userName) {
//新增初始化 todo
Map<String, List<MesProduceSn>> mesWorkOrderMap = mesProduceSnList.stream().collect(Collectors.groupingBy(MesProduceSn::getPartNo));
Map<String,MesPart> mesPartMap = new HashMap<>();
MesPart mesPart = null;

@ -59,7 +59,7 @@ public class MesEquipmentRwExtServiceImpl implements IMesEquipVariableRwExtServi
private Map<String, List<MesConfig>> getConfigMap(List<MesConfig> configList, String cfgType) {
List<MesConfig> filterList = CollectionUtils.isEmpty(configList) ? null :
configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgType()) && !StringUtils.isEmpty(o.getCfgKey()) && o.getCfgType().equals(MesPcnExtConstWords.RW_API_CFG))).collect(Collectors.toList());
configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgType()) && !StringUtils.isEmpty(o.getCfgKey()) && o.getCfgType().equals(cfgType))).collect(Collectors.toList());
return CollectionUtils.isEmpty(filterList) ? null : filterList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesConfig::getCfgKey));
}

@ -32,6 +32,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Date;
@ -68,17 +69,29 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
StationResultBean resultBean = new StationResultBean();
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
// 获取加工结果
String result = mesProductionDispatchContextStepService.getProductResultContext(reqBean);
// 如果是报废或者可疑需要编辑条码状态为不合格、并且nc判定需要新增一条记录
if (!Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) {
if (StringUtils.isEmpty(result) || Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_OK.getValue(), result)) {
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工结果合格,无需记录异常");
}
String defectTypeCode = MesEnumUtil.DEFECT_TYPE_CODE.BACK_SPRAY.getValue();
// 获取条码列表
List<MesProduceSn> mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean);
// 保存加工异常记录(NC判断记录)
saveProductResultException(reqBean, mesProduceSns, result);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工异常处理成功");
}
/**
*
* @param reqBean
* @param mesProduceSns
*/
private void saveProductResultException(StationRequestBean reqBean, List<MesProduceSn> mesProduceSns, String result) {
String defectTypeCode = MesEnumUtil.DEFECT_TYPE_CODE.DETERMIND.getValue();
mesProduceSns.forEach(mesProduceSn -> {
MesNcProcessingInputModel model = new MesNcProcessingInputModel();
MesDefectType mesDefectType = new MesDefectType();
@ -99,7 +112,11 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
partInspection.setDefectTypeCode(mesDefectType.getDefectTypeCode());
partInspection.setInspectionDate(DateUtil.format(new Date(), DatePattern.NORM_DATETIME_FORMATTER));
partInspection.setLotNo(mesProduceSn.getLotNo());
partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue());
if (!Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) {
partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue());
} else {
partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue());
}
partInspection.setRejectQty(mesProduceSn.getQty().intValue());
partInspection.setShiftCode(mesProduceSn.getShiftCode());
partInspection.setSn(mesProduceSn.getProductSn());
@ -117,9 +134,5 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
model.setPartInspectionDetailList(Arrays.asList(mesPartInspectionDetail));
ncProcessingService.saveNc(model, reqBean.getOrganizeCode());
});
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工异常处理成功");
}
}
}

@ -26,6 +26,7 @@ import com.google.common.base.Objects;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
@ -72,6 +73,9 @@ public class MesProductSnGenerateStepService extends BaseStepService {
MesWorkCell mesWorkCell = productionProcessContext.getWorkCell();
// 获取产出零件信息
List<MesProductionPartContext> productionPartContextList = mesProductionDispatchContextStepService.getProductionPartContext(reqBean);
if (CollectionUtils.isEmpty(productionPartContextList)) {
foundExThrow(reqBean, "必过工步不允许跳过");
}
// 获取零件号,可能存在多个
List<String> partNoList = productionPartContextList.stream().map(MesProductionPartContext::getPartNo).collect(Collectors.toList());
// 根据零件号组装产品条码信息

@ -0,0 +1,52 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
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.IMesWorkOrderService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @Description :
* @Author : zxw
**/
@Slf4j
@Service
public class MesReportGenerateStepService extends BaseStepService {
@Autowired
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
@Autowired
private IMesWorkOrderService mesWorkOrderService;
public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT";
private static final Map<String, ActorRef> refMap = new ConcurrentHashMap<>(200);
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
List<MesProduceSn> mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean);
mesWorkOrderService.doProductReport(mesProduceSns, reqBean.getOrganizeCode(), reqBean.getUserInfo());
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存加工结果成功");
}
}

@ -56,6 +56,12 @@ public class MesSaveProcessResultStepService extends BaseStepService {
@Autowired
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
@Autowired
private MesProductResultErrorHandleStepService mesProductResultErrorHandleStepService;
@Autowired
private MesReportGenerateStepService mesReportGenerateStepService;
public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT";
private static final Map<String, ActorRef> refMap = new ConcurrentHashMap<>(200);
@ -65,17 +71,32 @@ public class MesSaveProcessResultStepService extends BaseStepService {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
/**
*
*/
mesMouldRecordGenerateStepService.execute(reqBean);
/**
*
*/
MesProductSnSaveStepService.execute(reqBean);
/**
*
*/
mesProductionReocrdGenerateStepService.execute(reqBean);
/**
*
*/
mesProductResultErrorHandleStepService.execute(reqBean);
/**
*
*/
mesReportGenerateStepService.execute(reqBean);
mesProductionDispatchContextStepService.deleteFirstMouldNoContext(reqBean);
mesProductionDispatchContextStepService.deleteMouldNoContext(reqBean);
mesProductionDispatchContextStepService.deleteProductResultContext(reqBean);
mesProductionDispatchContextStepService.deleteReadySignalContext(reqBean);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存加工结果成功");
}
}

Loading…
Cancel
Save