forked from I3-YF/i3plus-mes-pcn-yfai
Merge remote-tracking branch 'origin/dev' into dev
commit
0cc30e4f19
@ -0,0 +1,40 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.api.base;
|
||||
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
|
||||
import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
||||
import cn.estsh.i3plus.pojo.base.common.Pager;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesShift;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 查询返工单
|
||||
* @Author: zxw
|
||||
* @Date: 2024/5/25 18:16
|
||||
* @Modify:
|
||||
*/
|
||||
public interface IMesReworkTaskService {
|
||||
|
||||
|
||||
@ApiOperation(value = "查询返工单")
|
||||
ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager);
|
||||
|
||||
@ApiOperation(value = "查询返工单")
|
||||
MesReworkTaskModel queryReworkTaskModel(MesReworkTaskRequestModel requestModel);
|
||||
|
||||
void reworkRecord(long detailId);
|
||||
|
||||
List<MesProductionAssembly> assemblyQuery(MesReworkTaskRequestModel requestModel);
|
||||
|
||||
void assemblySnRepeat(MesReworkTaskRequestModel requestModel);
|
||||
|
||||
void reworkSuccess(MesReworkTaskRequestModel requestModel);
|
||||
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesReworkTaskService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
|
||||
import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
||||
import cn.estsh.i3plus.pojo.base.common.Pager;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesShift;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
|
||||
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
||||
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 返工单
|
||||
* @Author: zxw
|
||||
* @Date: 2024/5/25 18:16
|
||||
* @Modify:
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping(MesCommonConstant.MES_YANFEN + "/reworkTask")
|
||||
public class MesReworkTaskController {
|
||||
|
||||
@Autowired
|
||||
private IMesReworkTaskService mesReworkTaskService;
|
||||
|
||||
@GetMapping("/query-pager")
|
||||
@ApiOperation(value = "查询所有返工单")
|
||||
public ResultBean queryReworkTaskByPager(MesReworkTask reworkTask, Pager pager) {
|
||||
try {
|
||||
reworkTask.setOrganizeCode(AuthUtil.getOrganizeCode());
|
||||
ListPager<MesReworkTask> mesReworkTaskListPager = mesReworkTaskService.queryReworkTask(reworkTask, pager);
|
||||
return ResultBean.success("查询成功").setListPager(mesReworkTaskListPager);
|
||||
} catch (ImppBusiException imppException) {
|
||||
return ResultBean.fail(imppException);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/queryBySn")
|
||||
@ApiOperation(value = "根据条码查询返工详情")
|
||||
public ResultBean queryBySn(MesReworkTaskRequestModel requestModel) {
|
||||
try {
|
||||
requestModel.setOrganizeCode(AuthUtil.getOrganizeCode());
|
||||
MesReworkTaskModel mesReworkTaskModel = mesReworkTaskService.queryReworkTaskModel(requestModel);
|
||||
return ResultBean.success("查询成功").setResultObject(mesReworkTaskModel);
|
||||
} catch (ImppBusiException imppException) {
|
||||
return ResultBean.fail(imppException);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/reworkRecord")
|
||||
@ApiOperation(value = "返工")
|
||||
public ResultBean reworkRecord(long[] inspectionDetailIds) {
|
||||
try {
|
||||
for (long inspectionDetailId : inspectionDetailIds) {
|
||||
mesReworkTaskService.reworkRecord(inspectionDetailId);
|
||||
}
|
||||
return ResultBean.success("返工成功");
|
||||
} catch (ImppBusiException imppException) {
|
||||
return ResultBean.fail(imppException);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/assemblyQuery")
|
||||
@ApiOperation(value = "装配件查询")
|
||||
public ResultBean assemblyQuery(MesReworkTaskRequestModel requestModel) {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(requestModel.getCustSn(), "客户条码不能为空");
|
||||
ValidatorBean.checkNotNull(requestModel.getPartNo(), "零件号不能为空");
|
||||
try {
|
||||
List<MesProductionAssembly> mesProductionRecords = mesReworkTaskService.assemblyQuery(requestModel);
|
||||
return ResultBean.success("返工成功").setResultObject(mesProductionRecords);
|
||||
} catch (ImppBusiException imppException) {
|
||||
return ResultBean.fail(imppException);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/assemblySnRepeat")
|
||||
@ApiOperation(value = "装配件替换")
|
||||
public ResultBean assemblySnRepeat(MesReworkTaskRequestModel requestModel) {
|
||||
try {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(requestModel.getCustSn(), "客户条码不能为空");
|
||||
ValidatorBean.checkNotNull(requestModel.getPartNo(), "零件号不能为空");
|
||||
ValidatorBean.checkNotNull(requestModel.getSn(), "替换条码不能为空");
|
||||
ValidatorBean.checkNotNull(requestModel.getDetailId(), "缺陷位置id不能为空");
|
||||
|
||||
mesReworkTaskService.assemblySnRepeat(requestModel);
|
||||
return ResultBean.success("返工成功");
|
||||
} catch (ImppBusiException imppException) {
|
||||
return ResultBean.fail(imppException);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/reworkSuccess")
|
||||
@ApiOperation(value = "返工成功")
|
||||
public ResultBean reworkSuccess(MesReworkTaskRequestModel requestModel) {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(requestModel.getSn(), "条码不能为空");
|
||||
try {
|
||||
mesReworkTaskService.reworkSuccess(requestModel);
|
||||
return ResultBean.success("返工成功");
|
||||
} catch (ImppBusiException imppException) {
|
||||
return ResultBean.fail(imppException);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,286 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesReworkTaskService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
||||
import cn.estsh.i3plus.pojo.base.common.Pager;
|
||||
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.*;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTaskDetail;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.*;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
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.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 查询返工单
|
||||
* @Author: zxw
|
||||
* @Date: 2024/5/21 14:16
|
||||
* @Modify:
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MesReworkTaskServiceImpl.class);
|
||||
|
||||
|
||||
@Autowired
|
||||
private MesReworkTaskRepository mesReworkTaskRepository;
|
||||
@Autowired
|
||||
private MesPartTypePictureRepository mesPartTypePictureRepository;
|
||||
|
||||
@Autowired
|
||||
private MesPartRepository mesPartRepository;
|
||||
|
||||
@Autowired
|
||||
private MesPartInspectionRepository mesPartInspectionRepository;
|
||||
|
||||
@Autowired
|
||||
private MesPartInspectionDetailRepository mesPartInspectionDetailRepository;
|
||||
|
||||
@Autowired
|
||||
private MesReworkTaskDetailRepository mesReworkTaskDetailRepository;
|
||||
|
||||
@Autowired
|
||||
private MesProductionAssemblyRepository mesProductionAssemblyRepository;
|
||||
|
||||
@Autowired
|
||||
private MesProduceSnRepository mesProduceSnRepository;
|
||||
|
||||
@Override
|
||||
public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) {
|
||||
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode());
|
||||
if (mesReworkTask.getSn() != null) {
|
||||
DdlPreparedPack.getStringEqualPack(mesReworkTask.getSn(), "sn", packBean);
|
||||
}
|
||||
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean);
|
||||
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
|
||||
|
||||
pager = PagerHelper.getPager(pager, mesReworkTaskRepository.findByHqlWhereCount(packBean));
|
||||
|
||||
List<MesReworkTask> resultList = mesReworkTaskRepository.findByHqlWherePage(packBean, pager);
|
||||
|
||||
return new ListPager<>(resultList, pager);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public MesReworkTaskModel queryReworkTaskModel(MesReworkTaskRequestModel requestModel){
|
||||
/**
|
||||
* 获取返工单信息
|
||||
*/
|
||||
MesReworkTask res = getMesReworkTask(requestModel);
|
||||
|
||||
/**
|
||||
* 获取返工单信息
|
||||
*/
|
||||
List<MesReworkTaskDetail> reworkTaskDetails = getMesReworkTaskDetail(res);
|
||||
/**
|
||||
* 获取零件图片信息
|
||||
*/
|
||||
MesPartTypePicture mesPartTypePicture = getMesPartTypePicture(res);
|
||||
/**
|
||||
* 获取缺陷记录
|
||||
*/
|
||||
MesPartInspection mesPartInspection = getMesPartInspection(res);
|
||||
/**
|
||||
* 获取零件缺陷明细列表
|
||||
*/
|
||||
List<MesPartInspectionDetail> mesPartInspectionDetails = getMesPartInspectionDetail(reworkTaskDetails);
|
||||
|
||||
/**
|
||||
* 组装返回信息
|
||||
*/
|
||||
MesReworkTaskModel mesReworkTaskModel = MesReworkTaskModel.builder()
|
||||
.reworkOrder(res.getReworkOrder())
|
||||
.sn(res.getSn())
|
||||
.mesPartTypePicture(mesPartTypePicture)
|
||||
.mesPartInspection(mesPartInspection)
|
||||
.mesPartInspectionDetails(mesPartInspectionDetails).build();
|
||||
|
||||
|
||||
return mesReworkTaskModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reworkRecord(long detailId) {
|
||||
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode());
|
||||
DdlPreparedPack.getNumEqualPack(detailId, "partInspectionDetailId", packBean);
|
||||
|
||||
MesReworkTaskDetail mesReworkTaskDetail = mesReworkTaskDetailRepository.getByProperty(packBean);
|
||||
if (mesReworkTaskDetail == null) {
|
||||
MesPcnException.throwFlowException("返工单详情不存在");
|
||||
}
|
||||
mesReworkTaskDetail.setStatus(MesExtEnumUtil.REWORK_TASK_DETAIL_STATUS.REWORK_TASK_DETAIL_STATUS_20.getValue());
|
||||
mesReworkTaskDetailRepository.save(mesReworkTaskDetail);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<MesProductionAssembly> assemblyQuery(MesReworkTaskRequestModel requestModel) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(requestModel.getCustSn(), "custSn", packBean);
|
||||
DdlPreparedPack.getStringEqualPack(requestModel.getPartNo(), "partNo", packBean);
|
||||
if (!StringUtils.isEmpty(requestModel.getAssemblyPartNo())) {
|
||||
DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean);
|
||||
}
|
||||
if (!Objects.isNull(requestModel.getAssemblyPartStatus())) {
|
||||
DdlPreparedPack.getNumEqualPack(requestModel.getAssemblyPartStatus(), "assemblyStatus", packBean);
|
||||
}
|
||||
|
||||
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"assemblyStatus"}, packBean);
|
||||
|
||||
List<MesProductionAssembly> mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean);
|
||||
if (CollectionUtils.isEmpty(mesProductionAssemblies)) {
|
||||
MesPcnException.throwFlowException("装配件信息不存在");
|
||||
}
|
||||
return mesProductionAssemblies;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reworkSuccess(MesReworkTaskRequestModel requestModel) {
|
||||
|
||||
MesReworkTask mesReworkTask = getMesReworkTask(requestModel);
|
||||
/**
|
||||
* 获取返工单信息
|
||||
*/
|
||||
List<MesReworkTaskDetail> reworkTaskDetails = getMesReworkTaskDetail(mesReworkTask);
|
||||
if (!CollectionUtils.isEmpty(reworkTaskDetails)) {
|
||||
MesPcnException.throwFlowException("还有位置未返工完成,请检查");
|
||||
}
|
||||
mesReworkTask.setStatus(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue());
|
||||
mesReworkTaskRepository.update(mesReworkTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void assemblySnRepeat(MesReworkTaskRequestModel requestModel) {
|
||||
|
||||
try {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(requestModel.getSn(), "sn", packBean);
|
||||
MesProduceSn mesProduceSn = mesProduceSnRepository.getByProperty(packBean);
|
||||
if (mesProduceSn == null) {
|
||||
MesPcnException.throwFlowException("条码信息不存在");
|
||||
}
|
||||
requestModel.setAssemblyPartNo(mesProduceSn.getPartNo());
|
||||
requestModel.setAssemblyPartStatus(MesExtEnumUtil.ASSEMBLY_PART_STATUS.ASSEMBLY_PART_STATUS_10.getValue());
|
||||
List<MesProductionAssembly> mesProductionAssemblies = assemblyQuery(requestModel);
|
||||
if (CollectionUtils.isEmpty(mesProductionAssemblies)) {
|
||||
MesPcnException.throwFlowException("未匹配到该条码的零件号");
|
||||
}
|
||||
// 需要变更之前的记录
|
||||
MesProductionAssembly mesProductionAssembly = mesProductionAssemblies.get(0);
|
||||
mesProductionAssembly.setAssemblyStatus(MesExtEnumUtil.ASSEMBLY_PART_STATUS.ASSEMBLY_PART_STATUS_20.getValue());
|
||||
|
||||
|
||||
// 需要新增一条替换条码的记录
|
||||
MesProductionAssembly mesProductionRepeatAssembly = new MesProductionAssembly();
|
||||
BeanUtils.copyProperties(mesProductionAssembly, mesProductionRepeatAssembly);
|
||||
mesProductionRepeatAssembly.setAssemblyStatus(MesExtEnumUtil.ASSEMBLY_PART_STATUS.ASSEMBLY_PART_STATUS_10.getValue());
|
||||
mesProductionRepeatAssembly.setId(null);
|
||||
|
||||
mesProductionAssembly.setRepeatAssemblySn(requestModel.getSn());
|
||||
mesProductionAssemblyRepository.update(mesProductionAssembly);
|
||||
|
||||
mesProductionAssemblyRepository.insert(mesProductionRepeatAssembly);
|
||||
/**
|
||||
* 需要更新NC标记后进入的表明细状态为已处理
|
||||
*/
|
||||
reworkRecord(requestModel.getDetailId());
|
||||
} catch (Exception e) {
|
||||
log.error("替换条码异常", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private MesPartInspection getMesPartInspection(MesReworkTask mesReworkTask) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(mesReworkTask.getSn(), "sn", packBean);
|
||||
|
||||
MesPartInspection mesPartInspection = mesPartInspectionRepository.getByProperty(packBean);
|
||||
if (mesPartInspection == null) {
|
||||
throw new ImppBusiException("返工单信息不存在");
|
||||
}
|
||||
return mesPartInspection;
|
||||
}
|
||||
|
||||
private List<MesPartInspectionDetail> getMesPartInspectionDetail(List<MesReworkTaskDetail> reworkTaskDetails) {
|
||||
|
||||
List<Long> ids = reworkTaskDetails.stream().map(MesReworkTaskDetail::getPartInspectionDetailId).collect(Collectors.toList());
|
||||
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(reworkTaskDetails.get(0).getOrganizeCode());
|
||||
DdlPreparedPack.getInPackList(ids, "id", packBean);
|
||||
|
||||
return mesPartInspectionDetailRepository.findByHqlWhere(packBean);
|
||||
}
|
||||
|
||||
private MesPartTypePicture getMesPartTypePicture(MesReworkTask mesReworkTask) {
|
||||
DdlPackBean partBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(mesReworkTask.getPartNo(), "partNo", partBean);
|
||||
MesPart mesPart = mesPartRepository.getByProperty(partBean);
|
||||
if (mesPart == null) {
|
||||
MesPcnException.throwFlowException(String.format("零件信息不存在,根据物料号查询[%s]", mesReworkTask.getPartNo()));
|
||||
}
|
||||
|
||||
DdlPackBean pictureBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(mesPart.getPartTypeCode(), "partTypeCode", pictureBean);
|
||||
MesPartTypePicture mesPartTypePicture = mesPartTypePictureRepository.getByProperty(pictureBean);
|
||||
if (mesPartTypePicture == null) {
|
||||
throw new ImppBusiException(String.format("图片信息不存在,根据物料号查询[%s]", mesReworkTask.getPartNo()));
|
||||
}
|
||||
return mesPartTypePicture;
|
||||
}
|
||||
|
||||
private MesReworkTask getMesReworkTask(MesReworkTaskRequestModel requestModel) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(requestModel.getSn(), "sn", packBean);
|
||||
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean);
|
||||
|
||||
MesReworkTask res = mesReworkTaskRepository.getByProperty(packBean);
|
||||
if (res == null) {
|
||||
throw new ImppBusiException("返工单信息不存在");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
private List<MesReworkTaskDetail> getMesReworkTaskDetail(MesReworkTask mesReworkTask) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
||||
DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "pid", packBean);
|
||||
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_DETAIL_STATUS.REWORK_TASK_DETAIL_STATUS_10.getValue(), "status", packBean);
|
||||
|
||||
List<MesReworkTaskDetail> res = mesReworkTaskDetailRepository.findByHqlWhere(packBean);
|
||||
if (CollectionUtils.isEmpty(res)) {
|
||||
throw new ImppBusiException("返工单详情信息不存在");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatchService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
|
||||
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.MesEquipVariableCfgCollectContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
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.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.*;
|
||||
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.i3plus.pojo.mes.repository.IMesMouldMappingCfgRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesProdMouldRecordRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.*;
|
||||
|
||||
/**
|
||||
* @Description : 生成开模记录工步
|
||||
* @Author : zxw
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("mesMouldRecordGenerateStepService")
|
||||
public class MesMouldRecordGenerateStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private MesProdMouldRecordRepository mesProdMouldRecordRepository;
|
||||
|
||||
@Autowired
|
||||
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
|
||||
@Autowired
|
||||
private IMesMouldMappingCfgRepository mesMouldMappingCfgRepository;
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
|
||||
|
||||
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
|
||||
List<MesProduceSn> mesProduceSns = productionProcessContext.getProduceSnDataList();
|
||||
|
||||
List<MesProdMouldRecord> mesProdMouldRecords = new ArrayList<>();
|
||||
for (MesProduceSn mesProduceSn : mesProduceSns) {
|
||||
MesCellEquipContext mesCellEquipContext = productionProcessContext.getCurCellEquip();
|
||||
|
||||
String equipmentCode = mesCellEquipContext.getEquipmentCode();
|
||||
|
||||
String mouldNo = "";
|
||||
if (productionProcessContext.getFirstMouldNo() != null) {
|
||||
mouldNo = productionProcessContext.getFirstMouldNo().getEquipVariableValue();
|
||||
} else if (productionProcessContext.getFirstMouldNo() == null && productionProcessContext.getMouldNo() != null) {
|
||||
mouldNo = productionProcessContext.getMouldNo().getEquipVariableValue();
|
||||
}
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
|
||||
DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", packBean);
|
||||
DdlPreparedPack.getStringEqualPack(mouldNo, "mouldNo", packBean);
|
||||
MesMouldMappingCfg mesMouldMappingCfg = mesMouldMappingCfgRepository.getByProperty(packBean);
|
||||
//配置错误 抛出异常
|
||||
if (mesMouldMappingCfg == null) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
||||
String.format("请检查模具映射关系维护,根据设备[%s],模具号[%s]", equipmentCode, mouldNo));
|
||||
|
||||
|
||||
MesProdMouldRecord mesProductionRecord = getMesProdMouldRecord(mesCellEquipContext, mouldNo, mesMouldMappingCfg);
|
||||
mesProdMouldRecords.add(mesProductionRecord);
|
||||
}
|
||||
|
||||
mesProdMouldRecordRepository.saveAll(mesProdMouldRecords);
|
||||
|
||||
return StepResult.getSuccessComplete();
|
||||
}
|
||||
|
||||
private MesProdMouldRecord getMesProdMouldRecord(MesCellEquipContext mesCellEquipContext, String mouldNo, MesMouldMappingCfg mesMouldMappingCfg) {
|
||||
MesProdMouldRecord mesProdMouldRecord = new MesProdMouldRecord();
|
||||
mesProdMouldRecord.setEquipId(mesCellEquipContext.getEquipId());
|
||||
mesProdMouldRecord.setMeterName(mesMouldMappingCfg.getMeterName());
|
||||
mesProdMouldRecord.setAssetNum(mesMouldMappingCfg.getAssetNum());
|
||||
mesProdMouldRecord.setEquipmentCode(mesCellEquipContext.getEquipmentCode());
|
||||
return mesProdMouldRecord;
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.model;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesPartTypePicture;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class MesReworkTaskModel {
|
||||
/**
|
||||
* 条码
|
||||
*/
|
||||
private String sn;
|
||||
/**
|
||||
* 返工单
|
||||
*/
|
||||
private String reworkOrder;
|
||||
/**
|
||||
* 返工单零件对应的图片信息
|
||||
*/
|
||||
private MesPartTypePicture mesPartTypePicture;
|
||||
/**
|
||||
* 缺陷信息
|
||||
*/
|
||||
private MesPartInspection mesPartInspection;
|
||||
/**
|
||||
* 缺陷明细
|
||||
*/
|
||||
private List<MesPartInspectionDetail> mesPartInspectionDetails;
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.model;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesPartTypePicture;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MesReworkTaskRequestModel {
|
||||
|
||||
/**
|
||||
* 条码
|
||||
*/
|
||||
private String sn;
|
||||
/**
|
||||
* 条码
|
||||
*/
|
||||
private String custSn;
|
||||
/**
|
||||
* 返工单
|
||||
*/
|
||||
private String reworkOrder;
|
||||
|
||||
/**
|
||||
* 零件号
|
||||
*/
|
||||
private String partNo;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String assemblyPartNo;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String organizeCode;
|
||||
|
||||
private Integer assemblyPartStatus;
|
||||
|
||||
private Long detailId;
|
||||
|
||||
}
|
Loading…
Reference in New Issue