工作台接口开发

liweidong
李涛 1 month ago
parent b27ba100aa
commit 2bfdf99a95
  1. 213
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkPlanDto.java
  2. 87
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMakeRecVO.java
  3. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java
  4. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java
  5. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java
  6. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml
  7. 56
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java
  9. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java
  10. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  11. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java
  12. 404
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java
  13. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java

@ -1,10 +1,12 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.enums.WorkOrderEnum;
import java.io.Serializable;
import java.util.Date;
@ -15,151 +17,154 @@ import java.util.Date;
* @author lyj
* @date 2022-11-01 10:16
*/
@Builder
@Data
public class WorkPlanDto implements Serializable {
/**
* 下级B号
*/
@Schema(description = "下级B号")
private String nextRoam;
/**
* 生产单号
*/
@Schema(description = "生产单号")
private String yoCode;
/**
* 计划单号
*/
@Schema(description = "计划单号")
private String poCode;
/**
* 零件号
*/
@Schema(description = "零件号")
private String partCode;
/**
* 产品型号
*/
@Schema(description = "产品型号")
private String productType;
/**
* 名称
*/
@Schema(description = "名称")
private String partName;
/**
* 镀种
*/
@Schema(description = "镀种")
private String plate;
/**
* 生产标识
*/
@Schema(description = "生产标识")
private String prodIdent;
/**
* 使用部门
*/
@Schema(description = "使用部门")
private String useDept;
/**
* 面积
*/
@Schema(description = "面积(㎡)")
private Double poArea;
/**
* 需求交期
*/
@Schema(description = "需求交期")
private Date demandDate;
/**
* 计划员
*/
@Schema(description = "计划员")
private String planUser;
/**
* 计划下达时间
*/
@Schema(description = "下级B号")
private Date releaseDate;
/**
* 一级工艺线路
*/
@Schema(description = "一级工艺线路")
private String primaryCraft;
/**
* 路线卡号
*/
@Schema(description = "路线卡号")
private String cardNo;
/**
* 批次号
*/
@Schema(description = "批次号")
private String batchNo;
/**
* 订单编号
*/
@Schema(description = "订单编号")
private String woCode;
/**
* 加工数量
*/
@Schema(description = "加工数量")
private Double makeQty;
/**
* 未报工数量
*/
@Schema(description = "未报工数量")
private Double notWorkQty;
/**
* 已报工数量
*/
@Schema(description = "已报工数量")
private Double workQty;
/**
* 报废
*/
@Schema(description = "报废")
private Double scrapQty;
/**
* 计划完工日期
*/
private Date planEndDate;
/**
* 已入库数量
*/
@Schema(description = "计划完工日期")
private String planEndDate;
@Schema(description = "计划开始日期")
private String planStartDate;
@Schema(description = "已入库数量")
private Double inventoryQty;
/**
* 已入库数量
*/
@Schema(description = "已入库数量")
private Double notInQty;
/**
* 运行状态
*/
@Schema(description = "运行状态")
public String runStatusTitle;
/**
* 工序状态
*/
public Short status;
/**
* 优先级
*/
@Schema(description = "工序状态")
public Integer status;
@Schema(description = "优先级")
public String priorityTitle;
/**
* 领料状态
*/
@Schema(description = "领料状态")
public String pickingStatusTitle;
/**
* 是否绑定挂次号
*/
@Schema(description = "是否绑定挂次号")
public Boolean isBinging;
/**
* 当前工序
*/
@Schema(description = "当前工序")
public Long currentWpId;
public Long wpId;
@Schema(description = "当前工序内容")
public String currentWpTitle;
@Schema(description = "当前工序班组")
public String currentMakeTeam;
/**
* 上序
*/
@Schema(description = "上序内容")
public String frontWpTitle;
@Schema(description = "上序班组")
public String frontMakeTeam;
/**
* 下序
*/
public String nextWpTitle;
public String nextMakeTeam;
private YieldOrder yieldOrder;
@Schema(description = "下序内容")
public String nextWpTitle;
private WorkOrder workOrder;
@Schema(description = "下序班组")
public String nextMakeTeam;
private WorkPlan workPlan;
public WorkPlanDto(YieldOrder yo, WorkOrder wo, WorkPlan currentWP,Boolean isBinging) {
this.nextRoam = yo.getRoamNoNext();
this.yoCode = yo.getYoCode();
this.poCode = yo.getYpCode();
this.partCode = yo.getPartCode();
this.productType = yo.getProductType();
this.partName = yo.getPartName();
this.plate = yo.getPlate();
this.prodIdent = yo.getProductIdent();
this.useDept = yo.getUseDept();
this.poArea = yo.getYpArea();
this.demandDate = yo.getDemandDate();
this.planUser = yo.getPlanUser();
this.releaseDate = yo.getReleaseDate();
this.primaryCraft = yo.getPrimaryCraft();
this.cardNo = wo.getCardNo();
this.batchNo = wo.getBatchNo();
this.woCode = wo.getWoCode();
this.makeQty = currentWP.getQualifiedQty();
this.notWorkQty = currentWP.getQualifiedQty() - currentWP.getWorkQty() - currentWP.getScrapQty();
this.workQty = currentWP.getWorkQty();
this.scrapQty = currentWP.getScrapQty();
this.planStartDate = wo.getPlanStartDate();
this.planEndDate = wo.getPlanEndDate();
this.inventoryQty = wo.getInventoryQty();
this.notInQty = wo.getMakeQty() - wo.getInventoryQty();
this.runStatusTitle = WorkOrderEnum.getName(wo.getRunStatus());
this.priorityTitle = WorkOrder.priorityMap.get(wo.getPriority());
this.pickingStatusTitle = WorkOrder.pickingStatusMap.get(wo.getPickingStatus());
this.isBinging = isBinging;
this.currentWpId = currentWP.getId();
this.wpId = currentWP.getId();
this.status = currentWP.getStatus();
}
}

@ -1,10 +1,12 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.produce.pojo.entity.MakeRec;
import java.io.Serial;
import java.util.Date;
/**
* 加工记录 视图实体类
@ -13,9 +15,86 @@ import java.io.Serial;
* @since 2026-02-04
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class MesMakeRecVO extends MakeRec {
@Serial
private static final long serialVersionUID = 1L;
public class MesMakeRecVO {
@Schema(description = "报工记录ID")
private Long mrId;
@Schema(description = "报工时间")
private Date makeTime;
@Schema(description = "加工数量")
private Double workQty;
@Schema(description = "报废数量")
private Double scrapQty;
@Schema(description = "报工人")
private Long worker;
@Schema(description = "报工人姓名")
private String workerName;
@Schema(description = "本序ID")
private Long ppsId;
@Schema(description = "本序名称")
private String ppsName;
@Schema(description = "本序加工班组")
private Long makeTeam;
@Schema(description = "本序加工班组")
private String makeTeamName;
@Schema(description = "上序ID")
private Long frontPpsId;
@Schema(description = "上序名称")
private String frontPpsName;
@Schema(description = "上序加工班组")
private Long frontMakeTeam;
@Schema(description = "上序加工班组")
private String frontMakeTeamName;
@Schema(description = "下序ID")
private Long nextPpsId;
@Schema(description = "下序名称")
private String nextPpsName;
@Schema(description = "下序加工班组")
private Long nextMakeTeam;
@Schema(description = "下序加工班组")
private String nextMakeTeamName;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "零件名称")
private String partName;
@Schema(description = "产品型号")
private String productType;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "镀种")
private String plate;
@Schema(description = "生产标识")
private String productIdent;
@Schema(description = "面积(㎡)")
private Double ypArea;
}

@ -16,7 +16,7 @@ import org.springblade.desk.produce.service.IMakeRecService;
import org.springframework.web.bind.annotation.*;
/**
* 加工记录 控制器
* 工作台 控制器
*
* @author BladeX
* @since 2025-11-28
@ -24,42 +24,43 @@ import org.springframework.web.bind.annotation.*;
@RestController
@AllArgsConstructor
@RequestMapping("/prMakeRec")
@Tag(name = "加工记录", description = "接口")
@Tag(name = "工作台", description = "接口")
public class PrMakeRecController extends BladeController {
private final IMakeRecService makeRecService;
@GetMapping(value = "/loadCurrentWp/{cardNo}")
@ApiOperationSupport(order = 1)
@Operation(summary = "加载当前工序", description = "传入cardNo")
@Operation(summary = "工序报工-加载当前工序", description = "传入cardNo")
public R loadSubOrder(@PathVariable String cardNo) {
return R.data(makeRecService.loadCurrentWp(cardNo));
}
@Operation(summary = "增加加工记录")
@Operation(summary = "报工提交")
@PostMapping("/saveMakeRec")
public R saveMakeRec(@RequestBody MakeRecDTO makeRecDTO) {
makeRecService.saveMakeRec(makeRecDTO);
return R.success() ;
return R.status(makeRecService.saveMakeRec(makeRecDTO)) ;
}
@GetMapping("/queryMakeRec")
@ApiOperationSupport(order = 3)
@Operation(summary = "工记录", description = "传入mesMakeRec")
@Operation(summary = "工记录", description = "传入mesMakeRec")
public R<IPage<MesMakeRecVO>> page(MesMakeRecVO mesMakeRec, Query query) {
IPage<MesMakeRecVO> pages = makeRecService.selectMesMakeRecPage(Condition.getPage(query), mesMakeRec);
return R.data(pages);
return R.data(makeRecService.selectMesMakeRecPage(Condition.getPage(query), mesMakeRec));
}
@GetMapping(value = "/loadNotReceived/{cardNo}")
@Operation(summary = "任务接收查询", description = "传入cardNo")
public R loadNotReceived(@PathVariable String cardNo) {
return R.data(makeRecService.loadNotReceived(cardNo));
}
@GetMapping(value = "/afterPlaReceive/{cardNo}")
@Operation(summary = "加载镀后接收数据", description = "传入cardNo")
public R afterPlaReceive(@PathVariable String cardNo) {
return R.data(makeRecService.afterPlaReceive(cardNo));
}
@Operation(summary = "手动维护生产追溯")
@PostMapping("/saveRetrospectDefend")
public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) {

@ -98,11 +98,7 @@ public class RbProduceManageController extends BladeController {
@ApiOperationSupport(order = 8)
@Operation(summary = "更改车间订单优先级", description = "传入WorkOrder")
public R updatePriority(@RequestBody UpdatePriorityDTO updatePriorityDTO) {
WorkOrder wo = workOrderService.getById(updatePriorityDTO.getWoId());
// wo.setPriority(WorkOrder.PRIORITY_SCH_IMP);
wo.setPriority(updatePriorityDTO.getPriority());
wo.setDemandDate(updatePriorityDTO.getDemandDate());
return R.data(workOrderService.updateById(wo));
return R.data(workOrderService.updatePriority(updatePriorityDTO));
}
@GetMapping(value = "/getWorkOrderCache/{woId}")

@ -22,4 +22,6 @@ public interface MacToolUseMapper extends BaseMapper<MacToolUse> {
List<ProduceMonitorSlotListVO> listSlotInfo(Long id, int isGr, int isCx);
MesQcProduceRunEntity getBoxInfoByWpIdMtnCode(Long id);
MacToolUse queryByParams(Long wpId, Integer rsBool, Integer fsBool, Integer ecBool);
}

@ -84,6 +84,13 @@
ORDER BY
c.IN_DATE DESC
</select>
<select id="queryByParams" resultType="org.springblade.desk.produce.pojo.entity.MacToolUse">
select * from (select * from MES_MAC_TOOL_USE where IS_DELETED = 0 and WP_ID = #{wpId}
<if test="rsBool == 1">and BS_RACK_SET is not null</if>
<if test="fsBool == 1">and BS_FEI_BA_SET is not null</if>
<if test="ecBool == 1">and EQUIPMENT_CARD is not null</if>
order by MTN_CODE) where rownum = 1
</select>
</mapper>

@ -29,10 +29,60 @@
<result column="FLAG_QTY" property="flagQty"/>
<result column="FLAG_COLOUR_ONE" property="flagColourOne"/>
</resultMap>
<select id="selectMesMakeRecPage" resultType="org.springblade.desk.produce.pojo.vo.MesMakeRecVO">
select
mr.id AS mrId,
mr.MAKE_TIME AS makeTime,
mr.WORK_QTY AS workQty,
mr.SCRAP_QTY AS scrapQty,
mr.WORKER AS worker,
wp.PPS_ID AS ppsId,
wp.MAKE_TEAM AS makeTeam,
fwp.PPS_ID AS frontPpsId,
fwp.MAKE_TEAM AS frontMakeTeam,
nwp.PPS_ID AS nextPpsId,
nwp.MAKE_TEAM AS nextMakeTeam,
wo.WO_CODE AS woCode,
wo.CARD_NO AS cardNo,
yo.PART_CODE AS partCode,
yo.PART_NAME AS partName,
yo.PRODUCT_TYPE AS productType,
yo.BATCH_NO AS batchNo,
yo.PLATE AS plate,
yo.PRODUCT_IDENT AS productIdent,
yo.YP_AREA AS ypArea
FROM MES_MAKE_REC mr
LEFT JOIN MES_WORK_PLAN wp ON mr.WP_ID = wp.ID
LEFT JOIN MES_WORK_PLAN fwp ON wp.FRONT_WP_ID = fwp.ID
LEFT JOIN MES_WORK_PLAN nwp ON wp.NEXT_WP_ID = nwp.ID
LEFT JOIN MES_WORK_ORDER wo ON wp.WO_ID = wo.ID
LEFT JOIN MES_YIELD_ORDER yo ON wo.YO_ID = yo.ID
<where>
mr.IS_DELETED = 0 and a.worker = #{mesMakeRec.worker}
<if test="mesMakeRec.woCode != null and mesMakeRec.woCode != ''">
AND wo.WO_CODE LIKE concat(concat('%', #{mesMakeRec.worker}),'%')
</if>
<if test="mesMakeRec.cardNo != null and mesMakeRec.cardNo != ''">
AND wo.CARD_NO LIKE concat(concat('%', #{mesMakeRec.cardNo}),'%')
</if>
<if test="mesMakeRec.partCode != null and mesMakeRec.partCode != ''">
AND yo.PART_CODE LIKE concat(concat('%', #{mesMakeRec.partCode}),'%')
</if>
<if test="mesMakeRec.partName != null and mesMakeRec.partName != ''">
AND yo.PART_NAME LIKE concat(concat('%', #{mesMakeRec.partName}),'%')
</if>
<if test="mesMakeRec.batchNo != null and mesMakeRec.batchNo != ''">
AND yo.BATCH_NO LIKE concat(concat('%', #{mesMakeRec.batchNo}),'%')
</if>
<if test="mesMakeRec.productType != null and mesMakeRec.productType != ''">
AND yo.PRODUCT_TYPE LIKE concat(concat('%', #{mesMakeRec.productType}),'%')
</if>
<if test="mesMakeRec.productIdent != null and mesMakeRec.productIdent != ''">
AND yo.PRODUCT_IDENT LIKE concat(concat('%', #{mesMakeRec.productIdent}),'%')
</if>
</where>
<select id="selectMesMakeRecPage" resultMap="mesMakeRecResultMap">
select * from MES_MAKE_REC where is_deleted = 0
</select>
</mapper>

@ -50,4 +50,6 @@ public interface IMacToolUseService extends BaseService<MacToolUse> {
MacToolUse getDataByWpIdAndIndex(Long id, String number);
MacToolUse getHangNumIsNull(Long id);
MacToolUse queryByParams(Long id, Integer rsBool, Integer fsBool, Integer ecBool);
}

@ -26,7 +26,7 @@ public interface IMakeRecService extends BaseService<MakeRec> {
* 增加工序记录
* @param makeRecDTO
*/
void saveMakeRec(MakeRecDTO makeRecDTO);
boolean saveMakeRec(MakeRecDTO makeRecDTO);
IPage<MesMakeRecVO> selectMesMakeRecPage(IPage<MesMakeRecVO> page, MesMakeRecVO mesMakeRec);

@ -2,10 +2,7 @@ package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.InBatchesDTO;
import org.springblade.desk.produce.pojo.dto.ListProProcessDTO;
import org.springblade.desk.produce.pojo.dto.QueryByReadStatusDTO;
import org.springblade.desk.produce.pojo.dto.WorkOrderDTO;
import org.springblade.desk.produce.pojo.dto.*;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
@ -190,4 +187,6 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
* @param workOrder 订单
*/
void updateHostWorkUnit(WorkOrder workOrder);
boolean updatePriority(UpdatePriorityDTO updatePriorityDTO);
}

@ -127,6 +127,11 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
return CollectionUtils.isNotEmpty(macToolUses) ? macToolUses.get(0) : null;
}
@Override
public MacToolUse queryByParams(Long wpId, Integer rsBool, Integer fsBool, Integer ecBool) {
return baseMapper.queryByParams(wpId, rsBool, fsBool, ecBool);
}
public static final int time2Integer(Date d) {
Calendar cal = Calendar.getInstance();
cal.setTime(d);

@ -7,12 +7,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jodd.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.entity.UserRight;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.basic.service.IUserRightService;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
@ -36,14 +39,14 @@ import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO;
import org.springblade.desk.produce.service.*;
import org.springblade.desk.quality.pojo.entity.AuditFile;
import org.springblade.desk.quality.service.IAuditFileService;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.DataScope;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -80,6 +83,12 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
private final IMesEquipmentCardService mesEquipmentCardService;
private final IUserRightService userRightService;
private final IMesRbFilePreserveSlotService mesRbFilePreserveSlotService;
private final IMesRbFilePreserveDetailService mesRbFilePreserveDetailService;
@Override
public WorkPlanDto loadCurrentWp(String cardNo) {
WorkOrder wo = workOrderMapper.getWorkOrderByCardNo(cardNo, (short) 0);
@ -95,7 +104,7 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
if (!WorkPlan.STATUS_START.equals(wp.getStatus())) {
throw new ServiceException("当前工序已报工完成!");
}
// this.checkTeamWorkPlan(wp, prWorkPlanService.getTeamId(userInfo.getUserId()));
this.checkTeamWorkPlan(wp, this.getTeamId(AuthUtil.getUserId()));
boolean isBinging = false;
// 查询当前工序是否绑定了挂次号
long count = macToolUseService.count(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId()).isNotNull(MacToolUse::getHangNum));
@ -103,89 +112,105 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
isBinging = true;
}
YieldOrder yieldOrder = yieldOrderService.getById(wo.getYoId());
return WorkPlanDto.builder().workPlan(wp).workOrder(wo).yieldOrder(yieldOrder).isBinging(isBinging).build();
WorkPlanDto workPlanDto = new WorkPlanDto(yieldOrder, wo, wp, isBinging);
workPlanDto.setCurrentWpTitle("");
workPlanDto.setCurrentMakeTeam("");
workPlanDto.setFrontWpTitle("");
workPlanDto.setFrontMakeTeam("");
workPlanDto.setNextWpTitle("");
workPlanDto.setNextMakeTeam("");
return workPlanDto;
}
private void checkTeamWorkPlan(WorkPlan wp, List<Long> teamId) {
Long tsId;
//判断是否特殊工序,如果是特殊工序验证附属班组,反之则为分派班组
//20260304 逻辑更改,若存在附属班组,则验证附属班组,不存在附属班组,验证加工班组
if (wp.getSubsidiaryTeam() != null) {
tsId = wp.getSubsidiaryTeam();
} else {
tsId = wp.getMakeTeam();
}
if (teamId == null) {
throw new ServiceException("当前登录人无对应班组!");
}
if (!teamId.contains(tsId)) {
throw new ServiceException("当前工序不是登录人所在班组工序,不能操作!");
}
}
private List<Long> getTeamId(Long userId) {
List<UserRight> bsTeamSet = userRightService.list(Wrappers.lambdaQuery(UserRight.class).eq(UserRight::getUserId, userId).eq(UserRight::getUrType, "bs_team_set"));
if (CollectionUtils.isEmpty(bsTeamSet)) {
return null;
}
return bsTeamSet.stream().map(UserRight::getTheId).toList();
}
@Override
public void saveMakeRec(MakeRecDTO makeRecDTO) {
public boolean saveMakeRec(MakeRecDTO makeRecDTO) {
WorkPlan wp = workPlanMapper.selectById(makeRecDTO.getWpId());
if (!WorkPlan.STATUS_START.equals(wp.getStatus())) {
throw new ServiceException("product.prWorkPlan.workOk");
throw new ServiceException("当前工序已报工完成!");
}
MacToolUse mtu = null;
MacToolUse mtu;
DsProcessEntity dsProcess = dsProcessService.getById(wp.getPpsId());
DsProcessEntity frontProcess = dsProcessService.getById(wp.getFrontWpId());
//如果是上挂工序,需判定是否绑定挂具
if (dsProcess.getProcessName().equals("上挂")) {
mtu = macToolUseService.getOne(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId())
.isNotNull(MacToolUse::getBsRackSet));
if ("上挂".equals(dsProcess.getProcessName())) {
mtu = macToolUseService.queryByParams(wp.getId(), 1, 0, 0);
if (mtu == null) {
throw new ServiceException("product.prWorkPlan.not.bing.bsRackSet");
throw new ServiceException("上挂工序未绑定挂具!");
}
// 如果上序是上挂工序、并且本序是主工序,则代表本序是 需要绑定飞靶及设备的工序 或者手动维护生产追溯信息
} else if (wp.getFrontWpId() != null && dsProcess.getProcessName().equals("上挂") && wp.getCruxProcess().equals("是")) {
mtu = macToolUseService.getOne(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId())
.isNotNull(MacToolUse::getBsRackSet).isNotNull(MacToolUse::getBsFeiBaSet).isNotNull(MacToolUse::getEquipmentCard));
} else if (wp.getFrontWpId() != null && "上挂".equals(frontProcess.getProcessName()) && "1".equals(wp.getCruxProcess())) {
mtu = macToolUseService.queryByParams(wp.getId(), 1, 1, 1);
if (mtu == null) {
// 验证是否维护了生产追溯信息
List<String> mtnCodeList = macToolUseService.listObjs(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId()).select(MacToolUse::getMtnCode));
List<MesQcProduceRunEntity> qcProduceRunList = mesQcProduceRunService.list(Wrappers.<MesQcProduceRunEntity>lambdaQuery()
.in(MesQcProduceRunEntity::getMtnCode, mtnCodeList));
if (!(qcProduceRunList != null && qcProduceRunList.size() > 0)) {
throw new ServiceException("product.prWorkPlan.not.bing");
List<MesQcProduceRunEntity> qcProduceRunList = mesQcProduceRunService.listPrByWpId(wp.getId());
if (!(qcProduceRunList != null && !qcProduceRunList.isEmpty())) {
throw new ServiceException("此工序卡未绑定飞靶或设备!");
}
}
} else if (dsProcess.getProcessName().contains("镀金")) {
mtu = macToolUseService.getOne(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId())
.isNotNull(MacToolUse::getBsFeiBaSet));
mtu = macToolUseService.queryByParams(wp.getId(), 0, 1, 0);
if (mtu == null) {
throw new ServiceException("此工序未绑定飞跋,请绑定飞跋!!!");
}
//验证是否绑定设备
mtu = macToolUseService.getOne(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId())
.isNotNull(MacToolUse::getBsRackSet).isNotNull(MacToolUse::getBsFeiBaSet).isNotNull(MacToolUse::getEquipmentCard));
mtu = macToolUseService.queryByParams(wp.getId(), 1, 1, 1);
if (mtu == null) {
List<MesQcProduceRunEntity> produceRunList = null;
List<String> mtnCodeList = macToolUseService.listObjs(Wrappers.<MacToolUse>lambdaQuery()
.eq(MacToolUse::getWpId, wp.getId()).eq(MacToolUse::getMtuIndex, 1).select(MacToolUse::getMtnCode));
produceRunList = mesQcProduceRunService.list(Wrappers.<MesQcProduceRunEntity>lambdaQuery()
.in(MesQcProduceRunEntity::getMtnCode, mtnCodeList).ne(MesQcProduceRunEntity::getWorkSlot, "烘箱"));
if (produceRunList == null || produceRunList.size() == 0) {
List<String> mtnCodeList2 = macToolUseService.listObjs(Wrappers.<MacToolUse>lambdaQuery()
.eq(MacToolUse::getWpId, wp.getId()).eq(MacToolUse::getMtuIndex, 2).select(MacToolUse::getMtnCode));
produceRunList = mesQcProduceRunService.list(Wrappers.<MesQcProduceRunEntity>lambdaQuery()
.in(MesQcProduceRunEntity::getMtnCode, mtnCodeList2).ne(MesQcProduceRunEntity::getWorkSlot, "烘箱"));
produceRunList = mesQcProduceRunService.listPrByWpIdIndex(wp.getId(), 1, Boolean.FALSE);
if (produceRunList == null || produceRunList.isEmpty()) {
produceRunList = mesQcProduceRunService.listPrByWpIdIndex(wp.getId(), 2, Boolean.FALSE);
}
if (!(produceRunList != null && produceRunList.size() > 0)) {
if (!(produceRunList != null && !produceRunList.isEmpty())) {
throw new ServiceException("未绑定飞跋和设备或未维护生产追溯信息!!!");
}
}
} else if (dsProcess.getProcessName().equals("玻璃封接清洗") || dsProcess.getProcessName().equals("玻璃封接退火") ||
dsProcess.getProcessName().equals("玻璃封接预氧化(箱式炉)") || dsProcess.getProcessName().equals("玻璃封接预氧化(链式炉)") ||
dsProcess.getProcessName().equals("玻璃封接(链式炉)") || dsProcess.getProcessName().equals("玻璃封接(真空炉)") ||
dsProcess.getProcessName().equals("玻璃封接灌胶") || dsProcess.getProcessName().equals("玻璃饼压制") ||
dsProcess.getProcessName().equals("玻璃饼排蜡玻化") || dsProcess.getProcessName().equals("玻璃饼振光") ||
dsProcess.getProcessName().equals("石墨模烘干") || dsProcess.getProcessName().equals("石墨模焙烧") ||
dsProcess.getProcessName().equals("真空炉灌胶") || dsProcess.getProcessName().equals("玻璃封接电镀去氧化皮") ||
dsProcess.getProcessName().equals("玻璃封接电化学抛光") || dsProcess.getProcessName().equals("玻璃封接湿喷砂") ||
dsProcess.getProcessName().equals("玻璃封接电镀") || dsProcess.getProcessName().equals("玻璃封接插针电镀") ||
dsProcess.getProcessName().equals("玻璃封接壳体电镀") || dsProcess.getProcessName().equals("玻璃封接电镀下挂") ||
dsProcess.getProcessName().equals("烧结浸保护剂")) {
mtu = macToolUseService.getOne(Wrappers.<MacToolUse>lambdaQuery().eq(MacToolUse::getWpId, wp.getId())
.isNotNull(MacToolUse::getBsRackSet).isNotNull(MacToolUse::getBsFeiBaSet).isNotNull(MacToolUse::getEquipmentCard));
} else if ("玻璃封接清洗".equals(dsProcess.getProcessName()) || "玻璃封接退火".equals(dsProcess.getProcessName()) ||
"玻璃封接预氧化(箱式炉)".equals(dsProcess.getProcessName()) || "玻璃封接预氧化(链式炉)".equals(dsProcess.getProcessName()) ||
"玻璃封接(链式炉)".equals(dsProcess.getProcessName()) || "玻璃封接(真空炉)".equals(dsProcess.getProcessName()) ||
"玻璃封接灌胶".equals(dsProcess.getProcessName()) || "玻璃饼压制".equals(dsProcess.getProcessName()) ||
"玻璃饼排蜡玻化".equals(dsProcess.getProcessName()) || "玻璃饼振光".equals(dsProcess.getProcessName()) ||
"石墨模烘干".equals(dsProcess.getProcessName()) || "石墨模焙烧".equals(dsProcess.getProcessName()) ||
"真空炉灌胶".equals(dsProcess.getProcessName()) || "玻璃封接电镀去氧化皮".equals(dsProcess.getProcessName()) ||
"玻璃封接电化学抛光".equals(dsProcess.getProcessName()) || "玻璃封接湿喷砂".equals(dsProcess.getProcessName()) ||
"玻璃封接电镀".equals(dsProcess.getProcessName()) || "玻璃封接插针电镀".equals(dsProcess.getProcessName()) ||
"玻璃封接壳体电镀".equals(dsProcess.getProcessName()) || "玻璃封接电镀下挂".equals(dsProcess.getProcessName()) ||
"烧结浸保护剂".equals(dsProcess.getProcessName())) {
mtu = macToolUseService.queryByParams(wp.getId(), 1, 1, 1);
if (mtu == null) {
// 验证是否维护了生产追溯信息
List<MesQcProduceRunEntity> qcProduceRunList = null;
List<String> mtnCodeList = macToolUseService.listObjs(Wrappers.<MacToolUse>lambdaQuery()
.eq(MacToolUse::getWpId, wp.getId()).select(MacToolUse::getMtnCode));
qcProduceRunList = mesQcProduceRunService.list(Wrappers.<MesQcProduceRunEntity>lambdaQuery()
.in(MesQcProduceRunEntity::getMtnCode, mtnCodeList));
if (!(qcProduceRunList != null && qcProduceRunList.size() > 0)) {
throw new ServiceException("product.prWorkPlan.not.bing");
List<MesQcProduceRunEntity> qcProduceRunList = mesQcProduceRunService.listPrByWpId(wp.getId());
if (!(qcProduceRunList != null && !qcProduceRunList.isEmpty())) {
throw new ServiceException("此工序卡未绑定飞靶或设备!");
}
}
}
//周新昊 20241114 验证手动维护设备使用记录的工序电子档案数据是否维护完备
Boolean aBoolean = true; //this.chkRfpDetail(wp);
boolean aBoolean = this.chkRfpDetail(wp.getId());
if (!aBoolean) {
throw new ServiceException("生产记录未填写完整,不允许报工!!!!");
}
@ -197,8 +222,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
baseMapper.insertOrUpdate(mr);
if (mr.getScrapQty() > 0) {
wp.setScrapQty(wp.getScrapQty() + mr.getScrapQty());
WorkOrder wo = null;//workOrderService.getById(wp.getWoId());
WorkOrder wo = workOrderMapper.selectById(wp.getWoId());
wo.setMakeQty(wo.getMakeQty() - mr.getScrapQty());
workOrderMapper.updateById(wo);
}
wp.setWorkQty(wp.getWorkQty() + mr.getWorkQty());
if (wp.getQualifiedQty().equals(wp.getScrapQty() + wp.getWorkQty())) {
@ -206,7 +232,6 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
}
if ("热处理".equals(dsProcess.getProcessName())) {
wp.setPrintType((short) 1);
//workPlanService.saveOrUpdate(wp);
String code = macToolUseService.nextCode(2);
MacToolUse prMacToolUse = new MacToolUse();
prMacToolUse.setWpId(wp.getId());
@ -232,61 +257,230 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
qcProduceRun.setDataSeven(makeRecDTO.getShape());
mesQcProduceRunService.save(qcProduceRun);
}
// 保存引用文件或版本号
WorkOrder prWorkOrder = null; //workOrderService.getById(wp.getWoId());
if (prWorkOrder != null && prWorkOrder.getId() != null) {
YieldOrder pjYieldOrder = yieldOrderService.getById(prWorkOrder.getYoId());
if (pjYieldOrder != null && pjYieldOrder.getId() != null) {
BsProcessSetEntity procedureSet = bsProcessSetService.getById(wp.getPpsId());
AuditFile dsAuditFile = null;
// 如果本序是涂色标或喷砂,直接查维护的数据
if ("涂色标".equals(procedureSet.getName()) || "喷砂".equals(procedureSet.getName())) {
dsAuditFile = auditFileService.getOne(Wrappers.<AuditFile>lambdaQuery()
.eq(AuditFile::getPpsId, procedureSet.getId()));
} else {
// 如果不是优先判断是否有生产标识
String prodIdent = pjYieldOrder.getProductIdent();
BsTeamSetEntity bsTeamSet = teamSetService.getOne(Wrappers.<BsTeamSetEntity>lambdaQuery()
.eq(BsTeamSetEntity::getId, wp.getMakeTeam()));
if (!"AH".equals(prodIdent)) {
prodIdent = null;
}
if (bsTeamSet != null && bsTeamSet.getId() != null) {
// BsCenterTeamEntity bsCenterTeam = bsCenterTeamService.getByTsId(bsTeamSet.getTsId());
DsPartEntity dsPart = partService.getOne(Wrappers.<DsPartEntity>lambdaQuery().eq(DsPartEntity::getPartCode, pjYieldOrder.getPartCode()));
String productApparea = null;
if (dsPart != null && dsPart.getId() != null) {
productApparea = dsPart.getProductSeries();
workPlanMapper.updateById(wp);
// 2025-07-23 线上迁移修改
MacToolUse macToolUse = macToolUseService.getDataByWpIdAndIndex(wp.getId(), "2");
if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) {
macToolUse.setFinished(1);
String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:addMakeRec(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished());
macToolUseService.updateById(macToolUse);
}
return true;
}
private boolean chkRfpDetail(Long 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)) {
for (MacToolUse macToolUs : macToolUses) {
List<MesQcProduceRunEntity> qcProduceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery(MesQcProduceRunEntity.class).eq(MesQcProduceRunEntity::getMtnCode, macToolUs.getMtnCode())
.and(wrapper -> wrapper.isNull(MesQcProduceRunEntity::getWorkSlot).or().notLike(MesQcProduceRunEntity::getWorkSlot, "入料区")).orderByAsc(MesQcProduceRunEntity::getId));
Map<String, MesQcProduceRunEntity> qcProduceRunMap = qcProduceRunList.stream().collect(Collectors.toMap(MesQcProduceRunEntity::getWorkSlot, Function.identity()));
List<MesRbFilePreserveSlotEntity> dsRbFilePreserveSlots = mesRbFilePreserveSlotService.list(Wrappers.lambdaQuery(MesRbFilePreserveSlotEntity.class).eq(MesRbFilePreserveSlotEntity::getRfpId, macToolUs.getRfpId()).orderByAsc(MesRbFilePreserveSlotEntity::getSlotIndex));
if (CollectionUtils.isNotEmpty(dsRbFilePreserveSlots)) {
for (MesRbFilePreserveSlotEntity dsRbFilePreserveSlot : dsRbFilePreserveSlots) {
MesQcProduceRunEntity qcProduceRun = qcProduceRunMap.get(dsRbFilePreserveSlot.getSlotName());
if (qcProduceRun != null) {
List<MesRbFilePreserveDetailEntity> dsRbFilePreserveDetails = mesRbFilePreserveDetailService.getByRfpsId(dsRbFilePreserveSlot.getId());
if (CollectionUtils.isNotEmpty(dsRbFilePreserveDetails)) {
if (dsRbFilePreserveSlot.getRfpsType() == 1) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 2) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 3 || dsRbFilePreserveSlot.getRfpsType() == 11) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 4 || dsRbFilePreserveSlot.getRfpsType() == 12) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 5 || dsRbFilePreserveSlot.getRfpsType() == 22) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 6) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 7 || dsRbFilePreserveSlot.getRfpsType() == 18) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 8) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 9) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 13) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())
|| StringUtils.isBlank(qcProduceRun.getDataSeven())
|| StringUtils.isBlank(qcProduceRun.getDataEight())
|| StringUtils.isBlank(qcProduceRun.getDataNine())
|| StringUtils.isBlank(qcProduceRun.getDataTen())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 14) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())
|| StringUtils.isBlank(qcProduceRun.getDataSeven())
|| StringUtils.isBlank(qcProduceRun.getDataEight())
|| StringUtils.isBlank(qcProduceRun.getDataNine())
|| StringUtils.isBlank(qcProduceRun.getDataTen())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 15) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())
|| StringUtils.isBlank(qcProduceRun.getDataSeven())
|| StringUtils.isBlank(qcProduceRun.getDataEight())
|| StringUtils.isBlank(qcProduceRun.getDataNine())
|| StringUtils.isBlank(qcProduceRun.getDataTen())
|| StringUtils.isBlank(qcProduceRun.getDataEleven())
|| StringUtils.isBlank(qcProduceRun.getDataTwelve())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 16) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())
|| StringUtils.isBlank(qcProduceRun.getDataSeven())
|| StringUtils.isBlank(qcProduceRun.getDataEight())
|| StringUtils.isBlank(qcProduceRun.getDataNine())
|| StringUtils.isBlank(qcProduceRun.getDataTen())
|| StringUtils.isBlank(qcProduceRun.getDataEleven())
|| StringUtils.isBlank(qcProduceRun.getDataTwelve())
|| StringUtils.isBlank(qcProduceRun.getDataThirteen())
|| StringUtils.isBlank(qcProduceRun.getDataFourteen())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 17) {
if (StringUtils.isBlank(qcProduceRun.getInDate())
|| StringUtils.isBlank(qcProduceRun.getOutDate())
|| StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())) {
return false;
}
} else if (dsRbFilePreserveSlot.getRfpsType() == 21) {
if (StringUtils.isBlank(qcProduceRun.getDataOne())
|| StringUtils.isBlank(qcProduceRun.getDataTwo())
|| StringUtils.isBlank(qcProduceRun.getDataThree())
|| StringUtils.isBlank(qcProduceRun.getDataFour())
|| StringUtils.isBlank(qcProduceRun.getDataFive())
|| StringUtils.isBlank(qcProduceRun.getDataSix())
|| StringUtils.isBlank(qcProduceRun.getDataSeven())
|| StringUtils.isBlank(qcProduceRun.getDataEight())
|| StringUtils.isBlank(qcProduceRun.getDataNine())) {
return false;
}
}
}
}
// if (productApparea!=null){
// dsAuditFile = dsAuditFileDao.getDataByPpsIdAndApparea(procedureSet.getPpsId(), bsCenterTeam.getBsWorkCenter().getWcId(),productApparea);
// }
// if (bsCenterTeam != null && bsCenterTeam.getCtId() != null && dsAuditFile == null) {
// dsAuditFile = dsAuditFileDao.getDataByPpsIdAndPqName(procedureSet.getPpsId(), bsCenterTeam.getBsWorkCenter().getWcId(), prodIdent);
// }
}
}
if (dsAuditFile != null && dsAuditFile.getId() != null) {
wp.setPapers(dsAuditFile.getPapers());
wp.setReferenceFile(dsAuditFile.getReferenceFile());
//workPlanService.updateById(wp);
}
// 2025-07-23 线上迁移修改
MacToolUse macToolUse = macToolUseService.getOne(Wrappers.<MacToolUse>lambdaQuery()
.eq(MacToolUse::getWpId, wp.getId()));
if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) {
macToolUse.setFinished(1);
String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : "";
log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:addMakeRec(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished());
macToolUseService.updateById(macToolUse);
}
}
}
return true;
}
@Override
public IPage<MesMakeRecVO> selectMesMakeRecPage(IPage<MesMakeRecVO> page, MesMakeRecVO mesMakeRec) {
return page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec));
IPage<MesMakeRecVO> mesMakeRecVOIPage = page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec));
List<MesMakeRecVO> records = mesMakeRecVOIPage.getRecords();
if (CollectionUtils.isNotEmpty(records)) {
List<Long> ppsIds = new ArrayList<>();
List<Long> makeTeams = new ArrayList<>();
for (MesMakeRecVO record : records) {
ppsIds.add(record.getPpsId());
if (record.getFrontPpsId() != null) {
ppsIds.add(record.getFrontPpsId());
}
if (record.getNextPpsId() != null) {
ppsIds.add(record.getNextPpsId());
}
if (record.getMakeTeam() != null) {
makeTeams.add(record.getMakeTeam());
}
if (record.getFrontMakeTeam() != null) {
makeTeams.add(record.getFrontMakeTeam());
}
if (record.getNextMakeTeam() != null) {
makeTeams.add(record.getNextMakeTeam());
}
}
List<BsProcessSetEntity> processSets = bsProcessSetService.list(Wrappers.lambdaQuery(BsProcessSetEntity.class).in(BsProcessSetEntity::getId, ppsIds));
Map<Long, String> processSetMap = processSets.stream().collect(Collectors.toMap(BsProcessSetEntity::getId, BsProcessSetEntity::getName));
List<BsTeamSetEntity> teams = teamSetService.list(Wrappers.lambdaQuery(BsTeamSetEntity.class).in(BsTeamSetEntity::getId, makeTeams));
Map<Long, String> teamMap = teams.stream().collect(Collectors.toMap(BsTeamSetEntity::getId, BsTeamSetEntity::getTsName));
for (MesMakeRecVO record : records) {
User user = UserCache.getUser(record.getWorker());
record.setWorkerName(user != null ? user.getRealName() : "");
record.setPpsName(processSetMap.get(record.getPpsId()));
record.setMakeTeamName(teamMap.get(record.getMakeTeam()));
record.setFrontPpsName(processSetMap.get(record.getFrontPpsId()));
record.setFrontMakeTeamName(teamMap.get(record.getFrontMakeTeam()));
record.setNextPpsName(processSetMap.get(record.getNextPpsId()));
record.setNextMakeTeamName(teamMap.get(record.getNextMakeTeam()));
}
mesMakeRecVOIPage.setRecords(records);
}
return mesMakeRecVOIPage;
}
@Override

@ -43,10 +43,7 @@ import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.produce.mapper.PlateAroundMapper;
import org.springblade.desk.produce.mapper.WorkOrderMapper;
import org.springblade.desk.produce.pojo.dto.InBatchesDTO;
import org.springblade.desk.produce.pojo.dto.ListProProcessDTO;
import org.springblade.desk.produce.pojo.dto.QueryByReadStatusDTO;
import org.springblade.desk.produce.pojo.dto.WorkOrderDTO;
import org.springblade.desk.produce.pojo.dto.*;
import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.enums.WorkOrderEnum;
import org.springblade.desk.produce.pojo.enums.ProcessCycleEnum;
@ -1635,6 +1632,26 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
}
@Override
public boolean updatePriority(UpdatePriorityDTO updatePriorityDTO) {
WorkOrder wo = this.getById(updatePriorityDTO.getWoId());
wo.setPriority(WorkOrder.PRIORITY_SCH_IMP);
wo.setPriority(updatePriorityDTO.getPriority());
wo.setDemandDate(updatePriorityDTO.getDemandDate());
boolean b = this.updateById(wo);
if (b && (WorkOrder.PRIORITY_NORMAL.equals(updatePriorityDTO.getPriority())
|| WorkOrder.PRIORITY_PRO_IMP.equals(updatePriorityDTO.getPriority())
|| WorkOrder.PRIORITY_PACT_IMP.equals(updatePriorityDTO.getPriority())) && wo.getRunStatus() < WorkOrder.RUN_STATUS_RECEIVE) {
// 修改生产订单为待排产
log.info("修改优先级后重新排产");
YieldOrder yieldOrder = new YieldOrder();
yieldOrder.setId(wo.getYoId());
yieldOrder.setStatus(YieldOrderEnum.STATUS_APS.getCode());
yieldOrderService.updateById(yieldOrder);
}
return true;
}
private void workPlanEnd(WorkPlan workPlan, Date newDate, Double makeQty) {
if (workPlan == null) {
return;

Loading…
Cancel
Save