生产接口开发

liweidong
李涛 4 weeks ago
parent 20bcb3cf9f
commit 81535de8c8
  1. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/UnBingVo.java
  2. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java
  3. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  4. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  5. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.java
  6. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.xml
  7. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java
  8. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java

@ -1,5 +1,6 @@
package org.springblade.desk.produce.pojo.vo; package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -7,8 +8,11 @@ import java.util.List;
@Data @Data
public class UnBingVo { public class UnBingVo {
@Schema(description = "挂具编号")
private String rsCode; private String rsCode;
@Schema(description = "飞靶编号")
private String fsCode; private String fsCode;
@Schema(description = "设备编号")
private String deviceCode; private String deviceCode;
} }

@ -975,7 +975,7 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
} }
// 1. 获取生产订单信息 // 1. 获取生产订单信息
YieldOrder yieldOrder = yieldOrderService.selectByPartCOdeAndBatchNo(partCode, batchNo); YieldOrder yieldOrder = yieldOrderService.selectByPartCOdeAndBatchNo(partCode, batchNo, reworkOrder);
if (yieldOrder == null) { if (yieldOrder == null) {
throw new RuntimeException("无法在生产订单中获取零件版本号,零件号:" + partCode + ",批次号:" + batchNo); throw new RuntimeException("无法在生产订单中获取零件版本号,零件号:" + partCode + ",批次号:" + batchNo);
} }

@ -211,11 +211,12 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
/** /**
* 根据 零件号 批次号查询 * 根据 零件号 批次号查询
*
* @param partCode * @param partCode
* @param batchNo * @param batchNo
* @return * @return
*/ */
YieldOrder selectByPartCOdeAndBatchNo(String partCode, String batchNo); YieldOrder selectByPartCOdeAndBatchNo(String partCode, String batchNo, String reworkOrder);
/** /**
* <p>方法名: getNewCardNo </p> * <p>方法名: getNewCardNo </p>

@ -716,8 +716,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
} }
@Override @Override
public YieldOrder selectByPartCOdeAndBatchNo(String partCode, String batchNo) { public YieldOrder selectByPartCOdeAndBatchNo(String partCode, String batchNo, String reworkOrder) {
return workOrderMapper.selectByPartCOdeAndBatchNo(partCode, batchNo); return workOrderMapper.selectByPartCOdeAndBatchNo(partCode, batchNo, reworkOrder);
} }
@Override @Override

@ -45,7 +45,7 @@ public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
List<QueryByReadStatusVO> queryByReadStatusPage(IPage page, QueryByReadStatusDTO query); List<QueryByReadStatusVO> queryByReadStatusPage(IPage page, QueryByReadStatusDTO query);
YieldOrder selectByPartCOdeAndBatchNo(@Param("partCode") String partCode,@Param("batchNo") String batchNo); YieldOrder selectByPartCOdeAndBatchNo(@Param("partCode") String partCode, @Param("batchNo") String batchNo, @Param("reworkOrder") String reworkOrder);
WorkOrderEntity selectByYoId(@Param("yoId") Long yoId); WorkOrderEntity selectByYoId(@Param("yoId") Long yoId);

@ -185,7 +185,12 @@
ORDER BY a.CREATE_TIME DESC ORDER BY a.CREATE_TIME DESC
</select> </select>
<select id="selectByPartCOdeAndBatchNo" resultType="org.springblade.desk.order.pojo.entity.YieldOrder"> <select id="selectByPartCOdeAndBatchNo" resultType="org.springblade.desk.order.pojo.entity.YieldOrder">
select * from MES_YIELD_ORDER where IS_DELETED = 0 and PART_CODE = #{partCode} and BATCH_NO = #{batchNo} SELECT * FROM (select yo.*
from MES_YIELD_ORDER yo inner join MES_WORK_ORDER wo on yo.ID = wo.YO_ID
where yo.IS_DELETED = 0
and yo.PART_CODE = #{partCode}
and yo.BATCH_NO = #{batchNo}
and wo.REWORK_CODE = #{reworkOrder}) WHERE ROWNUM = 1
</select> </select>
<select id="selectByYoId" resultType="org.springblade.scheduling.pojo.entity.WorkOrderEntity"> <select id="selectByYoId" resultType="org.springblade.scheduling.pojo.entity.WorkOrderEntity">

@ -9,7 +9,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.dashboard.service.IBsProcessSetService; import org.springblade.desk.dashboard.service.IBsProcessSetService;
import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity;
import org.springblade.desk.device.service.IEquipmentService;
import org.springblade.desk.device.service.IRackSetService; import org.springblade.desk.device.service.IRackSetService;
import org.springblade.desk.produce.mapper.MacToolUseMapper; import org.springblade.desk.produce.mapper.MacToolUseMapper;
import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MacToolUse;
@ -18,9 +20,11 @@ import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import org.springblade.desk.produce.service.IMacToolUseService; import org.springblade.desk.produce.service.IMacToolUseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static com.fasterxml.jackson.databind.type.LogicalType.DateTime; import static com.fasterxml.jackson.databind.type.LogicalType.DateTime;
@ -38,6 +42,8 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
private final IBsProcessSetService bsProcessSetService; private final IBsProcessSetService bsProcessSetService;
private final IEquipmentService equipmentService;
@Override @Override
public String nextCode(int i) { public String nextCode(int i) {
// 编码模式 // 编码模式
@ -58,27 +64,34 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void unMacToolUseBind(List<MacToolUse> mtuList) { public void unMacToolUseBind(List<MacToolUse> mtuList) {
MacToolUse mtu = null; MacToolUse mtu = null;
Date now = new Date(); Date now = new Date();
RackSetEntity bsRackSet;
List<RackSetEntity> bsRackSets = new ArrayList<>();
List<EquipmentEntity> equipments = equipmentService.listByIds(mtuList.stream().map(MacToolUse::getEquipmentCard).toList());
Map<Long, EquipmentEntity> equipmentMap = equipments.stream().collect(Collectors.toMap(EquipmentEntity::getId, v -> v));
for (MacToolUse item : mtuList) { for (MacToolUse item : mtuList) {
if (mtu == null && item.getEquipmentCard() != null) { EquipmentEntity equipment = equipmentMap.get(item.getEquipmentCard());
if (mtu == null && item.getEquipmentCard() != null && "烘箱设备".equals(equipment.getCategorys())) {
mtu = item; mtu = item;
} }
item.setFinished(1); item.setFinished(1);
item.setManualUnBuildTime(now); item.setManualUnBuildTime(now);
String deviceCode = item.getEquipmentCard() != null ? item.getMtnCode() : ""; String deviceCode = equipment != null ? equipment.getDeviceCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:unMacToolUseBind(),{}", deviceCode, item.getHangNum(), item.getMtnCode(), item.getFinished()); log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:unMacToolUseBind(),{}", deviceCode, item.getHangNum(), item.getMtnCode(), item.getFinished());
// 将挂具状态改为空闲 // 将挂具状态改为空闲
if (item != null && item.getBsRackSet() != null) { if (item.getBsRackSet() != null) {
RackSetEntity bsRackSet = new RackSetEntity(); bsRackSet = new RackSetEntity();
bsRackSet.setId(item.getBsRackSet()); bsRackSet.setId(item.getBsRackSet());
bsRackSet.setBindQty((short) 0); bsRackSet.setBindQty((short) 0);
bsRackSet.setStatus(RackSetEntity.RS_STATUS_FREE); bsRackSet.setStatus(RackSetEntity.RS_STATUS_FREE);
rackSetService.updateById(bsRackSet); bsRackSets.add(bsRackSet);
} }
this.updateById(item);
} }
rackSetService.updateBatchById(bsRackSets);
this.updateBatchById(mtuList);
//this.haveHongXiaoTem(mtu); //this.haveHongXiaoTem(mtu);
} }

@ -314,6 +314,8 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
MacToolUse mtu; MacToolUse mtu;
//绑定日期 //绑定日期
Date nowDate = new Date(); Date nowDate = new Date();
List<MacToolUse> mtuList = new ArrayList<>();
List<WorkPlan> workPlans = new ArrayList<>();
for (Long id : planList) { for (Long id : planList) {
if (operate != null && mesQcProduceRunService.getDataByWpIdAndSlot(id, operate)) { if (operate != null && mesQcProduceRunService.getDataByWpIdAndSlot(id, operate)) {
throw new ServiceException("此工序已有对应操作的记录,请勿重复操作"); throw new ServiceException("此工序已有对应操作的记录,请勿重复操作");
@ -322,7 +324,6 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
mtu = new MacToolUse(); mtu = new MacToolUse();
mtu.setWpId(id); mtu.setWpId(id);
mtu.setBindType("sj"); mtu.setBindType("sj");
// "玻璃饼排蜡玻化(箱式炉)".equals(ppsName) ||
if ("配胶".equals(operate) || "玻璃饼压制".equals(ppsName) || "振光".equals(operate) || "玻璃饼印字".equals(ppsName) if ("配胶".equals(operate) || "玻璃饼压制".equals(ppsName) || "振光".equals(operate) || "玻璃饼印字".equals(ppsName)
|| "I面涂覆".equals(operate) || "II面涂覆".equals(operate)) { || "I面涂覆".equals(operate) || "II面涂覆".equals(operate)) {
mtu.setFinished(1); mtu.setFinished(1);
@ -330,18 +331,19 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:sjBindingCard(),{}", deviceCode, mtu.getHangNum(), mtu.getMtnCode(), mtu.getFinished()); log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:sjBindingCard(),{}", deviceCode, mtu.getHangNum(), mtu.getMtnCode(), mtu.getFinished());
} }
this.packageMtu(mtu, null, null, equipment.getId(), code); this.packageMtu(mtu, null, null, equipment.getId(), code);
macToolUseService.save(mtu); mtuList.add(mtu);
//修改作业计划绑定状态为绑定 //修改作业计划绑定状态为绑定
workPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND); workPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND);
workPlan.setPrintType(WorkPlan.PRINT_TYPE_PROCESS); workPlan.setPrintType(WorkPlan.PRINT_TYPE_PROCESS);
baseMapper.updateById(workPlan); workPlans.add(workPlan);
} }
macToolUseService.saveBatch(mtuList);
baseMapper.updateById(workPlans);
MesQcProduceRunEntity qcProduceRun = new MesQcProduceRunEntity(); MesQcProduceRunEntity qcProduceRun = new MesQcProduceRunEntity();
qcProduceRun.setMtnCode(code); qcProduceRun.setMtnCode(code);
qcProduceRun.setDeviceId(equipment != null ? equipment.getDeviceCode() : ""); qcProduceRun.setDeviceId(equipment != null ? equipment.getDeviceCode() : "");
qcProduceRun.setInDate(new Date().toString()); qcProduceRun.setInDate(new Date().toString());
qcProduceRun.setCreateMan(String.valueOf(AuthUtil.getUser().getUserId()));
qcProduceRun.setCreateTime(nowDate);
// 操作的步骤 // 操作的步骤
qcProduceRun.setWorkSlot(operate); qcProduceRun.setWorkSlot(operate);
// 此次绑定的工序 // 此次绑定的工序
@ -386,25 +388,24 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void unBind(UnBingVo unBingVo) { public void unBind(UnBingVo unBingVo) {
if (StringUtils.isBlank(unBingVo.getRsCode()) && StringUtils.isBlank(unBingVo.getFsCode()) && StringUtils.isBlank(unBingVo.getDeviceCode())) { if (StringUtils.isBlank(unBingVo.getRsCode()) && StringUtils.isBlank(unBingVo.getFsCode()) && StringUtils.isBlank(unBingVo.getDeviceCode())) {
return; return;
} }
// 查询挂具 // 查询挂具
RackSetEntity bsRackSet = rackSetService.getOne(Wrappers.<RackSetEntity>lambdaQuery().eq(RackSetEntity::getRsCode, unBingVo.getRsCode())); RackSetEntity bsRackSet = rackSetService.getBsRackSetByCode(unBingVo.getRsCode());
// 查询飞靶 // 查询飞靶
FeiBaSetEntity bsFeiBaSet = feiBaSetService.getOne(Wrappers.<FeiBaSetEntity>lambdaQuery().eq(FeiBaSetEntity::getFsCode, unBingVo.getFsCode())); FeiBaSetEntity bsFeiBaSet = feiBaSetService.getBsFeiBaSetByCode(unBingVo.getFsCode());
//查询设备 //查询设备
EquipmentEntity equipmentCard = equipmentService.getOne(Wrappers.<EquipmentEntity>lambdaQuery().eq(EquipmentEntity::getDeviceCode, unBingVo.getDeviceCode())); EquipmentEntity equipmentCard = equipmentService.getDeEquipmentCardByCode(unBingVo.getDeviceCode());
// 如果都为空,则返回 // 如果都为空,则返回
if (equipmentCard == null && bsFeiBaSet == null && bsRackSet == null) { if (equipmentCard == null && bsFeiBaSet == null && bsRackSet == null) {
return; return;
} }
//绑定记录 //绑定记录
List<MacToolUse> mtuList = macToolUseService.list(Wrappers.<MacToolUse>lambdaQuery() List<MacToolUse> mtuList = macToolUseService.listByParams(bsRackSet.getId(), bsFeiBaSet != null ? bsFeiBaSet.getId() : null, equipmentCard != null ? equipmentCard.getId() : null, null);
.eq(MacToolUse::getBsFeiBaSet, bsFeiBaSet.getId()).eq(MacToolUse::getBsRackSet, bsRackSet.getId())
.eq(MacToolUse::getEquipmentCard, equipmentCard.getId()).eq(MacToolUse::getFinished, 0));
macToolUseService.unMacToolUseBind(mtuList); macToolUseService.unMacToolUseBind(mtuList);
this.unBindDetail(mtuList); this.unBindDetail(mtuList);
@ -726,37 +727,33 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
} }
private void unBindBsFeiBaSet(FeiBaSetEntity bsFeiBaSet) { private void unBindBsFeiBaSet(FeiBaSetEntity bsFeiBaSet) {
if (bsFeiBaSet != null) { bsFeiBaSet.setBindQty((short) 0);
bsFeiBaSet.setBindQty((short) 0); bsFeiBaSet.setStatus(FeiBaSetEntity.FS_STATUS_FREE);
bsFeiBaSet.setStatus(FeiBaSetEntity.FS_STATUS_FREE); feiBaSetService.updateById(bsFeiBaSet);
feiBaSetService.updateById(bsFeiBaSet);
}
} }
private void unBindDeEquipmentCard(EquipmentEntity equipmentCard) { private void unBindDeEquipmentCard(EquipmentEntity equipmentCard) {
//设备不为空是解绑设备 //设备不为空是解绑设备
if (equipmentCard != null) { equipmentCard.setBindQty(equipmentCard.getBindQty().subtract(BigDecimal.valueOf(1)));
equipmentCard.setBindQty(equipmentCard.getBindQty().subtract(BigDecimal.valueOf(1))); if (equipmentCard.getBindQty().compareTo(BigDecimal.valueOf(0)) <= 0) {
if (equipmentCard.getBindQty().compareTo(BigDecimal.valueOf(0)) <= 0) { equipmentCard.setBindQty(BigDecimal.valueOf(0));
equipmentCard.setBindQty(BigDecimal.valueOf(0)); equipmentCard.setStatus(0);
equipmentCard.setStatus(0);
}
equipmentService.updateById(equipmentCard);
} }
equipmentService.updateById(equipmentCard);
} }
private void unBindDetail(List<MacToolUse> mtuList) { private void unBindDetail(List<MacToolUse> mtuList) {
if (mtuList == null || mtuList.isEmpty()) { if (CollectionUtils.isEmpty(mtuList)) {
return; return;
} }
List<WorkPlan> wpList = new ArrayList<>();
for (MacToolUse mtu : mtuList) { for (MacToolUse mtu : mtuList) {
//修改作业计划绑定状态 //修改作业计划绑定状态
WorkPlan wp = baseMapper.selectById(mtu.getWpId()); WorkPlan wp = baseMapper.selectById(mtu.getWpId());
wp.setBindStatus(WorkPlan.BIND_STATUS_FREE); wp.setBindStatus(WorkPlan.BIND_STATUS_FREE);
baseMapper.updateById(wp); wpList.add(wp);
} }
baseMapper.updateById(wpList);
} }
/** /**

Loading…
Cancel
Save