liweidong
liweidong-hj 4 weeks ago
commit ed28e73bc8
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java
  2. 45
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/DispatchConfigApprovalConst.java
  3. 69
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/DispatchConfigApproval.java
  4. 31
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/AuditRequest.java
  5. 47
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/DispatchConfigApprovalRequest.java
  6. 115
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/DispatchConfigApprovalVO.java
  7. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  8. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java
  9. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java
  10. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
  11. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  12. 202
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/DispatchConfigApprovalController.java
  13. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/DispatchConfigApprovalExcel.java
  14. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/DispatchConfigApprovalMapper.java
  15. 86
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IDispatchConfigApprovalService.java
  16. 230
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/DispatchConfigApprovalServiceImpl.java
  17. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  18. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/DispatchConfigApprovalWrapper.java
  19. 14
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java
  20. 3
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipResourceMapper.java
  21. 4
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipResourceMapper.xml
  22. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/PersonResourceMapper.java
  23. 4
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/PersonResourceMapper.xml
  24. 8
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/EquipResourceServiceImpl.java
  25. 6
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java
  26. 6
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  27. 4
      blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StRealtimeStockMapper.xml

@ -23,8 +23,6 @@ import java.util.Date;
@TableName(value = "MES_YIELD_ORDER")
@Data
public class YieldOrder extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 待接收

@ -0,0 +1,45 @@
package org.springblade.desk.quality.constant;
/**
* 分派配置审批常量
*
* @author AI
* @since 2026-05-19
*/
public interface DispatchConfigApprovalConst {
/**
* 状态-草稿
*/
Integer STATUS_DRAFT = 0;
/**
* 状态-审批中
*/
Integer STATUS_APPROVING = 1;
/**
* 状态-审批通过
*/
Integer STATUS_APPROVED = 2;
/**
* 状态-审批驳回
*/
Integer STATUS_REJECTED = 3;
/**
* 状态-已撤销
*/
Integer STATUS_CANCELLED = 4;
/**
* 审批结果-通过
*/
Integer AUDIT_RESULT_PASS = 1;
/**
* 审批结果-驳回
*/
Integer AUDIT_RESULT_REJECT = 2;
}

@ -0,0 +1,69 @@
package org.springblade.desk.quality.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
/**
* 分派配置审批实体类
*
* @author AI
* @since 2026-05-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("QA_DISPATCH_CONFIG_APPROVAL")
@Schema(description = "分派配置审批实体")
public class DispatchConfigApproval extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "ID", type = IdType.ASSIGN_ID)
@Schema(description = "主键ID")
private Long id;
/**
* 申请单号
*/
@Schema(description = "申请单号")
private String applicationNo;
/**
* 申请人ID
*/
@Schema(description = "申请人ID")
private Long applicantId;
/**
* 申请人姓名
*/
@Schema(description = "申请人姓名")
private String applicantName;
/**
* 申请时间
*/
@Schema(description = "申请时间")
private Date applicationTime;
/**
* 申请描述/备注
*/
@Schema(description = "申请描述/备注")
private String remark;
/**
* 状态: 0-草稿, 1-审批中, 2-审批通过, 3-审批驳回, 4-已撤销
*/
@Schema(description = "状态: 0-草稿, 1-审批中, 2-审批通过, 3-审批驳回, 4-已撤销")
private Integer status;
}

@ -0,0 +1,31 @@
package org.springblade.desk.quality.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 审核请求DTO
*
* @author qyl
* @since 2026-05-13
*/
@Data
@Schema(description = "审核请求DTO")
public class AuditRequest implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "模板ID不能为空")
@Schema(description = "模板ID")
private Long id;
@NotNull(message = "审核结果不能为空")
@Schema(description = "审核结果: 1-通过, 2-不通过")
private Integer result;
@Schema(description = "审核意见(不通过时必填)")
private String remark;
}

@ -0,0 +1,47 @@
package org.springblade.desk.quality.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 分派配置审批请求DTO
*
* @author AI
* @since 2026-05-19
*/
@Data
@Schema(description = "分派配置审批请求DTO")
public class DispatchConfigApprovalRequest implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID修改时必填
*/
@Schema(description = "主键ID(修改时必填)")
private Long id;
/**
* 申请描述/备注
*/
@NotBlank(message = "申请描述不能为空")
@Schema(description = "申请描述/备注", required = true)
private String remark;
/**
* 审批结果: 1-通过, 2-驳回
*/
@NotNull(message = "审批结果不能为空")
@Schema(description = "审批结果: 1-通过, 2-驳回", required = true)
private Integer auditResult;
/**
* 审批意见
*/
@Schema(description = "审批意见")
private String auditRemark;
}

@ -0,0 +1,115 @@
package org.springblade.desk.quality.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.desk.quality.pojo.entity.DispatchConfigApproval;
import java.util.Date;
/**
* 分派配置审批VO类
*
* @author AI
* @since 2026-05-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "分派配置审批VO")
public class DispatchConfigApprovalVO extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Schema(description = "主键ID")
private Long id;
/**
* 申请单号
*/
@Schema(description = "申请单号")
private String applicationNo;
/**
* 申请人ID
*/
@Schema(description = "申请人ID")
private Long applicantId;
/**
* 申请人姓名
*/
@Schema(description = "申请人姓名")
private String applicantName;
/**
* 申请时间
*/
@Schema(description = "申请时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date applicationTime;
/**
* 申请描述/备注
*/
@Schema(description = "申请描述/备注")
private String remark;
/**
* 状态: 0-草稿, 1-审批中, 2-审批通过, 3-审批驳回, 4-已撤销
*/
@Schema(description = "状态: 0-草稿, 1-审批中, 2-审批通过, 3-审批驳回, 4-已撤销")
private Integer status;
/**
* 状态名称
*/
@Schema(description = "状态名称")
private String statusName;
/**
* 从实体转换为VO
*/
public static DispatchConfigApprovalVO fromEntity(DispatchConfigApproval entity) {
if (entity == null) {
return null;
}
DispatchConfigApprovalVO vo = new DispatchConfigApprovalVO();
vo.setId(entity.getId());
vo.setApplicationNo(entity.getApplicationNo());
vo.setApplicantId(entity.getApplicantId());
vo.setApplicantName(entity.getApplicantName());
vo.setApplicationTime(entity.getApplicationTime());
vo.setRemark(entity.getRemark());
vo.setStatus(entity.getStatus());
vo.setStatusName(getStatusName(entity.getStatus()));
return vo;
}
/**
* 获取状态名称
*/
private static String getStatusName(Integer status) {
if (status == null) {
return "未知";
}
switch (status) {
case 0:
return "草稿";
case 1:
return "审批中";
case 2:
return "审批通过";
case 3:
return "审批驳回";
case 4:
return "已撤销";
default:
return "未知";
}
}
}

@ -1013,23 +1013,23 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Override
public void updateYieldStatus(Long yoId, Integer curStatus, double v) {
YieldOrder yo = this.getById(yoId);
if (YieldOrder.CUR_STATUS_NORMAL.equals(curStatus)) {
if (YieldOrderEnum.STATUS_NORMAL.getCode() == curStatus) {
yo.setStatus(curStatus);
yo.setReceiveTime(null);
yo.setYpMemo(null);
yo.setReceiveUser(null);
} else if (YieldOrder.CUR_STATUS_PROCESSING.equals(curStatus)) {
} else if (YieldOrderEnum.STATUS_PROCESSING.getCode() == curStatus) {
yo.setStatus(curStatus);
// if (po != null) {
// po.setStatus(YieldPlanEnum.STATUS_PROCESSING.getCode());
// }
} else if (YieldOrder.CUR_STATUS_COMPLETED.equals(curStatus)) {
} else if (YieldOrderEnum.STATUS_COMPLETED.getCode() == curStatus) {
List<WorkOrder> listWo = workOrderMapper.listByYoId(yo.getId());
boolean completed = listWo.stream().map(wo -> wo.getRunStatus() >= WorkOrder.RUN_STATUS_COMPLETED).findAny().isPresent();
if (completed) {
yo.setStatus(curStatus);
}
} else if (YieldOrder.CUR_STATUS_VOIDED.equals(curStatus)) {
} else if (YieldOrderEnum.STATUS_CLOSED.getCode() == curStatus) {
//整单报废
List<WorkOrder> listWo = workOrderMapper.selectList(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getYoId, yo.getId()));
boolean completed = listWo.stream().map(wo -> WorkOrder.RUN_STATUS_VOIDED.equals(wo.getRunStatus())).findAny().isPresent();

@ -20,6 +20,7 @@ import org.springblade.desk.order.mapper.YieldPlanMapper;
import org.springblade.desk.order.pojo.dto.YieldPlanDto;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.entity.YieldPlan;
import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.pojo.enums.YieldPlanEnum;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.order.service.IYieldPlanService;
@ -216,7 +217,7 @@ public class YieldPlanServiceImpl extends BaseServiceImpl<YieldPlanMapper, Yield
yieldOrder.setYpCode("");
yieldOrder.setYpArea((double) 0);
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_SJ);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_SJ.getCode());
yieldOrder.setPartCode(dsPartEntity.getPartCode());
yieldOrder.setPartName(dsPartEntity.getPartName());
yieldOrder.setProductIdent(yieldPlan.getProductIdent());

@ -1117,7 +1117,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
boolean bool = true;
if (yoList != null && !yoList.isEmpty()) {
for (YieldOrder item : yoList) {
if (item.getStatus() < YieldOrder.CUR_STATUS_COMPLETED) {
if (item.getStatus() < YieldOrderEnum.STATUS_COMPLETED.getCode()) {
bool = false;
break;
}

@ -437,7 +437,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
//处理同订单
// this.withYield(yo.getId());
//生产订单接收
yo.setReceiveStatus(YieldOrder.CUR_STATUS_NORMAL);
yo.setReceiveStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
//关闭erp外协订单,程序调用存储过程
if (!yo.getManualIncrease() && oldOemCustomer != null) {
erpDataOemClient.closeErpOrder(wxCode, workOrderRun.getApprovalMemo());

@ -749,7 +749,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return null;
}
//非烧结零件跳过子件验证
if (!yieldOrder.getYieldType().equals(YieldOrder.YIELD_TYPE_2)) {
if (!yieldOrder.getYieldType().equals(YieldOrderEnum.YIELD_TYPE_2.getCode())) {
return null;
}
@ -854,7 +854,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setRunStatus(runStatus);
if (WorkOrder.RUN_STATUS_RECEIVE.equals(runStatus)) {
workOrder.setPickingStatus(WorkOrder.PICKING_STATUS_OK);
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrder.CUR_STATUS_PROCESSING, 0d);
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrderEnum.STATUS_PROCESSING.getCode(), 0d);
} else if (WorkOrder.RUN_STATUS_COMPLETED.equals(runStatus) || WorkOrder.RUN_STATUS_HANDOVER.equals(runStatus)) {
if (workOrder.getPutStoreTime() == null) {
workOrder.setPutStoreTime(new Date());
@ -865,7 +865,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_COMPLETED);
workOrderRunService.updateById(workOrderRun);
}
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrder.CUR_STATUS_COMPLETED, workOrder.getInventoryQty());
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrderEnum.STATUS_COMPLETED.getCode(), workOrder.getInventoryQty());
} else if (WorkOrder.RUN_STATUS_ISSUED.equals(runStatus)) {
workOrder.setApprovalStatus(WorkOrder.APPROVAL_STATUS_NORMAL);
// if (workOrder.getWorkPlan().getMakeTeam() != null) {
@ -879,7 +879,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
log.info("新车间订单状态修改:{},订单状态{}", workOrder.getWoCode(), workOrder.getRunStatus());
} else if (WorkOrder.RUN_STATUS_VOIDED.equals(runStatus)) {
//整单报废
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrder.CUR_STATUS_VOIDED, 0d);
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrderEnum.STATUS_CLOSED.getCode(), 0d);
WorkOrderRun workOrderRun = workOrderRunService.getById(workOrder.getWorId());
if (workOrderRun != null) {
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_VOIDED);
@ -889,7 +889,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setCloseTime(new Date());
// 如果是烧结部件,子件同样关闭
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
if (YieldOrder.YIELD_TYPE_2.equals(yieldOrder.getYieldType())) {
if (YieldOrderEnum.YIELD_TYPE_2.getCode() == yieldOrder.getYieldType()) {
List<YieldOrder> list = yieldOrderService.list(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getFatherYoId, yieldOrder.getId()));
if (CollectionUtils.isNotEmpty(list)) {
// 将list转换为id集合
@ -907,7 +907,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
}
} else if (WorkOrder.RUN_STATUS_SCRAP.equals(runStatus)) {
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrder.CUR_STATUS_COMPLETED, 0d);
yieldOrderService.updateYieldStatus(workOrder.getYoId(), YieldOrderEnum.STATUS_COMPLETED.getCode(), 0d);
WorkOrderRun workOrderRun = workOrderRunService.getById(workOrder.getWorId());
if (workOrderRun != null) {
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_COMPLETED);
@ -1240,17 +1240,17 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setOem("1");
workOrder.setOemOut("0");
workOrder.setOemType(WorkOrder.OEM_TYPE_WHOLE);
pjYieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_WX);
pjYieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_WX.getCode());
} else {
days = ProcessCycleEnum.BC_TYPE_CYCLE_HEAT.getValue();
workOrder.setOem("0");
workOrder.setOemOut("1");
workOrder.setOemType(Integer.valueOf(FlowConst.STATUS_NEW));
//重新识别订单类型
if (YieldOrder.YIELD_TYPE_1.equals(pjYieldOrder.getYieldType())) {
pjYieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
if (YieldOrderEnum.YIELD_TYPE_1.getCode() == pjYieldOrder.getYieldType()) {
pjYieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
} else {
pjYieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_SJ);
pjYieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_SJ.getCode());
}
}
yieldOrderMapper.updateById(pjYieldOrder);
@ -1258,13 +1258,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setDispatcher(dispatcher);
workOrder.setWorId(workOrderRun.getId());
if (YieldOrder.YIELD_TYPE_2.equals(pjYieldOrder.getYieldType())) {
if (YieldOrderEnum.YIELD_TYPE_2.getCode() == pjYieldOrder.getYieldType()) {
days = ProcessCycleEnum.BC_TYPE_CYCLE_SIN_TER.getValue();
} else if (YieldOrder.YIELD_TYPE_3.equals(pjYieldOrder.getYieldType())) {
} else if (YieldOrderEnum.YIELD_TYPE_3.getCode() == pjYieldOrder.getYieldType()) {
days = ProcessCycleEnum.BC_TYPE_CYCLE_SIN_BL.getValue();
} else if (YieldOrder.YIELD_TYPE_4.equals(pjYieldOrder.getYieldType()) || YieldOrder.YIELD_TYPE_5.equals(pjYieldOrder.getYieldType())) {
} else if (YieldOrderEnum.YIELD_TYPE_4.getCode() == pjYieldOrder.getYieldType() || YieldOrderEnum.YIELD_TYPE_5.getCode() == pjYieldOrder.getYieldType()) {
days = ProcessCycleEnum.BC_TYPE_CYCLE_SIN_JS.getValue();
} else if (YieldOrder.YIELD_TYPE_6.equals(pjYieldOrder.getYieldType())) {
} else if (YieldOrderEnum.YIELD_TYPE_6.getCode() == pjYieldOrder.getYieldType()) {
days = ProcessCycleEnum.BC_TYPE_CYCLE_SIN_MJ.getValue();
}
Date date = DateUtil.plusDays(workOrder.getSendDownTime(), days);
@ -1434,7 +1434,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
mtuListVO.setHangNum(macToolUse.getHangNum());
mtuListVO.setRsCode(rackSetEntityMap.get(macToolUse.getBsRackSet()) != null ? rackSetEntityMap.get(macToolUse.getBsRackSet()).getRsCode() : "");
mtuListVO.setFsCode(feiBaSetEntityMap.get(macToolUse.getBsFeiBaSet()) != null ? feiBaSetEntityMap.get(macToolUse.getBsFeiBaSet()).getFsCode() : "");
mtuListVO.setDeviceCode(equipmentEntityMap.get(macToolUse.getEquipmentCard()) != null ? equipmentEntityMap.get(macToolUse.getEquipmentCard()).getDeviceName() : "");
mtuListVO.setDeviceCode(equipmentEntityMap.get(macToolUse.getEquipmentCard()) != null ? equipmentEntityMap.get(macToolUse.getEquipmentCard()).getDeviceCode() : "");
mtuList.add(mtuListVO);
}
planDataVO.setMtuList(mtuList);
@ -1458,7 +1458,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
// 检验项目
List<WorkPlanItem> workPlanItems = workPlanItemService.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId));
List<WorkPlanItem> workPlanItems = workPlanItemService.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId).orderByAsc(WorkPlanItem::getItemCode));
if (CollectionUtils.isNotEmpty(workPlanItems)) {
List<WorkPlanItemDetail> itemDetails = workPlanItemDetailService.list(Wrappers.lambdaQuery(WorkPlanItemDetail.class).in(WorkPlanItemDetail::getWorkPlanItemId, workPlanItems.stream().map(WorkPlanItem::getId).toList()));
List<ProduceMonitorPlanItemVO> itemVos = new ArrayList<>();

@ -0,0 +1,202 @@
package org.springblade.desk.quality.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.DispatchConfigApprovalExcel;
import org.springblade.desk.quality.pojo.entity.DispatchConfigApproval;
import org.springblade.desk.quality.pojo.request.DispatchConfigApprovalRequest;
import org.springblade.desk.quality.pojo.vo.DispatchConfigApprovalVO;
import org.springblade.desk.quality.service.IDispatchConfigApprovalService;
import org.springblade.desk.quality.wrapper.DispatchConfigApprovalWrapper;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* [分派配置审批] 控制器
*
* @author AI
* @since 2026-05-19
*/
@RestController
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/DispatchConfigApproval")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
@Tag(name = "[分派配置审批]", description = "[分派配置审批]接口")
public class DispatchConfigApprovalController extends BladeController {
@Resource
private IDispatchConfigApprovalService service;
/**
* [分派配置审批] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入DispatchConfigApproval Obj")
public R<DispatchConfigApprovalVO> detail(DispatchConfigApproval dispatchConfigApproval) {
QueryWrapper<DispatchConfigApproval> qw = Condition.getQueryWrapper(dispatchConfigApproval);
DispatchConfigApproval detail = service.getOne(qw);
DispatchConfigApprovalVO detailVO = DispatchConfigApprovalWrapper.build().entityVO(detail);
return R.data(detailVO);
}
/**
* [分派配置审批] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入DispatchConfigApproval Obj")
public R<IPage<DispatchConfigApprovalVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> dispatchConfigApproval,
Query query) {
QueryWrapper<DispatchConfigApproval> qw = Condition.getQueryWrapper(dispatchConfigApproval, DispatchConfigApproval.class);
IPage<DispatchConfigApproval> pages = service.page(Condition.getPage(query), qw);
IPage<DispatchConfigApprovalVO> pagesVO = DispatchConfigApprovalWrapper.build().pageVO(pages);
return R.data(pagesVO);
}
/**
* [分派配置审批] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入DispatchConfigApproval Obj")
public R<IPage<DispatchConfigApprovalVO>> page(DispatchConfigApprovalVO dispatchConfigApproval, Query query) {
IPage<DispatchConfigApprovalVO> pagesVO = service.selectDispatchConfigApprovalPage(
Condition.getPage(query), dispatchConfigApproval
);
return R.data(pagesVO);
}
/**
* [分派配置审批] list下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "")
public R<List<DispatchConfigApprovalVO>> listForSelect() {
List<DispatchConfigApproval> list = service.list();
List<DispatchConfigApprovalVO> listVO = DispatchConfigApprovalWrapper.build().listVO(list);
return R.data(listVO);
}
/**
* [分派配置审批] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@ApiLog("新增分派配置审批")
@Operation(summary = "新增一条", description = "传入DispatchConfigApproval Obj")
public R save(@Valid @RequestBody DispatchConfigApproval addOne) {
return service.saveDispatchConfigApproval(addOne);
}
/**
* [分派配置审批] 新增批量
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@ApiLog("新增分派配置审批")
@Operation(summary = "新增批量", description = "传入DispatchConfigApproval List")
public R saveBat(@Valid @RequestBody List<DispatchConfigApproval> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
/**
* [分派配置审批] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@ApiLog("修改分派配置审批")
@Operation(summary = "修改一条", description = "传入DispatchConfigApproval Obj")
public R update(@Valid @RequestBody DispatchConfigApproval updateOne) {
return service.updateDispatchConfigApproval(updateOne);
}
/**
* [分派配置审批] 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 50)
@ApiLog("删除分派配置审批")
@Operation(summary = "删除", description = "传入主键集合")
public R remove(@RequestParam List<Long> ids) {
return service.removeDispatchConfigApproval(ids);
}
/**
* [分派配置审批] 导出
*/
@GetMapping("/export")
@ApiOperationSupport(order = 60)
@ApiLog("导出分派配置审批")
@Operation(summary = "导出", description = "传入DispatchConfigApproval Obj")
public void export(DispatchConfigApproval dispatchConfigApproval, HttpServletResponse response) {
List<DispatchConfigApprovalExcel> list = service.exportDispatchConfigApproval(
DispatchConfigApprovalWrapper.build().entityVO(dispatchConfigApproval)
);
ExcelUtil.export(response, "分派配置审批数据" + DateUtil.time(), "分派配置审批数据表", list, DispatchConfigApprovalExcel.class);
}
/**
* [分派配置审批] 提交审批
*/
@PostMapping("/submitApproval")
@ApiOperationSupport(order = 70)
@ApiLog("提交分派配置审批")
@Operation(summary = "提交审批", description = "传入主键ID")
public R submitApproval(@Parameter(description = "主键ID", required = true) @RequestParam Long id) {
return service.submitApproval(id);
}
/**
* [分派配置审批] 审批待实现
*/
@PostMapping("/audit")
@ApiOperationSupport(order = 80)
@ApiLog("审批分派配置")
@Operation(summary = "审批", description = "审批功能待实现")
public R audit(@Parameter(description = "主键ID", required = true) @RequestParam Long id,
@Parameter(description = "审批结果: 1-通过, 2-驳回", required = true) @RequestParam Integer result,
@Parameter(description = "审批意见") @RequestParam(required = false) String remark) {
return service.audit(id, result, remark);
}
/**
* [分派配置审批] 查询审批历史
*/
@GetMapping("/auditHistory/{id}")
@ApiOperationSupport(order = 90)
@Operation(summary = "查询审批历史", description = "传入主键ID")
public R<DispatchConfigApprovalVO> getAuditHistory(@Parameter(description = "主键ID", required = true) @PathVariable Long id) {
return R.data(service.getAuditHistory(id));
}
}

@ -0,0 +1,40 @@
package org.springblade.desk.quality.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 分派配置审批Excel类
*
* @author AI
* @since 2026-05-19
*/
@Data
public class DispatchConfigApprovalExcel implements Serializable {
private static final long serialVersionUID = 1L;
@ExcelProperty("申请单号")
@ColumnWidth(20)
private String applicationNo;
@ExcelProperty("申请人")
@ColumnWidth(15)
private String applicantName;
@ExcelProperty("申请时间")
@ColumnWidth(20)
private Date applicationTime;
@ExcelProperty("申请描述")
@ColumnWidth(40)
private String remark;
@ExcelProperty("状态")
@ColumnWidth(15)
private String statusName;
}

@ -0,0 +1,14 @@
package org.springblade.desk.quality.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.quality.pojo.entity.DispatchConfigApproval;
/**
* 分派配置审批Mapper接口
*
* @author AI
* @since 2026-05-19
*/
public interface DispatchConfigApprovalMapper extends BaseMapper<DispatchConfigApproval> {
}

@ -0,0 +1,86 @@
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.service.en.EnBaseService;
import org.springblade.desk.quality.excel.DispatchConfigApprovalExcel;
import org.springblade.desk.quality.pojo.entity.DispatchConfigApproval;
import org.springblade.desk.quality.pojo.vo.DispatchConfigApprovalVO;
import java.util.List;
/**
* 分派配置审批服务接口
*
* @author AI
* @since 2026-05-19
*/
public interface IDispatchConfigApprovalService extends EnBaseService<DispatchConfigApproval> {
/**
* 自定义分页查询
*
* @param page 分页参数
* @param entity 查询条件
* @return 分页结果
*/
IPage<DispatchConfigApprovalVO> selectDispatchConfigApprovalPage(IPage<DispatchConfigApproval> page, DispatchConfigApprovalVO entity);
/**
* 导出数据
*
* @param entity 查询条件
* @return Excel数据列表
*/
List<DispatchConfigApprovalExcel> exportDispatchConfigApproval(DispatchConfigApprovalVO entity);
/**
* 新增分派配置审批
*
* @param entity 分派配置审批实体
* @return 操作结果
*/
R saveDispatchConfigApproval(DispatchConfigApproval entity);
/**
* 修改分派配置审批
*
* @param entity 分派配置审批实体
* @return 操作结果
*/
R updateDispatchConfigApproval(DispatchConfigApproval entity);
/**
* 删除分派配置审批
*
* @param ids 主键ID列表
* @return 操作结果
*/
R removeDispatchConfigApproval(List<Long> ids);
/**
* 提交审批
*
* @param id 主键ID
* @return 操作结果
*/
R submitApproval(Long id);
/**
* 审批待实现
*
* @param id 主键ID
* @param result 审批结果: 1-通过, 2-驳回
* @param remark 审批意见
* @return 操作结果
*/
R audit(Long id, Integer result, String remark);
/**
* 查询审批历史
*
* @param id 主键ID
* @return 审批历史信息
*/
DispatchConfigApprovalVO getAuditHistory(Long id);
}

@ -0,0 +1,230 @@
package org.springblade.desk.quality.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl;
import org.springblade.desk.quality.constant.DispatchConfigApprovalConst;
import org.springblade.desk.quality.excel.DispatchConfigApprovalExcel;
import org.springblade.desk.quality.mapper.DispatchConfigApprovalMapper;
import org.springblade.desk.quality.pojo.entity.DispatchConfigApproval;
import org.springblade.desk.quality.pojo.request.DispatchConfigApprovalRequest;
import org.springblade.desk.quality.pojo.vo.DispatchConfigApprovalVO;
import org.springblade.desk.quality.service.IDispatchConfigApprovalService;
import org.springblade.desk.quality.wrapper.DispatchConfigApprovalWrapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 分派配置审批服务实现类
*
* @author AI
* @since 2026-05-19
*/
@Slf4j
@Service
public class DispatchConfigApprovalServiceImpl extends EnBaseServiceImpl<DispatchConfigApprovalMapper, DispatchConfigApproval> implements IDispatchConfigApprovalService {
@Override
public IPage<DispatchConfigApprovalVO> selectDispatchConfigApprovalPage(IPage<DispatchConfigApproval> page, DispatchConfigApprovalVO entity) {
QueryWrapper<DispatchConfigApproval> queryWrapper = new QueryWrapper<>();
// 查询条件
if (entity != null) {
if (StrUtil.isNotBlank(entity.getApplicationNo())) {
queryWrapper.like("APPLICATION_NO", entity.getApplicationNo());
}
if (StrUtil.isNotBlank(entity.getApplicantName())) {
queryWrapper.like("APPLICANT_NAME", entity.getApplicantName());
}
if (entity.getStatus() != null) {
queryWrapper.eq("STATUS", entity.getStatus());
}
}
// 按创建时间降序
queryWrapper.orderByDesc("CREATE_TIME");
IPage<DispatchConfigApproval> pages = baseMapper.selectPage(
page,
queryWrapper
);
return DispatchConfigApprovalWrapper.build().pageVO(pages);
}
@Override
public List<DispatchConfigApprovalExcel> exportDispatchConfigApproval(DispatchConfigApprovalVO entity) {
QueryWrapper<DispatchConfigApproval> queryWrapper = new QueryWrapper<>();
// 查询条件
if (entity != null) {
if (StrUtil.isNotBlank(entity.getApplicationNo())) {
queryWrapper.like("APPLICATION_NO", entity.getApplicationNo());
}
if (StrUtil.isNotBlank(entity.getApplicantName())) {
queryWrapper.like("APPLICANT_NAME", entity.getApplicantName());
}
if (entity.getStatus() != null) {
queryWrapper.eq("STATUS", entity.getStatus());
}
}
queryWrapper.orderByDesc("CREATE_TIME");
List<DispatchConfigApproval> list = list(queryWrapper);
List<DispatchConfigApprovalExcel> excelList = new ArrayList<>();
for (DispatchConfigApproval item : list) {
DispatchConfigApprovalExcel excel = new DispatchConfigApprovalExcel();
BeanUtils.copyProperties(item, excel);
excel.setStatusName(getStatusName(item.getStatus()));
excelList.add(excel);
}
return excelList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public R saveDispatchConfigApproval(DispatchConfigApproval entity) {
// 生成申请单号
String applicationNo = generateApplicationNo();
entity.setApplicationNo(applicationNo);
// 设置申请人信息
entity.setApplicantId(AuthUtil.getUserId());
entity.setApplicantName(AuthUtil.getUserName());
entity.setApplicationTime(new Date());
// 设置初始状态为草稿
entity.setStatus(DispatchConfigApprovalConst.STATUS_DRAFT);
return R.status(save(entity));
}
@Override
@Transactional(rollbackFor = Exception.class)
public R updateDispatchConfigApproval(DispatchConfigApproval entity) {
// 检查是否存在
DispatchConfigApproval existing = getById(entity.getId());
if (existing == null) {
return R.fail("记录不存在");
}
// 只有草稿状态可以修改
if (!DispatchConfigApprovalConst.STATUS_DRAFT.equals(existing.getStatus())) {
return R.fail("只有草稿状态的记录可以修改");
}
return R.status(updateById(entity));
}
@Override
@Transactional(rollbackFor = Exception.class)
public R removeDispatchConfigApproval(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return R.fail("请选择要删除的记录");
}
// 检查状态,只有草稿状态可以删除
for (Long id : ids) {
DispatchConfigApproval entity = getById(id);
if (entity != null && !DispatchConfigApprovalConst.STATUS_DRAFT.equals(entity.getStatus())) {
return R.fail("只有草稿状态的记录可以删除");
}
}
return R.status(removeByIds(ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public R submitApproval(Long id) {
DispatchConfigApproval entity = getById(id);
if (entity == null) {
return R.fail("记录不存在");
}
// 只有草稿状态可以提交审批
if (!DispatchConfigApprovalConst.STATUS_DRAFT.equals(entity.getStatus())) {
return R.fail("只有草稿状态的记录可以提交审批");
}
// 更新状态为审批中
entity.setStatus(DispatchConfigApprovalConst.STATUS_APPROVING);
updateById(entity);
// TODO: 发送消息通知给审批人
return R.success("提交审批成功");
}
@Override
@Transactional(rollbackFor = Exception.class)
public R audit(Long id, Integer result, String remark) {
// TODO: 审批功能逻辑待确认,暂时返回提示信息
return R.fail("审批功能待实现");
}
@Override
public DispatchConfigApprovalVO getAuditHistory(Long id) {
DispatchConfigApproval entity = getById(id);
if (entity == null) {
return null;
}
return DispatchConfigApprovalVO.fromEntity(entity);
}
/**
* 生成申请单号
* 格式YYYYMMDD + 3位序号
*/
private String generateApplicationNo() {
String dateStr = cn.hutool.core.date.DateUtil.format(new Date(), "yyyyMMdd");
// 查询当天最大序号
QueryWrapper<DispatchConfigApproval> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("APPLICATION_NO", dateStr)
.orderByDesc("APPLICATION_NO")
.last("LIMIT 1");
DispatchConfigApproval last = getOne(queryWrapper);
int seq = 1;
if (last != null && StrUtil.isNotBlank(last.getApplicationNo())) {
String lastSeq = last.getApplicationNo().substring(8);
seq = Integer.parseInt(lastSeq) + 1;
}
return dateStr + String.format("%03d", seq);
}
/**
* 获取状态名称
*/
private String getStatusName(Integer status) {
if (status == null) {
return "未知";
}
switch (status) {
case 0:
return "草稿";
case 1:
return "审批中";
case 2:
return "审批通过";
case 3:
return "审批驳回";
case 4:
return "已撤销";
default:
return "未知";
}
}
}

@ -45,6 +45,7 @@ import org.springblade.desk.device.service.IFeiBaSetService;
import org.springblade.desk.device.service.IRackSetService;
import org.springblade.desk.order.mapper.YieldOrderMapper;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.produce.mapper.WorkOrderMapper;
import org.springblade.desk.produce.mapper.WorkPlanMapper;
import org.springblade.desk.produce.pojo.dto.*;
@ -1657,7 +1658,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
return null;
}
//非烧结零件跳过子件验证
if (!yieldOrder.getYieldType().equals(YieldOrder.YIELD_TYPE_2)) {
if (!yieldOrder.getYieldType().equals(YieldOrderEnum.YIELD_TYPE_2.getCode())) {
return null;
}
@ -1881,14 +1882,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
@Override
public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) {
if (yieldType == YieldOrder.YIELD_TYPE_4 || yieldType == YieldOrder.YIELD_TYPE_5) {
if (yieldType == YieldOrderEnum.YIELD_TYPE_4.getCode() || yieldType == YieldOrderEnum.YIELD_TYPE_5.getCode()) {
return this.metalParts(woId);
} else if (yieldType == YieldOrder.YIELD_TYPE_6) { // 石墨模
} else if (yieldType == YieldOrderEnum.YIELD_TYPE_6.getCode()) { // 石墨模
// return this.graphiteMold(woId);
return this.metalParts(woId);
} else if (yieldType == YieldOrder.YIELD_TYPE_3) { // 玻璃饼
} else if (yieldType == YieldOrderEnum.YIELD_TYPE_3.getCode()) { // 玻璃饼
return this.glassCake(woId);
} else if (yieldType == YieldOrder.YIELD_TYPE_2) { // 玻璃封接部件
} else if (yieldType == YieldOrderEnum.YIELD_TYPE_2.getCode()) { // 玻璃封接部件
return this.glassSealing(woId, planList, moduleList);
}

@ -0,0 +1,23 @@
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.desk.quality.pojo.entity.DispatchConfigApproval;
import org.springblade.desk.quality.pojo.vo.DispatchConfigApprovalVO;
/**
* 分派配置审批包装类
*
* @author AI
* @since 2026-05-19
*/
public class DispatchConfigApprovalWrapper extends BaseEntityWrapper<DispatchConfigApproval, DispatchConfigApprovalVO> {
public static DispatchConfigApprovalWrapper build() {
return new DispatchConfigApprovalWrapper();
}
@Override
public DispatchConfigApprovalVO entityVO(DispatchConfigApproval entity) {
return DispatchConfigApprovalVO.fromEntity(entity);
}
}

@ -284,7 +284,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
purtosoList.forEach(mesRbPurtoso -> {
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
yieldOrder.setYpCode(mesRbPurtoso.getWono());
yieldOrder.setYpMemo("物资转车间协作加工");
yieldOrder.setManualIncrease(false);
@ -363,7 +363,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
pacturnrecordList.forEach(mesRbPacturnrecord -> {
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
yieldOrder.setYpMemo("临时工艺转工");
yieldOrder.setManualIncrease(false);
yieldOrder.setYpCode(mesRbPacturnrecord.getWono());
@ -438,7 +438,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
rbtosoList.forEach(mesRbtoso -> {
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_SJ);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_SJ.getCode());
yieldOrder.setYpMemo("烧结转工单");
yieldOrder.setManualIncrease(false);
yieldOrder.setYoCode(mesRbtoso.getSono());//生产单号
@ -507,7 +507,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
wxpromotionList.forEach(mesRbWxpromotion -> {
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
yieldOrder.setYpMemo("推进计划");
yieldOrder.setManualIncrease(false);
yieldOrder.setYoCode(mesRbWxpromotion.getSono());//生产单号
@ -590,7 +590,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
mesRbSodelrecwxList.forEach(mesRbSodelrecwx -> {
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(false);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
yieldOrder.setYpMemo("外协转工单");
yieldOrder.setManualIncrease(false);
yieldOrder.setYoCode(mesRbSodelrecwx.getSono());//生产单号
@ -670,7 +670,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//将查询出的数据放到单个的变量中
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
yieldOrder.setYpMemo("正式工艺转工");
yieldOrder.setManualIncrease(false);
yieldOrder.setYoCode(mesRbSodelreczg.getSono());//生产单号
@ -755,7 +755,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
mesRbPkList.forEach(mesRbPk -> {
YieldOrder yieldOrder=new YieldOrder();
yieldOrder.setSiteWork(true);
yieldOrder.setBusinessType(YieldOrder.BUSINESS_TYPE_RB);
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
yieldOrder.setYpMemo("配套转工单");
yieldOrder.setYoCode(mesRbPk.getWono());//生产单号
yieldOrder.setYpCode(mesRbPk.getWono());

@ -66,4 +66,7 @@ public interface EquipResourceMapper extends BaseMapper<EquipResourceEntity> {
List<EquipResourceEntity> selectCommonCraftList();
boolean deleteByDateTime();
}

@ -55,4 +55,8 @@
AND id > nvl(( SELECT max( id ) FROM MES_EQUIP_RESOURCE WHERE is_used = '1' AND CRAFT_ID = '27' ),0) order by date_time,start_time
</select>
<delete id="deleteByDateTime">
delete from MES_EQUIP_RESOURCE where date_time <![CDATA[ < ]]> to_char(sysdate,'yyyy-MM-dd')
</delete>
</mapper>

@ -63,4 +63,6 @@ public interface PersonResourceMapper extends BaseMapper<PersonResourceEntity> {
List<Map<String,Object>> selectTeamByWorkCenter(@Param("workCenterId") Long workCenterId);
boolean deleteByDateTime();
}

@ -43,4 +43,8 @@
and c.IS_DELETED = 0
and a.work_center_id = #{workCenterId}
</select>
<delete id="deleteByDateTime">
delete from MES_PERSON_RESOURCE where date_time <![CDATA[ < ]]> to_char(sysdate,'yyyy-MM-dd')
</delete>
</mapper>

@ -36,7 +36,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.jackson.JsonUtil;
import org.springblade.scheduling.pojo.entity.EquipAbilityEntity;
@ -58,7 +57,6 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 工艺能力表 服务实现类
@ -107,10 +105,8 @@ public class EquipResourceServiceImpl extends BaseServiceImpl<EquipResourceMappe
}
}
}
//删除3天之前的数据
List<EquipResourceEntity> deleteList = this.list(Wrappers.<EquipResourceEntity>lambdaQuery().le(EquipResourceEntity::getDateTime,DateFormatUtils.format(DateUtils.addDays(date,-3),"yyyy-MM-dd")));
List<Long> idList = deleteList.stream().map(BaseEntity::getId).collect(Collectors.toList());
baseMapper.deleteByIds(idList);
//删除今天之前的数据
baseMapper.deleteByDateTime();
log.info("初始化设备资源结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
}

@ -34,7 +34,6 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.scheduling.pojo.entity.PersonAbilityEntity;
import org.springblade.scheduling.pojo.entity.PersonResourceEntity;
@ -51,7 +50,6 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 工艺能力表 服务实现类
@ -99,9 +97,7 @@ public class PersonResourceServiceImpl extends BaseServiceImpl<PersonResourceMap
}
//删除3天之前的数据
List<PersonResourceEntity> deleteList = this.list(Wrappers.<PersonResourceEntity>lambdaQuery().le(PersonResourceEntity::getDateTime,DateFormatUtils.format(DateUtils.addDays(date,-3),"yyyy-MM-dd")));
List<Long> idList = deleteList.stream().map(BaseEntity::getId).collect(Collectors.toList());
baseMapper.deleteByIds(idList);
baseMapper.deleteByDateTime();
log.info("初始化人力资源结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
}

@ -1382,7 +1382,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
}
}
planMap.put(order.getId(), workPlanList);
if(CollectionUtils.isNotEmpty(workPlanList)){
planMap.put(order.getId(), workPlanList);
}
}
@ -2033,7 +2035,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
.eq(PersonAbilityEntity::getWorkCenterId,craft.getWorkCenterId())
.eq(PersonAbilityEntity::getCraftId,craft.getCaId())
.eq(PersonAbilityEntity::getProcessId,craft.getPpsId()));
personTime = Double.parseDouble(personAbility.getStandardTime()) * qty + personAbility.getPrepareTime().doubleValue();
personTime = Double.parseDouble(personAbility.getStandardTime()) * qty + (personAbility.getPrepareTime() == null ? 0 : personAbility.getPrepareTime().doubleValue());
}
}
return Math.ceil(personTime);

@ -299,7 +299,11 @@
l.id AS slId,
l.location AS location,
g.goods_code AS goodsCode,
g.goods_name AS goodsName,
g.specifications,
g.unit_name AS unitName,
r.pi_no AS piNo,
r.stove_pi_no AS stovePiNo,
r.check_code AS checkCode,
r.quantity AS quantity,
r.create_time AS inDate,

Loading…
Cancel
Save