上线工位
parent
ff6c9bab32
commit
b2ee33414b
@ -0,0 +1,32 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.api.base.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesManageCode;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: xinwang.yi
|
||||
* @CreateDate: 2023/10/13 13:06 下午
|
||||
* @Description:
|
||||
**/
|
||||
public interface IMesManageCodeService {
|
||||
|
||||
/**
|
||||
* 根据管理编码获取管理码信息
|
||||
* @param organizeCode 组织代码
|
||||
* @param manageCode 管理编码
|
||||
* @return 管理码信息
|
||||
*/
|
||||
@ApiOperation(value = "根据管理编码获取管理码信息", notes = "根据管理编码获取管理码信息")
|
||||
MesManageCode getManageCode(String organizeCode, String manageCode);
|
||||
|
||||
/**
|
||||
* 根据管理编码集合获取管理码信息集合
|
||||
* @param organizeCode 组织代码
|
||||
* @param manageCodeList 管理编码集合
|
||||
* @return 管理码信息集合
|
||||
*/
|
||||
@ApiOperation(value = "根据管理编码集合获取管理码信息集合", notes = "根据管理编码集合获取管理码信息集合")
|
||||
List<MesManageCode> getManageCodeListByManageCodeList(String organizeCode, List<String> manageCodeList);
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.jx.IMesManageCodeService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesManageCode;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesManageCodeRepository;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @PROJECT_NAME: i3plus-mes-panasonic-jx
|
||||
* @DESCRIPTION:
|
||||
* @USER: xinwang.yi
|
||||
* @DATE: 2023-10-13 13:46
|
||||
*/
|
||||
@Service
|
||||
public class MesManageCodeService implements IMesManageCodeService {
|
||||
|
||||
@Autowired
|
||||
private MesManageCodeRepository manageCodeRepository;
|
||||
|
||||
@Override
|
||||
public MesManageCode getManageCode(String organizeCode, String manageCode) {
|
||||
return manageCodeRepository.getByProperty(
|
||||
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.MANAGE_CODE},
|
||||
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), manageCode});
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MesManageCode> getManageCodeListByManageCodeList(String organizeCode, List<String> manageCodeList) {
|
||||
if (CollectionUtils.isEmpty(manageCodeList)) return null;
|
||||
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getInPackList(manageCodeList, MesPcnExtConstWords.MANAGE_CODE, ddlPackBean);
|
||||
return manageCodeRepository.findByHqlWhere(ddlPackBean);
|
||||
}
|
||||
}
|
@ -0,0 +1,111 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.station.jx.SxNoumenonSnPopUpOnlineModuleService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProduceSnExt;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.IShippingDispatchService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.LocaleUtil;
|
||||
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
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 cn.estsh.impp.framework.boot.util.ImppRedis;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Description : 本体包装是否重选工单校验工步
|
||||
* @Reference :
|
||||
* @Author : wangjie
|
||||
* @CreateDate : 2020-05-27
|
||||
* @Modify:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("sxNoumenonSnCheckReselectOrderStepService")
|
||||
public class SxNoumenonSnCheckReselectOrderStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private SxNoumenonSnPopUpOnlineModuleService snPopUpOnlineModuleService;
|
||||
|
||||
@Autowired
|
||||
private IShippingDispatchService shippingDispatchService;
|
||||
|
||||
@Autowired
|
||||
private IProduceSnExtService produceSnExtService;
|
||||
|
||||
@Resource(name = MesPcnExtConstWords.REDIS_RES_PCN)
|
||||
private ImppRedis redisMesPcn;
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
log.info("SxNoumenonSnCheckReselectOrderStepService[execute] 参数:{}", reqBean);
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
String err;
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getSerialNumber())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少条码信息 SerialNumber");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
foundExThrowNoShowMsg();
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getWorkOrderNo())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少工单信息 WorkOrderNo");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
foundExThrowNoShowMsg();
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getDataMap().get(MesPcnExtConstWords.WORK_ORDER_NO))) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参[DataMap]缺少工单信息 WorkOrderNo");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
foundExThrowNoShowMsg();
|
||||
}
|
||||
|
||||
if (!reqBean.getWorkOrderNo().equals(reqBean.getDataMap().get(MesPcnExtConstWords.WORK_ORDER_NO))) {
|
||||
err = String.format(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "当前执行工单已变更为[%s]"), reqBean.getWorkOrderNo());
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
||||
snPopUpOnlineModuleService.putLastSelectOrder(reqBean);
|
||||
|
||||
String bindKeyPartCacheKey = getCacheKey(reqBean, MesPcnExtConstWords.BIND_KEY_PART);
|
||||
redisMesPcn.deleteKey(bindKeyPartCacheKey);
|
||||
String repairBindKeyPartCacheKey = getCacheKey(reqBean, MesPcnExtConstWords.REPAIR_BIND_KEY_PART);
|
||||
redisMesPcn.deleteKey(repairBindKeyPartCacheKey);
|
||||
|
||||
//跳过整个工序
|
||||
reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean));
|
||||
reqBean.setInterfaceType(MesPcnExtConstWords.SHIPPING);
|
||||
reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN);
|
||||
reqBean.setForceJumpProcess(true);
|
||||
shippingDispatchService.doSendScanQueueNextExec(reqBean);
|
||||
|
||||
foundExThrowNoShowMsg();
|
||||
}
|
||||
|
||||
MesProduceSnExt produceSnExtDb = produceSnExtService.getProduceSnExtBySnAndOrderNo(reqBean.getOrganizeCode(), reqBean.getSerialNumber(), reqBean.getWorkOrderNo());
|
||||
if(produceSnExtDb == null){
|
||||
err = String.format(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "当前条码[%s]已不关联当前工单[%s]"), reqBean.getSerialNumber(), reqBean.getWorkOrderNo());
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
||||
|
||||
String bindKeyPartCacheKey = getCacheKey(reqBean, MesPcnExtConstWords.BIND_KEY_PART);
|
||||
redisMesPcn.deleteKey(bindKeyPartCacheKey);
|
||||
|
||||
//跳过整个工序
|
||||
reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean));
|
||||
reqBean.setInterfaceType(MesPcnExtConstWords.SHIPPING);
|
||||
reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN);
|
||||
reqBean.setForceJumpProcess(true);
|
||||
shippingDispatchService.doSendScanQueueNextExec(reqBean);
|
||||
|
||||
foundExThrowNoShowMsg();
|
||||
}
|
||||
|
||||
return StepResult.getSuccessComplete();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.LocaleUtil;
|
||||
import cn.estsh.i3plus.mes.pcn.websocket.StationWebSocket;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.model.ButtonBean;
|
||||
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 cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
||||
import cn.estsh.impp.framework.boot.util.ImppRedis;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description : 工步业务-本体包装校验条码有效性工步
|
||||
* @Reference :
|
||||
* @Author : wangjie
|
||||
* @CreateDate : 2019-07-11
|
||||
* @Modify:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("sxNoumenonSnLineOffQCheckStepService")
|
||||
public class SxNoumenonSnLineOffQCheckStepService extends BaseStepService {
|
||||
|
||||
@Resource(name = MesPcnExtConstWords.REDIS_RES_PCN)
|
||||
private ImppRedis redisMesPcn;
|
||||
|
||||
// 返回前端按钮 确认按钮弹框
|
||||
private static final String PASS_BUTTON_CODE = "PASS";
|
||||
private static final String PASS_BUTTON_NAME = "通过";
|
||||
private static final String NOT_PASS_BUTTON_CODE = "NON_PASS";
|
||||
private static final String NOT_PASS_BUTTON_NAME = "不通过";
|
||||
|
||||
@Override
|
||||
public StepResult init(StationRequestBean reqBean) {
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CONTENT.getValue());
|
||||
|
||||
|
||||
this.sendMessage(reqBean, resultBean);
|
||||
return super.init(reqBean);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
log.info("SxNoumenonSnLineOffQCheckStepService[execute] 参数:{}", reqBean);
|
||||
|
||||
StepResult stepResult = StepResult.getNonComplete();
|
||||
|
||||
if (!StringUtils.isEmpty(reqBean.getButtonCode())) {
|
||||
if (reqBean.getButtonCode().equals(PASS_BUTTON_CODE)) {
|
||||
|
||||
// 将model中的buttonCode password移除
|
||||
removeStepContent(reqBean);
|
||||
|
||||
stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
return stepResult;
|
||||
} else {
|
||||
|
||||
// 点击不通过,结束工步。直接进入放行信号
|
||||
|
||||
removeStepContent(reqBean);
|
||||
|
||||
stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
stepResult.setNextTriggerEvent("NON_PASS");
|
||||
|
||||
return stepResult;
|
||||
}
|
||||
}
|
||||
|
||||
sendButton(reqBean);
|
||||
// 发送按钮组件,工步未完成
|
||||
return stepResult;
|
||||
}
|
||||
|
||||
private void sendButton(StationRequestBean reqBean) {
|
||||
List<ButtonBean> buttonBeanList = new ArrayList<>();
|
||||
buttonBeanList.add(ButtonBean.builder().buttonCode(PASS_BUTTON_CODE).buttonName(PASS_BUTTON_NAME).buttonDesc("通过按钮事件").build());
|
||||
buttonBeanList.add(ButtonBean.builder().buttonCode(NOT_PASS_BUTTON_CODE).buttonName(NOT_PASS_BUTTON_NAME).buttonDesc("不通过按钮事件").build());
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
resultBean.setResultList(buttonBeanList);
|
||||
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CONTENT.getValue());
|
||||
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.BUTTON.getValue());
|
||||
resultBean.setMessage(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "请进行外观检查,并录入外观检结果"));
|
||||
this.sendMessage(reqBean, resultBean);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void removeStepContent(StationRequestBean reqBean) {
|
||||
reqBean.setButtonCode(null);
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
resultBean.setResultList(null);
|
||||
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CONTENT.getValue());
|
||||
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.BUTTON.getValue());
|
||||
this.sendMessage(reqBean, resultBean);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,173 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxWorkOrderExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.jx.IMesManageCodeService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnRepairService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnTravelExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.station.jx.SxNoumenonSnPopUpOnlineModuleService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.LocaleUtil;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
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 org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @Description : 工步业务-本体包装校验条码有效性工步
|
||||
* @Reference :
|
||||
* @Author : wangjie
|
||||
* @CreateDate : 2019-07-11
|
||||
* @Modify:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("sxNoumenonSnOnlineCheckSnStepService")
|
||||
public class SxNoumenonSnOnlineCheckSnStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private IProduceSnExtService produceSnExtService;
|
||||
|
||||
@Autowired
|
||||
private ISxWorkOrderExtService workOrderExtService;
|
||||
|
||||
@Autowired
|
||||
private IProduceSnRepairService produceSnRepairService;
|
||||
|
||||
@Autowired
|
||||
private IMesManageCodeService manageCodeService;
|
||||
|
||||
@Autowired
|
||||
private IProduceSnTravelExtService produceSnTravelExtService;
|
||||
|
||||
@Autowired
|
||||
private SxNoumenonSnPopUpOnlineModuleService popUpOnlineModuleService;
|
||||
|
||||
@Override
|
||||
public StepResult guide(StationRequestBean reqBean) {
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
String guide = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "请扫描管理码/产品条码");
|
||||
this.sendMessage(reqBean, resultBean, guide, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
||||
return super.guide(reqBean);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StepResult init(StationRequestBean reqBean) {
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CONTENT.getValue());
|
||||
this.sendMessage(reqBean, resultBean);
|
||||
return super.init(reqBean);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
log.info("SxNoumenonSnOnlineCheckSnStepService[execute] 参数:{}", reqBean);
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
String err;
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getOrganizeCode())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少工厂代码");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getWorkOrderNo())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少工单号");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getScanInfo())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少管理码/产品条码");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
MesWorkOrderExt workOrderExt = workOrderExtService.getWorkOrderExtByOrderNo(reqBean.getOrganizeCode(), reqBean.getWorkOrderNo());
|
||||
|
||||
if (null == workOrderExt) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("工单[%s]无效,不能操作", reqBean.getWorkOrderNo()));
|
||||
|
||||
if (MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() != workOrderExt.getWorkOrderStatus()) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("工单[%s]状态为[%s],不能操作", reqBean.getWorkOrderNo(), MesPcnExtEnumUtil.WORK_ORDER_STATUS.valueOfDescription(workOrderExt.getWorkOrderStatus())));
|
||||
|
||||
// 扫描内容 为 管理码
|
||||
String scanInfo = reqBean.getScanInfo();
|
||||
|
||||
boolean isNeedCreateSn = false;
|
||||
|
||||
//MesProduceSnExt produceSnExtDb = produceSnExtService.getProduceSnExtBySn(reqBean.getOrganizeCode(), scanInfo);
|
||||
|
||||
//if (produceSnExtDb != null) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
// String.format("管理码已被工单[%s]占用,操作失败", produceSnExtDb.getWorkOrderNo()));
|
||||
|
||||
if (workOrderExt.getWorkOrderType() == MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()) {
|
||||
MesProduceSnRepair produceSnRepairBySn = produceSnRepairService.getProduceSnRepairBySn(reqBean.getOrganizeCode(), scanInfo);
|
||||
|
||||
if (null == produceSnRepairBySn) {
|
||||
|
||||
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("返工条码[%s]不存在,操作失败", reqBean.getScanInfo(), produceSnRepairBySn.getWorkOrderNo(), reqBean.getWorkOrderNo()));
|
||||
|
||||
} else if(produceSnRepairBySn.getWorkOrderNo().equals(reqBean.getWorkOrderNo())) {
|
||||
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("返工条码[%s]已绑定工单[%s]与当前工单[%s]不一致,操作失败", reqBean.getScanInfo(), produceSnRepairBySn.getWorkOrderNo(), reqBean.getWorkOrderNo()));
|
||||
}
|
||||
} else {
|
||||
MesProduceSnExt produceSnExt = produceSnExtService.getProduceSnExtBySn(reqBean.getOrganizeCode(), scanInfo);
|
||||
if (produceSnExt == null) {
|
||||
|
||||
isNeedCreateSn = true;
|
||||
|
||||
MesManageCode manageCode = manageCodeService.getManageCode(reqBean.getOrganizeCode(), scanInfo);
|
||||
|
||||
if (manageCode == null) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("管理码[%s]无效,操作失败", reqBean.getScanInfo()));
|
||||
|
||||
|
||||
if (!manageCode.getWorkCenterCode().equals(reqBean.getWorkCenterCode())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("当前管理码[%s]所属产线[%s]与当前产线[%s]不一致,操作失败", reqBean.getScanInfo(), manageCode.getWorkCenterCode(), reqBean.getWorkCenterCode()));
|
||||
|
||||
} else if (!produceSnExt.getLastWorkOrderNo().equals(reqBean.getWorkOrderNo())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("条码[%s]已绑定工单[%s],与当前工单[%s]不一致,操作失败", reqBean.getScanInfo(), produceSnExt.getWorkOrderNo(), reqBean.getWorkOrderNo()));
|
||||
}
|
||||
|
||||
MesProduceSnTravelExt produceSnTravelExtDb = produceSnTravelExtService.getProduceSnTravelExtByOrderNoAndWoAndSn(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getWorkOrderNo(), reqBean.getScanInfo());
|
||||
|
||||
if (produceSnTravelExtDb != null) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
|
||||
String.format("管理码[%s]已经过此工位,请更改管理码再进行操作", reqBean.getScanInfo()));
|
||||
|
||||
reqBean.getDataMap().put(MesPcnExtConstWords.WORK_ORDER_NO, reqBean.getWorkOrderNo());
|
||||
reqBean.getDataMap().put(MesPcnExtConstWords.MANAGE_CODE, reqBean.getScanInfo());
|
||||
|
||||
reqBean.setSerialNumber(reqBean.getScanInfo());
|
||||
reqBean.setPartNo(workOrderExt.getPartNo());
|
||||
reqBean.setPartName(workOrderExt.getPartNameRdd());
|
||||
|
||||
if (MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue() == workOrderExt.getWorkOrderType()) {
|
||||
stepResult.setNextTriggerEvent(MesPcnExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.name());
|
||||
} else if (isNeedCreateSn){
|
||||
stepResult.setNextTriggerEvent("CREATE_SN");
|
||||
} else {
|
||||
stepResult.setNextTriggerEvent(MesPcnExtEnumUtil.WORK_ORDER_TYPE.STANDARD_ORDER.name());
|
||||
}
|
||||
|
||||
popUpOnlineModuleService.doHandleManageCode(reqBean, 2, reqBean.getScanInfo());
|
||||
|
||||
return stepResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
|
||||
//
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxWorkOrderExtService;
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderExt;
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesWorkOrderExtRepository;
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.ConvertBeanExt;
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
|
||||
//import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
|
||||
//import cn.estsh.i3plus.mes.pcn.util.LocaleUtil;
|
||||
//import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
||||
//import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
//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 org.springframework.util.StringUtils;
|
||||
//
|
||||
///**
|
||||
// * @Description : 工步业务-累加条码绑定数量工步
|
||||
// * @Reference :
|
||||
// * @Author : xinwang.yi
|
||||
// * @CreateDate : 2023-10-16
|
||||
// * @Modify:
|
||||
// **/
|
||||
//@Slf4j
|
||||
//@Service("sxNoumenonSnOnlineCompleteStepService")
|
||||
//public class SxNoumenonSnOnlineCompleteStepService extends BaseStepService {
|
||||
//
|
||||
// @Autowired
|
||||
// private ISxWorkOrderExtService workOrderExtService;
|
||||
//
|
||||
// @Autowired
|
||||
// private MesWorkOrderExtRepository workOrderExtRepository;
|
||||
//
|
||||
// @Override
|
||||
// public StepResult execute(StationRequestBean reqBean) {
|
||||
// log.info("sxNoumenonSnOnlineCompleteStepService[execute] 参数:{}", reqBean);
|
||||
//
|
||||
// StationResultBean resultBean = new StationResultBean();
|
||||
// String err;
|
||||
//
|
||||
// if (StringUtils.isEmpty(reqBean.getOrganizeCode())) {
|
||||
// err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少工厂代码");
|
||||
// this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
// foundExThrowNoShowMsg();
|
||||
// }
|
||||
//
|
||||
// if (StringUtils.isEmpty(reqBean.getWorkOrderNo())) {
|
||||
// err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少生产工单号");
|
||||
// this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
// foundExThrowNoShowMsg();
|
||||
// }
|
||||
//
|
||||
// MesWorkOrderExt workOrderExt = workOrderExtService.getWorkOrderExtByOrderNo(reqBean.getOrganizeCode(), reqBean.getWorkOrderNo());
|
||||
// if (null == workOrderExt) {
|
||||
// err = String.format(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "生产工单号[%s]无效"), reqBean.getWorkOrderNo());
|
||||
// this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
// foundExThrowNoShowMsg();
|
||||
// }
|
||||
//
|
||||
//
|
||||
// ConvertBean.serviceModelUpdate(workOrderExt, reqBean.getUserInfo());
|
||||
// workOrderExt.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
|
||||
// new ConvertBeanExt(workOrderExt).convertBean(workOrderExt);
|
||||
// workOrderExtRepository.save(workOrderExt);
|
||||
//
|
||||
// return StepResult.getSuccessComplete();
|
||||
// }
|
||||
//
|
||||
//}
|
@ -0,0 +1,145 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IProdPackExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxWorkOrderExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnTravelExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesPartExtRepository;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesProduceSnExtRepository;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.ConvertBeanExt;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.LocaleUtil;
|
||||
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
||||
import cn.estsh.i3plus.platform.common.tool.MathOperation;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
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 org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @Description : 工步业务-本体包装校验条码有效性工步
|
||||
* @Reference :
|
||||
* @Author : wangjie
|
||||
* @CreateDate : 2019-07-11
|
||||
* @Modify:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("sxNoumenonSnOnlineCreateSnStepService")
|
||||
public class SxNoumenonSnOnlineCreateSnStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private ISxWorkOrderExtService workOrderExtService;
|
||||
|
||||
@Autowired
|
||||
private MesProduceSnExtRepository produceSnExtRepository;
|
||||
|
||||
@Autowired
|
||||
private MesPartExtRepository partExtRepository;
|
||||
|
||||
@Autowired
|
||||
private IProdPackExtService prodPackExtService;
|
||||
|
||||
@Autowired
|
||||
private IProduceSnExtService produceSnExtService;
|
||||
|
||||
@Autowired
|
||||
private IProduceSnTravelExtService produceSnTravelExtService;
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
log.info("SxNoumenonSnOnlineCreateSnStepService[execute] 参数:{}", reqBean);
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
String err;
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getOrganizeCode())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少工厂代码");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getWorkOrderNo())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少工单号");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(reqBean.getScanInfo())) {
|
||||
err = LocaleUtil.transferLanguage(reqBean.getUserInfo(), "入参缺少管理码");
|
||||
this.sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
// 扫描内容 为 管理码
|
||||
//String scanInfo = reqBean.getScanInfo();
|
||||
|
||||
MesWorkOrderExt workOrderExt = workOrderExtService.getWorkOrderExtByOrderNo(reqBean.getOrganizeCode(), reqBean.getWorkOrderNo());
|
||||
if (null == workOrderExt) {
|
||||
err = String.format(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "工单[%s]无效,不能操作"), reqBean.getWorkOrderNo());
|
||||
sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
//if (MathOperation.compareTo(workOrderExt.getBoundQty(), workOrderExt.getQty()) >= 0) {
|
||||
// err = String.format(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "工单[%s]已达到绑定数量,不能操作"), reqBean.getWorkOrderNo());
|
||||
// sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
// return StepResult.getNonComplete(err);
|
||||
//}
|
||||
|
||||
if (MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() != workOrderExt.getWorkOrderStatus()) {
|
||||
err = String.format(LocaleUtil.transferLanguage(reqBean.getUserInfo(), "工单[%s]状态为[%s],不能操作"),
|
||||
reqBean.getWorkOrderNo(), MesPcnExtEnumUtil.WORK_ORDER_STATUS.valueOfDescription(workOrderExt.getWorkOrderStatus()));
|
||||
sendMessage(reqBean, resultBean, err, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
return StepResult.getNonComplete(err);
|
||||
}
|
||||
|
||||
//MesPartExt partExt = partExtRepository.getByProperty(
|
||||
// new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PART_NO},
|
||||
// new Object[]{reqBean.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), reqBean.getPartNo()});
|
||||
|
||||
//MesProdPackExt prodPackDb = prodPackExtService.getProdPackExt(reqBean.getOrganizeCode(), partExt.getPartNo(), partExt.getPptCode());
|
||||
|
||||
MesProduceSnExt produceSnExt = new MesProduceSnExt();
|
||||
produceSnExt.setSerialNumber(reqBean.getSerialNumber());
|
||||
produceSnExt.setWorkOrderNo(reqBean.getWorkOrderNo());
|
||||
produceSnExt.setLastWorkOrderNo(reqBean.getWorkOrderNo());
|
||||
produceSnExt.setPartNo(reqBean.getPartNo());
|
||||
produceSnExt.setPartNameRdd(reqBean.getPartName());
|
||||
//produceSnExt.setProcessLabelTemplate(partExt.getProcessLabelTemplate());
|
||||
//produceSnExt.setQualityAssureTemplate(partExt.getQualityAssureTemplate());
|
||||
//produceSnExt.setBigProcessLabelTemplate(partExt.getBigProcessLabelTemplate());
|
||||
//produceSnExt.setProcessLabelTemplate(prodPackDb == null ? "" : prodPackDb.getProcessLabelTemplate());
|
||||
//produceSnExt.setQualityAssureTemplate(prodPackDb == null ? "" : prodPackDb.getQualityAssureTemplate());
|
||||
//produceSnExt.setBigProcessLabelTemplate(prodPackDb == null ? "" : prodPackDb.getBigProcessLabelTemplate());
|
||||
produceSnExt.setCustCode(workOrderExt.getCustCode());
|
||||
produceSnExt.setPrintStatus(MesPcnExtEnumUtil.PRODUCE_SN_PRINT_STATUS.UNPRINT.getValue());
|
||||
produceSnExt.setPrintCount(0);
|
||||
produceSnExt.setSnStatus(MesPcnExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue());
|
||||
produceSnExt.setQcStatus(MesPcnExtEnumUtil.PRODUCE_SN_QC_STATUS.QUALIFIED.getValue());
|
||||
produceSnExt.setSnType(MesPcnExtEnumUtil.ENCODE_CODE_TYPE.STANDARD_SERIAL_SN.getValue());
|
||||
produceSnExt.setQty(1d);
|
||||
produceSnExt.setWorkCenterCode(workOrderExt.getWorkCenterCode());
|
||||
produceSnExt.setOrganizeCode(workOrderExt.getOrganizeCode());
|
||||
ConvertBean.serviceModelInitialize(produceSnExt, reqBean.getUserInfo());
|
||||
produceSnExt.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
|
||||
new ConvertBeanExt(produceSnExt).convertBean(produceSnExt);
|
||||
//produceSnExtRepository.insert(produceSnExt);
|
||||
produceSnExtService.insertProduceSnExt(produceSnExt);
|
||||
|
||||
// 当前执行管理码
|
||||
//String curManageCode = getCacheKey(reqBean, MesPcnExtConstWords.CUR_MANAGE_CODE);
|
||||
|
||||
return StepResult.getSuccessComplete();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.station.SxPutPalletModuleService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.station.jx.SxNoumenonSnPopUpOnlineModuleService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.SxPutPalletInitProdTypeStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.SxPutPalletModuleModel;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.SxPutPalletPlcDataModel;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
|
||||
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
|
||||
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.IStepCommonMethodService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.LocaleUtil;
|
||||
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesPlc;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
|
||||
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 org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description : 工步业务-本体条码上线PLC放行工步
|
||||
* @Reference :
|
||||
* @Author : xinwang.yi
|
||||
* @CreateDate : 2023-10-16
|
||||
* @Modify:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("sxPlcOutStepService")
|
||||
public class SxPlcOutStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private IStepCommonMethodService stepCommonMethodService;
|
||||
|
||||
@Autowired
|
||||
private IFsmCommonService fsmCommonService;
|
||||
|
||||
@Autowired
|
||||
private SxNoumenonSnPopUpOnlineModuleService snPopUpOnlineModuleService;
|
||||
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
log.info("SxPlcOutStepService[execute] 参数:{}", reqBean);
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
Map<String, MesProdRouteOptParam> codeValueMap = stepCommonMethodService.getStepCfgInfo(reqBean);
|
||||
log.info("SxPlcOutStepService --- 产线[{}]工位[{}]:工步参数 [{}]", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), codeValueMap);
|
||||
|
||||
String plcCode = (!CollectionUtils.isEmpty(codeValueMap) && codeValueMap.containsKey(MesPcnExtConstWords.DATA_COLLECT_PLC_SN)) ?
|
||||
codeValueMap.get("PCN_OUT_CODE").getParamValue() : null;
|
||||
|
||||
String plcOutData = (!CollectionUtils.isEmpty(codeValueMap) && codeValueMap.containsKey(MesPcnExtConstWords.DATA_COLLECT_PLC_SN)) ?
|
||||
codeValueMap.get("PLC_OUT_DATA").getParamValue() : null;
|
||||
|
||||
//Map<String, String> wcpcMap = fsmCommonService.getCachedWorkCellParam(reqBean);
|
||||
|
||||
if (StringUtils.isEmpty(plcCode)) {
|
||||
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "当前工位未维护PLC代码");
|
||||
}
|
||||
MesPlc plc = snPopUpOnlineModuleService.getPlc(reqBean.getOrganizeCode(), plcCode);
|
||||
if (plc == null) {
|
||||
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("PLC代码[%s]不存在", plcCode));
|
||||
}
|
||||
|
||||
Boolean writeResult = snPopUpOnlineModuleService.doWriteOpcParamValue(plc, plcOutData);
|
||||
|
||||
log.info("SxPlcOutStepService --- 放行结果:{} ", writeResult);
|
||||
|
||||
return stepResult;
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.bean;
|
||||
|
||||
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Index;
|
||||
import javax.persistence.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: xiangming.liao
|
||||
* @Date: 2021/01/14 20:03
|
||||
* @Modify:
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table(name = "MES_MANAGE_CODE", indexes = {
|
||||
@Index(columnList = "MANAGE_CODE"),
|
||||
@Index(columnList = "WORK_CENTER_CODE"),
|
||||
@Index(columnList = "MANAGE_CODE,WORK_CENTER_CODE"),
|
||||
})
|
||||
@Api("MES_管理码主表")
|
||||
public class MesManageCode extends BaseBean implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 7851017539760486447L;
|
||||
|
||||
@Column(name = "MANAGE_CODE")
|
||||
@ApiParam(value = "管理编码")
|
||||
private String manageCode;
|
||||
|
||||
@Column(name = "WORK_CENTER_CODE")
|
||||
@ApiParam("产线代码")
|
||||
private String workCenterCode;
|
||||
|
||||
@Column(name = "WORK_CENTER_NAME")
|
||||
@ApiParam("产线名称")
|
||||
private String workCenterName;
|
||||
|
||||
//@Column(name = "USE_STATUS")
|
||||
//@ApiParam("使用状态")
|
||||
//@ColumnDefault("10")
|
||||
//@AnnoOutputColumn(refClass = MesPcnExtEnumUtil.MANAGE_USE_STATUS.class, refForeignKey = "value", value = "description")
|
||||
//private Integer useStatus;
|
||||
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.bean;
|
||||
|
||||
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Index;
|
||||
import javax.persistence.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: xinwang.yi
|
||||
* @Date: 2023/10/19 11:56
|
||||
* @Modify:
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table(name = "MES_MANUL_EXECUTE_OUT_TRAVEL", indexes = {
|
||||
@Index(columnList = "WORK_ORDER_NO,WORK_CELL_CODE"),
|
||||
@Index(columnList = "SERIAL_NUMBER")
|
||||
})
|
||||
@Api("MES_手动强制放行履历表")
|
||||
public class MesManulExecuteOutTravel extends BaseBean implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -2989268758068809547L;
|
||||
|
||||
@Column(name = "WORK_CENTER_CODE")
|
||||
@ApiParam(value = "产线代码")
|
||||
private String workCenterCode;
|
||||
|
||||
//@Column(name = "SHIFT_CODE")
|
||||
//@ApiParam("班次代码")
|
||||
//private String shiftCode;
|
||||
//
|
||||
//@Column(name = "WORK_TIME")
|
||||
//@ApiParam("作业时间")
|
||||
//private String workTime;
|
||||
|
||||
@Column(name = "WORK_ORDER_NO")
|
||||
@ApiParam(value = "生产工单号")
|
||||
public String workOrderNo;
|
||||
|
||||
@Column(name = "PART_NO")
|
||||
@ApiParam("物料号")
|
||||
private String partNo;
|
||||
|
||||
@Column(name = "PART_NAME_RDD")
|
||||
@ApiParam("物料名称")
|
||||
private String partNameRdd;
|
||||
|
||||
@Column(name = "WORK_CELL_CODE")
|
||||
@ApiParam(value = "工位代码")
|
||||
public String workCellCode;
|
||||
|
||||
@Column(name = "PROCESS_CODE")
|
||||
@ApiParam("工序代码")
|
||||
private String processCode;
|
||||
|
||||
//@Column(name = "PROCESS_NAME_RDD")
|
||||
//@ApiParam("工序名称")
|
||||
//private String processNameRdd;
|
||||
|
||||
@Column(name = "SERIAL_NUMBER")
|
||||
@ApiParam("过程条码")
|
||||
private String serialNumber;
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.repository;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesManageCode;
|
||||
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @author xinwang.yi
|
||||
* @version 1.0
|
||||
* @date 2023/10/12 9:17
|
||||
**/
|
||||
@Repository
|
||||
public interface MesManageCodeRepository extends BaseRepository<MesManageCode, Long> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.repository;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesManulExecuteOutTravel;
|
||||
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @author xinwang.yi
|
||||
* @version 1.0
|
||||
* @date 2023/10/19 9:17
|
||||
**/
|
||||
@Repository
|
||||
public interface MesManulExecuteOutTravelRepository extends BaseRepository<MesManulExecuteOutTravel, Long> {
|
||||
|
||||
}
|
Loading…
Reference in New Issue