生产接口开发

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;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@ -7,8 +8,11 @@ import java.util.List;
@Data
public class UnBingVo {
@Schema(description = "挂具编号")
private String rsCode;
@Schema(description = "飞靶编号")
private String fsCode;
@Schema(description = "设备编号")
private String deviceCode;
}

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

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

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

@ -45,7 +45,7 @@ public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
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);

@ -185,7 +185,12 @@
ORDER BY a.CREATE_TIME DESC
</select>
<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 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.desk.dashboard.pojo.entity.BsProcessSetEntity;
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.service.IEquipmentService;
import org.springblade.desk.device.service.IRackSetService;
import org.springblade.desk.produce.mapper.MacToolUseMapper;
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.service.IMacToolUseService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
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 IEquipmentService equipmentService;
@Override
public String nextCode(int i) {
// 编码模式
@ -58,27 +64,34 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
}
@Override
@Transactional(rollbackFor = Exception.class)
public void unMacToolUseBind(List<MacToolUse> mtuList) {
MacToolUse mtu = null;
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) {
if (mtu == null && item.getEquipmentCard() != null) {
EquipmentEntity equipment = equipmentMap.get(item.getEquipmentCard());
if (mtu == null && item.getEquipmentCard() != null && "烘箱设备".equals(equipment.getCategorys())) {
mtu = item;
}
item.setFinished(1);
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());
// 将挂具状态改为空闲
if (item != null && item.getBsRackSet() != null) {
RackSetEntity bsRackSet = new RackSetEntity();
if (item.getBsRackSet() != null) {
bsRackSet = new RackSetEntity();
bsRackSet.setId(item.getBsRackSet());
bsRackSet.setBindQty((short) 0);
bsRackSet.setStatus(RackSetEntity.RS_STATUS_FREE);
rackSetService.updateById(bsRackSet);
bsRackSets.add(bsRackSet);
}
this.updateById(item);
}
rackSetService.updateBatchById(bsRackSets);
this.updateBatchById(mtuList);
//this.haveHongXiaoTem(mtu);
}

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

Loading…
Cancel
Save