外协分批功能;

转厂内审批通过后处理包装工序 并且工艺能力包含 包装 并且加工单位为空的
liweidong
qinyulong 1 month ago
parent 101f08b620
commit e9736985de
  1. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasurementRecordsEntity.java
  2. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java
  3. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  4. 35
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  5. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
  6. 110
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java

@ -1,15 +1,13 @@
package org.springblade.desk.device.pojo.entity; package org.springblade.desk.device.pojo.entity;
import jakarta.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial; import java.io.Serial;
@ -57,7 +55,7 @@ public class MeasurementRecordsEntity extends BaseEntity {
* 编号(测量设备编码) * 编号(测量设备编码)
*/ */
@Schema(description = "编号(测量设备编码)") @Schema(description = "编号(测量设备编码)")
@NotNull(message = "编号不能为空") // @NotNull(message = "编号不能为空")
private String mcCode; private String mcCode;
/** /**
* 使用单位(试用部门) * 使用单位(试用部门)
@ -83,6 +81,7 @@ public class MeasurementRecordsEntity extends BaseEntity {
* 启用日期 * 启用日期
*/ */
@Schema(description = "启用日期") @Schema(description = "启用日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date enableDate; private Date enableDate;
/** /**
* 检定日期 * 检定日期
@ -103,11 +102,13 @@ public class MeasurementRecordsEntity extends BaseEntity {
* 到期日期(有效日期) * 到期日期(有效日期)
*/ */
@Schema(description = "到期日期(有效日期)") @Schema(description = "到期日期(有效日期)")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date dueDate; private Date dueDate;
/** /**
* 报废日期 * 报废日期
*/ */
@Schema(description = "报废日期") @Schema(description = "报废日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date date2; private Date date2;
/** /**
* 状态 * 状态
@ -118,6 +119,7 @@ public class MeasurementRecordsEntity extends BaseEntity {
* 停用日期 * 停用日期
*/ */
@Schema(description = "停用日期") @Schema(description = "停用日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date whenBuy; private Date whenBuy;
/** /**
* 检定部门 * 检定部门

@ -29,6 +29,7 @@ import org.springblade.desk.oem.pojo.request.*;
import org.springblade.desk.oem.pojo.vo.*; import org.springblade.desk.oem.pojo.vo.*;
import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.produce.pojo.dto.InBatchesDTO;
import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun; import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
import org.springblade.desk.produce.pojo.vo.WorkOrderVO; import org.springblade.desk.produce.pojo.vo.WorkOrderVO;
@ -133,6 +134,15 @@ public class OemOrderController extends BladeController {
return R.data(WorkOrderWrapper.build().entityVO(newWorkOrder)); return R.data(WorkOrderWrapper.build().entityVO(newWorkOrder));
} }
@PostMapping(value = "/inOemBatches")
@ApiOperationSupport(order = 6)
@Operation(summary = "外协分批", description = "")
public R inOemBatches(@RequestBody InBatchesDTO inBatchesDTO) {
Long userId = AuthUtil.getUserId();
return workOrderService.inOemBatches(inBatchesDTO.getId(), inBatchesDTO, userId);
}
/** /**
* 更改外协厂商 * 更改外协厂商
*/ */

@ -2,6 +2,7 @@ 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.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.dto.*;
import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun; import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
@ -191,4 +192,6 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
boolean updatePriority(UpdatePriorityDTO updatePriorityDTO); boolean updatePriority(UpdatePriorityDTO updatePriorityDTO);
void dataValidation(Long wpId); void dataValidation(Long wpId);
R inOemBatches(Long oldWoId, InBatchesDTO inBatchesDTO, Long userId);
} }

@ -1,6 +1,7 @@
package org.springblade.desk.produce.service.impl; package org.springblade.desk.produce.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -12,6 +13,7 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.desk.basic.mapper.CraftAbilityMapper;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.service.IRelTeamSetUserService; import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.pojo.entity.*;
@ -34,6 +36,7 @@ import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO;
import org.springblade.desk.quality.service.IInspectionTaskService; import org.springblade.desk.quality.service.IInspectionTaskService;
import org.springblade.desk.quality.service.IPlanTestService; import org.springblade.desk.quality.service.IPlanTestService;
import org.springblade.desk.quality.service.IWorkPlanItemService; import org.springblade.desk.quality.service.IWorkPlanItemService;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -94,6 +97,10 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private final IMesQcProduceRunService mesQcProduceRunService; private final IMesQcProduceRunService mesQcProduceRunService;
private final CraftAbilityMapper craftAbilityMapper;
private final WorkPlanMapper workPlanMapper;
@Override @Override
public WorkPlan loadBindData(BladeUser user, String cardNo) { public WorkPlan loadBindData(BladeUser user, String cardNo) {
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, user, false, false); WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, user, false, false);
@ -266,25 +273,37 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
@Override @Override
public void handleBaoZhuangWorkPlan(List<WorkPlan> wpList, YieldOrder yo) { public void handleBaoZhuangWorkPlan(List<WorkPlan> wpList, YieldOrder yo) {
/*if (wpList == null || wpList.size() == 0) { if (wpList == null || wpList.size() == 0) {
return; return;
} }
for (WorkPlan wp : wpList) { for (WorkPlan wp : wpList) {
// 如果工序是包装,并且工艺能力是包装、加工单位为空 // 如果工序是包装,并且工艺能力是包装、加工单位为空
if ("包装".equals(wp.getProcedureSet().getPpsName()) && (wp.getBsCraftAbility() != null && wp.getBsCraftAbility().getCaName().contains("包装")) BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId());
&& wp.getMakeTeam() == null && wp.getOemCustomer() == null) { CraftAbilityEntity craftAbility = new CraftAbilityEntity();
if (null != wp.getCaId()) {
craftAbility = craftAbilityMapper.selectById(wp.getCaId());
}
if ("包装".equals(processSet.getName()) && (wp.getCaId() != null && craftAbility.getCaName().contains("包装"))
&& wp.getMakeTeam() == null && wp.getOcId() == null) {
// 获取当前工序之前的主工序 // 获取当前工序之前的主工序
PrWorkPlan prWorkPlan = prWorkPlanService.fontMainProcess(wp.getPrWorkOrder().getWoId()); // 或者使用 LambdaQueryWrapper(推荐,类型安全)
if (prWorkPlan != null && prWorkPlan.getWpId() != null) { LambdaQueryWrapper<WorkPlan> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (prWorkPlan.getOemCustomer() != null && prWorkPlan.getOemCustomer().getOcId() != null) { lambdaQueryWrapper.eq(WorkPlan::getWoId, wp.getWoId())
wp.setOemCustomer(prWorkPlan.getOemCustomer()); .eq(WorkPlan::getCruxProcess, "1")
.orderByDesc(WorkPlan::getOrders);
WorkPlan prWorkPlan = workPlanMapper.selectOne(lambdaQueryWrapper);
if (prWorkPlan != null && prWorkPlan.getId() != null) {
if (prWorkPlan.getOcId() != null) {
wp.setOcId(prWorkPlan.getOcId());
wp.setOem("1"); wp.setOem("1");
// } else { // } else {
// wp.setMakeTeam(prWorkPlan.getMakeTeam()); // wp.setMakeTeam(prWorkPlan.getMakeTeam());
} }
} }
} }
}*/ }
workPlanMapper.insertOrUpdate(wpList);
} }
private WorkOrder checkWo(String cardNo) { private WorkOrder checkWo(String cardNo) {

@ -226,7 +226,8 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
} }
wo.setWorId(workOrderRun.getId()); wo.setWorId(workOrderRun.getId());
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_ISSUED); workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_ISSUED);
//新增状态:外协状态,转外协审批通过后,置为待外协
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_TO);
//调用转外协自动分派处理 //调用转外协自动分派处理
if (wpList != null && wpList.size() > 0) { if (wpList != null && wpList.size() > 0) {
//判断工序是否存在外协商,如果存在不进行二次分派 //判断工序是否存在外协商,如果存在不进行二次分派
@ -275,8 +276,8 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
} else { } else {
workOrderRun.setInCustomer(wp.getOcId()); workOrderRun.setInCustomer(wp.getOcId());
} }
//todo 更新车间订单主责任单位 //更新车间订单主责任单位
// prWorkOrderService.updateHostWorkUnit(wo.getId()); workOrderService.updateHostWorkUnit(wo);
} else { } else {
//转厂内业务 //转厂内业务
@ -321,7 +322,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
// pjAutomaticDispatchService.runAutomaticDispatch(wpList, yo, Boolean.TRUE, null); // pjAutomaticDispatchService.runAutomaticDispatch(wpList, yo, Boolean.TRUE, null);
//周新昊 20241015 增加调用下方方法 //周新昊 20241015 增加调用下方方法
//处理包装工序 并且工艺能力包含 包装 并且加工单位为空的 //处理包装工序 并且工艺能力包含 包装 并且加工单位为空的
//todo 手持移动端数据查询接口类未实现 //手持移动端数据查询接口
pdaLoadService.handleBaoZhuangWorkPlan(wpList, yo); pdaLoadService.handleBaoZhuangWorkPlan(wpList, yo);
} else { } else {
PlateAround prPlateAround = new PlateAround(); PlateAround prPlateAround = new PlateAround();
@ -358,8 +359,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
TeamSet makeTeam = teamSetMapper.selectById(wo.getTsId()); TeamSet makeTeam = teamSetMapper.selectById(wo.getTsId());
workOrderService.maintainOrder(wo, makeTeam.getPlanner(), makeTeam.getDispatcher(), workOrderRun, false); workOrderService.maintainOrder(wo, makeTeam.getPlanner(), makeTeam.getDispatcher(), workOrderRun, false);
//更新车间订单主责任单位 //更新车间订单主责任单位
//todo 更新车间订单主责任单位 workOrderService.updateHostWorkUnit(wo);
// prWorkOrderService.updateHostWorkUnit(wo.getId());
//关闭erp外协订单,程序调用存储过程 //关闭erp外协订单,程序调用存储过程
if (!yo.getManualIncrease()) { if (!yo.getManualIncrease()) {

@ -173,7 +173,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean inBatches(Long oldWoId, InBatchesDTO inBatchesDTO, Long userId) { public boolean inBatches(Long oldWoId, InBatchesDTO inBatchesDTO, Long userId) {
WorkOrder oldWo = this.getById(oldWoId); WorkOrder oldWo = this.getById(oldWoId);
WorkOrder newWo = this.addWorkOrderAndYieldOrder(oldWo, inBatchesDTO); WorkOrder newWo = this.addWorkOrderAndYieldOrder(oldWo, inBatchesDTO, false);
List<WorkPlan> oldList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, oldWoId)); List<WorkPlan> oldList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, oldWoId));
//保存作业计划 //保存作业计划
List<WorkPlan> wpList = this.saveWorkPlan(oldList, newWo, oldWoId); List<WorkPlan> wpList = this.saveWorkPlan(oldList, newWo, oldWoId);
@ -200,7 +200,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return true; return true;
} }
private WorkOrder addWorkOrderAndYieldOrder(WorkOrder oldWo, InBatchesDTO inBatchesDTO) { /**
* @param oldWo
* @param inBatchesDTO
* @param oem 是否外协分批
* @return
*/
private WorkOrder addWorkOrderAndYieldOrder(WorkOrder oldWo, InBatchesDTO inBatchesDTO, boolean oem) {
WorkOrder newWo = new WorkOrder(); WorkOrder newWo = new WorkOrder();
YieldOrder newYie = new YieldOrder(); YieldOrder newYie = new YieldOrder();
YieldOrder oldYie = yieldOrderService.getById(oldWo.getYoId()); YieldOrder oldYie = yieldOrderService.getById(oldWo.getYoId());
@ -221,6 +227,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
newWo.setWoCode(inBatchesDTO.getWoCode()); newWo.setWoCode(inBatchesDTO.getWoCode());
newWo.setBatchNo(inBatchesDTO.getBatchNo()); newWo.setBatchNo(inBatchesDTO.getBatchNo());
newWo.setOemType(-1); newWo.setOemType(-1);
if (oem) {
//外协分批需要更新此状态,其他不变
newWo.setOemOut("0");
}
newWo.setCardNo(inBatchesDTO.getCardNo()); newWo.setCardNo(inBatchesDTO.getCardNo());
newWo.setMemo(inBatchesDTO.getMemo()); newWo.setMemo(inBatchesDTO.getMemo());
newWo.setMesCardNo(oldWo.getMesCardNo() != null ? this.nextMesCardNo(oldWo.getMesCardNo()) : ""); newWo.setMesCardNo(oldWo.getMesCardNo() != null ? this.nextMesCardNo(oldWo.getMesCardNo()) : "");
@ -770,10 +780,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrder.CUR_STATUS_COMPLETED, workOrder.getInventoryQty()); yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrder.CUR_STATUS_COMPLETED, workOrder.getInventoryQty());
} else if (WorkOrder.RUN_STATUS_ISSUED.equals(runStatus)) { } else if (WorkOrder.RUN_STATUS_ISSUED.equals(runStatus)) {
workOrder.setApprovalStatus(WorkOrder.APPROVAL_STATUS_NORMAL); workOrder.setApprovalStatus(WorkOrder.APPROVAL_STATUS_NORMAL);
// if (workOrder.getPrWorkPlan().getMakeTeam() != null) { // if (workOrder.getWorkPlan().getMakeTeam() != null) {
// String msgContent = "车间订单:【" + workOrder.getWoCode() + "】,零件号:【" + workOrder.getPjYieldOrder() // String msgContent = "车间订单:【" + workOrder.getWoCode() + "】,零件号:【" + workOrder.getPjYieldOrder()
// .getPartCode() + ",】批次号:【" + workOrder.getBatchNo() + "】,已下达,请班组长分配工作!!"; // .getPartCode() + ",】批次号:【" + workOrder.getBatchNo() + "】,已下达,请班组长分配工作!!";
// pfMessageService.sendMessage(msgContent, workOrder.getPrWorkPlan().getMakeTeam().getDispatcher().getUserId(), // pfMessageService.sendMessage(msgContent, workOrder.getWorkPlan().getMakeTeam().getDispatcher().getUserId(),
// PfMessageType.MTCODE_0200, userInfo, Boolean.FALSE, null); // PfMessageType.MTCODE_0200, userInfo, Boolean.FALSE, null);
// } // }
@ -1722,6 +1732,98 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
} }
@Override
public R inOemBatches(Long oldWoId, InBatchesDTO inBatchesDTO, Long userId) {
WorkOrder oldWo = this.getById(oldWoId);
WorkOrder newWo = this.addWorkOrderAndYieldOrder(oldWo, inBatchesDTO, true);
List<WorkPlan> oldList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, oldWoId));
//保存作业计划
List<WorkPlan> wpList = this.saveWorkPlan(oldList, newWo, oldWoId);
// 获取旧工单的运行记录,用于复用字段
WorkOrderRun oldWr = workOrderRunService.getById(oldWo.getWorId());
// 产生车间运行记录信息(完整设置所有字段)
WorkOrderRun wr = new WorkOrderRun();
// 基础关联信息
wr.setWoId(newWo.getId()); // 新工单对象
wr.setWoCode(newWo.getWoCode()); // 新工单编号
wr.setRunType(WorkOrderRun.RUN_TYPE_1); // 运行类型改为外协
wr.setOemStatus(WorkOrderRun.OEM_STATUS_TO);//外协状态改为待外协
// 复用旧运行记录的班组和供应商信息
wr.setOutTeam(oldWr.getOutTeam()); // 转出班组
wr.setInTeam(oldWr.getInTeam()); // 转入班组
wr.setOutCustomer(oldWr.getOutCustomer()); // 转出供应商
wr.setInCustomer(oldWr.getInCustomer()); // 转入供应商
// 备注信息修改
wr.setMemo("分批(外协)"); // 备注改成分批(外协)
// 时间和人员信息
wr.setCreateTime(new Date()); // 创建时间为当前时间
wr.setCreateUser(userId); // 创建人
wr.setApprovalMan(oldWr.getApprovalMan()); // 审批人(复用旧记录)
wr.setApprovalTime(oldWr.getApprovalTime()); // 审批时间(复用旧记录)
wr.setApprovalMemo(oldWr.getApprovalMemo()); // 审批意见(复用旧记录)
// 其他状态字段
wr.setPrintFlag(oldWr.getPrintFlag()); // 打印标记
wr.setDeliverKey(oldWr.getDeliverKey()); // 交件单号
wr.setRunStatus(oldWr.getRunStatus()); // 订单状态
wr.setSystemData(oldWr.getSystemData()); // 系统数据标识
wr.setPrintMan(oldWr.getPrintMan()); // 打印人
wr.setCollaborate(newWo.getCollaborate()); // 是否协作计划(取自新工单)
// 保存新的运行记录并关联到新工单
workOrderRunService.save(wr);
newWo.setWorId(wr.getId());
//保存作业计划
this.calculationWp(newWo, wpList);
// 转存工序的加工信息
this.saveProcessMarkRec(oldList, wpList);
// 创建并保存工序运行明细记录
// 获取旧工单对应的工序运行记录列表
List<WorkPlanRun> oldWprList = workPlanRunService.list(Wrappers.lambdaQuery(WorkPlanRun.class).eq(WorkPlanRun::getWorId, oldWr.getId()));
if (oldWprList != null && !oldWprList.isEmpty()) {
// 创建映射表,方便通过wpId查找对应的旧工序运行记录
Map<String, WorkPlanRun> oldWprMap = new HashMap<>();
for (WorkPlanRun oldWpr : oldWprList) {
WorkPlan oldWp = workPlanService.getById(oldWpr.getWpId());
// 假设"工序顺序_工序集合ID"是唯一标识
String key = oldWp.getOrders() + "_" + oldWp.getPpsId();
oldWprMap.put(key, oldWpr);
}
// 为每个新作业计划创建对应的工序运行记录
List<WorkPlanRun> newWprList = new ArrayList<>();
for (WorkPlan newWp : wpList) {
String key = newWp.getOrders() + "_" + newWp.getPpsId();
WorkPlanRun oldWpr = oldWprMap.get(key);
if (oldWpr != null) {
WorkPlanRun newWpr = new WorkPlanRun();
// 设置新生成的关联字段
newWpr.setWorId(wr.getId()); // 关联新生成的工单运行记录
newWpr.setWpId(newWp.getId()); // 关联新生成的作业计划
newWpr.setCaId(newWp.getCaId()); // 使用新作业计划的工艺能力
// 复用旧记录中的字段
newWpr.setHandle(oldWpr.getHandle()); // 处理工序标记
newWpr.setStartTime(oldWpr.getStartTime()); // 计划开始时间
newWpr.setEndTime(oldWpr.getEndTime()); // 计划结束时间
newWprList.add(newWpr);
}
}
if (!newWprList.isEmpty()) {
for (WorkPlanRun wpr : newWprList) {
workPlanRunService.save(wpr); // 调用单条保存方法
}
}
}
return R.success("操作完成");
}
private void workPlanEnd(WorkPlan workPlan, Date newDate, Double makeQty) { private void workPlanEnd(WorkPlan workPlan, Date newDate, Double makeQty) {
if (workPlan == null) { if (workPlan == null) {
return; return;

Loading…
Cancel
Save