检验通过修改订单方法

liweidong
李涛 4 days ago
parent 5e09940306
commit 982452cb4e
  1. 22
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/RetrospectDefendDTO.java
  2. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/EleFilesEditVO.java
  3. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java
  4. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProcessQualityMaintenanceController.java
  5. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml
  6. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java
  7. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IProcessQualityMaintenanceService.java
  8. 55
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java
  9. 72
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java

@ -1,22 +0,0 @@
package org.springblade.desk.produce.pojo.dto;
import lombok.Data;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity;
import java.util.List;
@Data
public class RetrospectDefendDTO {
private Long ecId;
private Long rfpId;
private Long mtuId;
private List<Long> wpIdList;
private Boolean line;
private List<MesRbFilePreserveSlotEntity> preserveSlotList;
}

@ -30,6 +30,8 @@ public class EleFilesEditVO {
private String mtnCode; private String mtnCode;
private List<Long> wpIdList;
private List<MesQcProduceRunEntity> mesQcProduceRunEntityList; private List<MesQcProduceRunEntity> mesQcProduceRunEntityList;
private List<ProduceMonitorFileSlotVO> produceMonitorFileSlotVOList; private List<ProduceMonitorFileSlotVO> produceMonitorFileSlotVOList;

@ -10,7 +10,6 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MakeRecDTO; import org.springblade.desk.produce.pojo.dto.MakeRecDTO;
import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO;
import org.springblade.desk.produce.pojo.dto.WorkPlanDto; import org.springblade.desk.produce.pojo.dto.WorkPlanDto;
import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import org.springblade.desk.produce.pojo.vo.MesMakeRecVO;

@ -10,9 +10,6 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO;
import org.springblade.desk.produce.pojo.entity.DsRbFilePreserve;
import org.springblade.desk.produce.pojo.entity.MesEquipmentCardEntity;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.produce.service.IMakeRecService; import org.springblade.desk.produce.service.IMakeRecService;
@ -108,8 +105,8 @@ public class ProcessQualityMaintenanceController extends BladeController {
@PostMapping("/saveRetrospectDefend") @PostMapping("/saveRetrospectDefend")
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@Operation(summary = "首次维护-保存") @Operation(summary = "首次维护-保存")
public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) { public R saveRetrospectDefend(@RequestBody EleFilesEditVO eleFilesEditVO) {
return R.status(makeRecService.saveRetrospectDefend(retrospectDefendDTO)); return R.status(proQuaMainService.saveRetrospectDefend(eleFilesEditVO));
} }
@GetMapping(value = "/loadPrMacToolUseByMtnCode") @GetMapping(value = "/loadPrMacToolUseByMtnCode")

@ -317,15 +317,16 @@
SELECT SELECT
c.card_no c.card_no
FROM FROM
PR_MAC_TOOL_USE a, MES_MAC_TOOL_USE a,
rb_pr_work_plan b, MES_WORK_PLAN b,
pr_work_order c MES_WORK_ORDER c
<where> <where>
a.wp_id = b.wp_id a.wp_id = b.id
AND b.wo_id = c.wo_id AND b.wo_id = c.id
<if test="mtnCode != null"> <if test="mtnCode != null and mtnCode != ''">
AND a.mtn_code = #{mtnCode} AND a.mtn_code = #{mtnCode}
</if> </if>
AND a.IS_DELETED = 0
</where> </where>
</select> </select>
<select id="getProduceMonitorWorkPlanList" <select id="getProduceMonitorWorkPlanList"

@ -2,8 +2,6 @@ package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.MakeRecDTO;
import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO;
import org.springblade.desk.produce.pojo.dto.WorkPlanDto; import org.springblade.desk.produce.pojo.dto.WorkPlanDto;
import org.springblade.desk.produce.pojo.entity.MakeRec; import org.springblade.desk.produce.pojo.entity.MakeRec;
import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.entity.WorkPlan;
@ -30,9 +28,4 @@ public interface IMakeRecService extends BaseService<MakeRec> {
WorkPlanLoadVO loadNotReceived(String cardNo); WorkPlanLoadVO loadNotReceived(String cardNo);
List<WorkPlan> afterPlaReceive(String cardNo); List<WorkPlan> afterPlaReceive(String cardNo);
/**
* 手动维护生产追溯
* @param retrospectDefendDTO
*/
boolean saveRetrospectDefend(RetrospectDefendDTO retrospectDefendDTO);
} }

@ -2,9 +2,6 @@ package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO;
import org.springblade.desk.produce.pojo.entity.DsRbFilePreserve;
import org.springblade.desk.produce.pojo.entity.MesEquipmentCardEntity;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.entity.ProReTemplate;
@ -46,4 +43,6 @@ public interface IProcessQualityMaintenanceService {
boolean remarryRedeemSaveRetrospectDefend(EleFilesEditVO eleFilesEditVO); boolean remarryRedeemSaveRetrospectDefend(EleFilesEditVO eleFilesEditVO);
GoodsVO getMaterialMess(String goodsCode); GoodsVO getMaterialMess(String goodsCode);
boolean saveRetrospectDefend(EleFilesEditVO eleFilesEditVO);
} }

@ -1,6 +1,5 @@
package org.springblade.desk.produce.service.impl; package org.springblade.desk.produce.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -21,8 +20,6 @@ import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.produce.mapper.MakeRecMapper; import org.springblade.desk.produce.mapper.MakeRecMapper;
import org.springblade.desk.produce.mapper.WorkOrderMapper; import org.springblade.desk.produce.mapper.WorkOrderMapper;
import org.springblade.desk.produce.mapper.WorkPlanMapper; import org.springblade.desk.produce.mapper.WorkPlanMapper;
import org.springblade.desk.produce.pojo.dto.MakeRecDTO;
import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO;
import org.springblade.desk.produce.pojo.dto.WorkPlanDto; import org.springblade.desk.produce.pojo.dto.WorkPlanDto;
import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.enums.WorkOrderEnum; import org.springblade.desk.produce.pojo.enums.WorkOrderEnum;
@ -31,9 +28,7 @@ import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO;
import org.springblade.desk.produce.service.*; import org.springblade.desk.produce.service.*;
import org.springblade.system.cache.UserCache; import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
@ -123,6 +118,7 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
} }
} }
@Override
public boolean chkRfpDetail(Long wpId) { public boolean chkRfpDetail(Long wpId) {
List<MacToolUse> macToolUses = macToolUseService.list(Wrappers.lambdaQuery(MacToolUse.class).isNotNull(MacToolUse::getRfpId).ne(MacToolUse::getMtuIndex, "2").eq(MacToolUse::getWpId, wpId)); List<MacToolUse> macToolUses = macToolUseService.list(Wrappers.lambdaQuery(MacToolUse.class).isNotNull(MacToolUse::getRfpId).ne(MacToolUse::getMtuIndex, "2").eq(MacToolUse::getWpId, wpId));
if (CollectionUtils.isNotEmpty(macToolUses)) { if (CollectionUtils.isNotEmpty(macToolUses)) {
@ -370,53 +366,4 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
return workPlanMapper.afterPlaReceive(wo.getCardNo()); return workPlanMapper.afterPlaReceive(wo.getCardNo());
} }
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveRetrospectDefend(RetrospectDefendDTO retrospectDefendDTO) {
WorkPlan prWorkPlan = null;
MesEquipmentCardEntity equipmentCard = mesEquipmentCardService.getById(retrospectDefendDTO.getEcId());
MacToolUse prMacToolUse;
List<MesQcProduceRunEntity> produceRunList;
String code = macToolUseService.nextCode(2);
for (Long wpId : retrospectDefendDTO.getWpIdList()) {
prWorkPlan = workPlanMapper.selectById(wpId);
prWorkPlan.setPrintType((short) 1);
if (prWorkPlan.getStatus().equals(WorkPlan.STATUS_START)) {
throw new ServiceException("流程卡为 " + prWorkPlan.getCaId() + " 的订单对应的工序不在加工中暂时不可再维护!");
}
// 查询自动生产追溯是否已经开始
produceRunList = mesQcProduceRunService.listPrByWpIdIndex(wpId, 2, Boolean.FALSE);
// 上线前 没有生产追溯数据
if (retrospectDefendDTO.getLine().equals(Boolean.TRUE)) {
if (produceRunList != null && !produceRunList.isEmpty()) {
throw new ServiceException("流程卡为 " + prWorkPlan.getCaId() + " 的订单对应的工序已经在已上线,不可再维护!");
}
} else if (retrospectDefendDTO.getLine().equals(Boolean.FALSE)) {
// 下线后 有自动生产追溯数据
if (produceRunList.isEmpty()) {
throw new ServiceException("流程卡为 " + prWorkPlan.getId() + " 的订单对应的工序还未下线,不可再维护!");
}
MacToolUse macToolUse = macToolUseService.getDataByWpIdAndIndex(wpId, String.valueOf(2));
if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) {
macToolUse.setFinished(1);
String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:saveRetrospectDefend(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished());
macToolUseService.updateById(macToolUse);
}
}
}
// 创建一条绑定记录
prMacToolUse = new MacToolUse();
prMacToolUse.setWpId(prWorkPlan.getId());
prMacToolUse.setEquipmentCard(equipmentCard.getId());
prMacToolUse.setFinished(1);
prMacToolUse.setCreateMan(AuthUtil.getUserId());
prMacToolUse.setRfpId(retrospectDefendDTO.getRfpId().toString());
prMacToolUse.setMtnCode(code);
prMacToolUse.setMtuIndex(String.valueOf(retrospectDefendDTO.getLine() ? 1 : 3));
return macToolUseService.save(prMacToolUse);
}
} }

@ -21,9 +21,7 @@ import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.produce.service.*; import org.springblade.desk.produce.service.*;
import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import org.springblade.desk.quality.service.IProReTemplateDetailService;
import org.springblade.desk.quality.service.IProReTemplateService; import org.springblade.desk.quality.service.IProReTemplateService;
import org.springblade.desk.quality.service.IProReTemplateTankService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -385,6 +383,7 @@ public class ProcessQualityMaintenanceServiceImpl implements IProcessQualityMain
throw new ServiceException("未找到维护的数据!!!"); throw new ServiceException("未找到维护的数据!!!");
} }
MesQcProduceRunEntity qcProduceRunOld = null; MesQcProduceRunEntity qcProduceRunOld = null;
List<MesQcProduceRunEntity> qcProduceRunsListIndexOne = new ArrayList<>();
for (ProduceMonitorFileSlotVO dsRbFilePreserveSlot : preserveSlotList) { for (ProduceMonitorFileSlotVO dsRbFilePreserveSlot : preserveSlotList) {
for (MesQcProduceRunEntity qcProduceRun : qcProduceRunsList) { for (MesQcProduceRunEntity qcProduceRun : qcProduceRunsList) {
if (dsRbFilePreserveSlot.getSlotName().equals(qcProduceRun.getWorkSlot())) { if (dsRbFilePreserveSlot.getSlotName().equals(qcProduceRun.getWorkSlot())) {
@ -393,10 +392,9 @@ public class ProcessQualityMaintenanceServiceImpl implements IProcessQualityMain
} }
List<MesRbFilePreserveDetailEntity> childrenList = dsRbFilePreserveSlot.getChildrenList(); List<MesRbFilePreserveDetailEntity> childrenList = dsRbFilePreserveSlot.getChildrenList();
this.savePreserveSlotList(childrenList, qcProduceRunOld, dsRbFilePreserveSlot.getRfpsType()); this.savePreserveSlotList(childrenList, qcProduceRunOld, dsRbFilePreserveSlot.getRfpsType());
qcProduceRunsListIndexOne.add(qcProduceRunOld);
qcProduceRunService.updateById(qcProduceRunOld);
} }
return false; return qcProduceRunService.updateBatchById(qcProduceRunsListIndexOne);
} }
@Override @Override
@ -404,6 +402,70 @@ public class ProcessQualityMaintenanceServiceImpl implements IProcessQualityMain
return macToolUseService.getMaterialMess(goodsCode); return macToolUseService.getMaterialMess(goodsCode);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveRetrospectDefend(EleFilesEditVO eleFilesEditVO) {
WorkPlan prWorkPlan;
EquipmentEntity equipmentCard = mesEquipmentCardService.getById(eleFilesEditVO.getEcId());
MacToolUse prMacToolUse;
List<MesQcProduceRunEntity> produceRunList;
String code = macToolUseService.nextCode(2);
for (Long wpId : eleFilesEditVO.getWpIdList()) {
prWorkPlan = workPlanService.getById(wpId);
prWorkPlan.setPrintType((short) 1);
if (!prWorkPlan.getStatus().equals(WorkPlan.STATUS_START)) {
throw new ServiceException("流程卡为 " + prWorkPlan.getCaId() + " 的订单对应的工序不在加工中暂时不可再维护!");
}
// 查询自动生产追溯是否已经开始
produceRunList = qcProduceRunService.listPrByWpIdIndex(wpId, 2, Boolean.FALSE);
// 上线前 没有生产追溯数据
if (eleFilesEditVO.getLine().equals(Boolean.TRUE)) {
if (produceRunList != null && !produceRunList.isEmpty()) {
throw new ServiceException("流程卡为 " + prWorkPlan.getCaId() + " 的订单对应的工序已经在已上线,不可再维护!");
}
} else if (eleFilesEditVO.getLine().equals(Boolean.FALSE)) {
// 下线后 有自动生产追溯数据
if (produceRunList.isEmpty()) {
throw new ServiceException("流程卡为 " + prWorkPlan.getId() + " 的订单对应的工序还未下线,不可再维护!");
}
MacToolUse macToolUse = macToolUseService.getDataByWpIdAndIndex(wpId, String.valueOf(2));
if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) {
macToolUse.setFinished(1);
String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:saveRetrospectDefend(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished());
macToolUseService.updateById(macToolUse);
}
}
// 创建一条绑定记录
prMacToolUse = new MacToolUse();
prMacToolUse.setWpId(prWorkPlan.getId());
prMacToolUse.setEquipmentCard(equipmentCard.getId());
prMacToolUse.setFinished(1);
prMacToolUse.setCreateMan(AuthUtil.getUserId());
prMacToolUse.setBindTime(new Date());
prMacToolUse.setRfpId(eleFilesEditVO.getRfpId().toString());
prMacToolUse.setMtnCode(code);
prMacToolUse.setMtuIndex(String.valueOf(eleFilesEditVO.getLine() ? 1 : 3));
macToolUseService.save(prMacToolUse);
}
List<ProduceMonitorFileSlotVO> preserveSlotList = eleFilesEditVO.getProduceMonitorFileSlotVOList();
MesQcProduceRunEntity qcProduceRun;
List<MesQcProduceRunEntity> qcProduceRunList = new ArrayList<>();
for (ProduceMonitorFileSlotVO mesRbFilePreserveSlotEntity : preserveSlotList) {
qcProduceRun = new MesQcProduceRunEntity();
qcProduceRun.setMtnCode(code);
qcProduceRun.setDeviceId(equipmentCard.getDeviceCode());
qcProduceRun.setWorkSlot(mesRbFilePreserveSlotEntity.getSlotName());
List<MesRbFilePreserveDetailEntity> childrenList = mesRbFilePreserveSlotEntity.getChildrenList();
this.savePreserveSlotList(childrenList, qcProduceRun, mesRbFilePreserveSlotEntity.getRfpsType());
qcProduceRunList.add(qcProduceRun);
}
qcProduceRunService.saveBatch(qcProduceRunList);
return true;
}
private void savePreserveSlotList(List<MesRbFilePreserveDetailEntity> childrenList, MesQcProduceRunEntity qcProduceRun, Short rfpsType) { private void savePreserveSlotList(List<MesRbFilePreserveDetailEntity> childrenList, MesQcProduceRunEntity qcProduceRun, Short rfpsType) {
for (int i = 0; i < childrenList.size(); i++) { for (int i = 0; i < childrenList.size(); i++) {
MesRbFilePreserveDetailEntity dsRbFilePreserveDetail = childrenList.get(i); MesRbFilePreserveDetailEntity dsRbFilePreserveDetail = childrenList.get(i);

Loading…
Cancel
Save