From 46083a41966c637fbc86938bbeee0b4a1402f607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Mon, 2 Feb 2026 11:05:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=9B=91=E6=8E=A7=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/dto/DeductionPreserveDto.java | 35 +++++ .../produce/pojo/dto/OrderDeclareDto.java | 28 ++++ .../desk/produce/pojo/dto/PlateAroundDto.java | 56 +++++++ .../desk/produce/pojo/dto/SaveDeclareDto.java | 18 +++ .../produce/pojo/dto/SavePlateAroundDto.java | 23 +++ .../produce/pojo/dto/TaskCompleteDTO.java | 48 ++++++ .../desk/produce/pojo/dto/YieldOrderDTO.java | 2 +- .../pojo/entity/DeductionPreserve.java | 45 ++++++ .../desk/produce/pojo/entity/DisTasking.java | 86 +++++++++++ .../produce/pojo/entity/OrderDeclare.java | 59 +++++++ .../pojo/entity/PlateAroundDelLog.java | 32 ++++ .../desk/produce/pojo/entity/WorkOrder.java | 6 +- .../desk/produce/pojo/entity/WorkPlan.java | 6 +- .../desk/produce/pojo/entity/WorkPlanLog.java | 53 +++++++ .../desk/produce/pojo/vo/AfterPlateInVO.java | 22 +++ .../produce/pojo/vo/ByCardNoByPlanVO.java | 50 ++++++ .../produce/pojo/vo/DeductionPreserveVO.java | 63 ++++++++ .../desk/produce/pojo/vo/OrderDeclareVO.java | 61 ++++++++ .../desk/produce/pojo/vo/PlateAroundVO.java | 58 +++++++ .../desk/produce/pojo/vo/TaskCompleteVO.java | 55 +++++++ .../order/service/IYieldOrderService.java | 8 + .../service/impl/YieldOrderServiceImpl.java | 10 ++ .../DeductionPreserveController.java | 96 ++++++++++++ .../controller/DisTaskingController.java | 108 +++++++++++++ .../controller/PlateAroundController.java | 116 ++++++++++++++ .../mapper/DeductionPreserveMapper.java | 20 +++ .../mapper/DeductionPreserveMapper.xml | 43 ++++++ .../desk/produce/mapper/DisTaskingMapper.java | 25 +++ .../desk/produce/mapper/DisTaskingMapper.xml | 74 +++++++++ .../produce/mapper/OrderDeclareMapper.java | 13 ++ .../produce/mapper/OrderDeclareMapper.xml | 5 + .../mapper/PlateAroundDelLogMapper.java | 14 ++ .../produce/mapper/PlateAroundMapper.java | 15 ++ .../desk/produce/mapper/PlateAroundMapper.xml | 115 ++++++++++++++ .../produce/mapper/WorkPlanLogMapper.java | 13 ++ .../service/IDeductionPreserveService.java | 21 +++ .../produce/service/IDisTaskingService.java | 25 +++ .../produce/service/IOrderDeclareService.java | 20 +++ .../service/IPlateAroundDelLogService.java | 13 ++ .../produce/service/IPlateAroundService.java | 22 +++ .../produce/service/IWorkOrderService.java | 2 + .../produce/service/IWorkPlanLogService.java | 13 ++ .../impl/DeductionPreserveServiceImpl.java | 113 ++++++++++++++ .../service/impl/DisTaskingServiceImpl.java | 78 ++++++++++ .../service/impl/OrderDeclareServiceImpl.java | 65 ++++++++ .../impl/PlateAroundDelLogServiceImpl.java | 21 +++ .../service/impl/PlateAroundServiceImpl.java | 146 ++++++++++++++++++ .../service/impl/WorkOrderServiceImpl.java | 56 ++++++- .../service/impl/WorkPlanLogServiceImpl.java | 21 +++ .../service/impl/WorkPlanServiceImpl.java | 4 +- 50 files changed, 2088 insertions(+), 13 deletions(-) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeductionPreserveDto.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/OrderDeclareDto.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/PlateAroundDto.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SaveDeclareDto.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SavePlateAroundDto.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/TaskCompleteDTO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DeductionPreserve.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DisTasking.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/PlateAroundDelLog.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlanLog.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/AfterPlateInVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/DeductionPreserveVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/OrderDeclareVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PlateAroundVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/TaskCompleteVO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DeductionPreserveController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DisTaskingController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PlateAroundController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundDelLogMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanLogMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDeductionPreserveService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDisTaskingService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundDelLogService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanLogService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DeductionPreserveServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DisTaskingServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundDelLogServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanLogServiceImpl.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeductionPreserveDto.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeductionPreserveDto.java new file mode 100644 index 00000000..f2e97fcb --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeductionPreserveDto.java @@ -0,0 +1,35 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 扣数维护 数据传输对象实体类 + * + * @author litao + */ +@Data +public class DeductionPreserveDto { + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "维护人") + private Long userId; + + @Schema(description = "维护时间-开始") + private Date startTime; + + @Schema(description = "维护时间-结束") + private Date endTime; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/OrderDeclareDto.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/OrderDeclareDto.java new file mode 100644 index 00000000..47add62e --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/OrderDeclareDto.java @@ -0,0 +1,28 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 缺件申请记录 数据传输对象实体类 + * + * @author litao + */ +@Data +public class OrderDeclareDto { + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "生产标识") + private String quaLevel; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/PlateAroundDto.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/PlateAroundDto.java new file mode 100644 index 00000000..c30ff7a8 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/PlateAroundDto.java @@ -0,0 +1,56 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 烧结配套齐套流转 数据传输对象实体类 + * + * @author litao + */ +@Data +public class PlateAroundDto { + + @Schema(description = "车间订单id") + private Long woId; + + @Schema(description = "类型:1-镀前入库 2-镀前出库 3-镀后入库") + private Short paType; + + @Schema(description = "单号") + private String paCode; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "入库班组") + private Long tsId; + + @Schema(description = "入库供应商") + private Long ocId; + + @Schema(description = "入库工序号") + private String orders; + + @Schema(description = "入库工序名称") + private Long ppsId; + + @Schema(description = "入库时间") + private Date createTimeStart; + + @Schema(description = "入库时间") + private Date createTimeEnd; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SaveDeclareDto.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SaveDeclareDto.java new file mode 100644 index 00000000..edb5f4e5 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SaveDeclareDto.java @@ -0,0 +1,18 @@ +package org.springblade.desk.produce.pojo.dto; + +import lombok.Data; +import org.springblade.desk.produce.pojo.entity.OrderDeclare; + +import java.util.List; + +/** + * 提交申报数据 数据传输对象实体类 + * + * @author litao + */ +@Data +public class SaveDeclareDto { + + private List orderDeclares; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SavePlateAroundDto.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SavePlateAroundDto.java new file mode 100644 index 00000000..c9841fd1 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SavePlateAroundDto.java @@ -0,0 +1,23 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.desk.produce.pojo.entity.PlateAround; + +import java.util.List; + +/** + * 镀前镀后保存 数据传输对象实体类 + * + * @author litao + */ +@Data +public class SavePlateAroundDto { + + @Schema(description = "镀前镀后") + private List plateArounds; + + @Schema(description = "类型:1-镀前入库 2-镀前出库 3-镀后入库") + private Short paType; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/TaskCompleteDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/TaskCompleteDTO.java new file mode 100644 index 00000000..ea823c6b --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/TaskCompleteDTO.java @@ -0,0 +1,48 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * 调度任务分派 数据传输对象实体类 + * @author litao + */ +@Data +public class TaskCompleteDTO { + + @Schema(description = "id集合") + private List ddtIdList; + + @Schema(description = "审理单号") + private String rsCode; + + @Schema(description = "处理结果") + private String handleResult; + + @Schema(description = "当前登录人") + private Long loginUser; + + private Integer isDefault; + + @Schema(description = "物料号") + private String partCode; + + @Schema(description = "物料名称") + private String partName; + + @Schema(description = "镀种") + private String plate; + + @Schema(description = "版本") + private String version; + + @Schema(description = "更改单号") + private String changeNo; + + @Schema(description = "调度员") + private Long disAssignMan; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java index 98997227..fe563f8b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java @@ -6,7 +6,7 @@ import lombok.Data; import java.util.Date; /** - * 烧结配套齐套流转 数据传输对象实体类 + * 镀前镀后 数据传输对象实体类 * * @author litao */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DeductionPreserve.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DeductionPreserve.java new file mode 100644 index 00000000..3a2f934f --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DeductionPreserve.java @@ -0,0 +1,45 @@ +package org.springblade.desk.produce.pojo.entity; + +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 BladeX + */ +@Data +@TableName("MES_DEDUCTION_PRESERVE") +@Schema(description = "DeductionPreserve对象") +@EqualsAndHashCode(callSuper = true) +public class DeductionPreserve extends BaseEntity { + + @Schema(description = "车间订单id") + private Long woId; + + @Schema(description = "当前工序") + private Long wpId; + + @Schema(description = "数量") + private Double qty; + + @Schema(description = "扣数工序") + private Long deductionProcess; + + @Schema(description = "试验数") + private Double testQty; + + @Schema(description = "报废数") + private Double scrapQty; + + @Schema(description = "损耗数") + private Double lossQty; + + @Schema(description = "备注") + private String memo; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DisTasking.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DisTasking.java new file mode 100644 index 00000000..f506130a --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DisTasking.java @@ -0,0 +1,86 @@ +package org.springblade.desk.produce.pojo.entity; + +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; +import java.util.HashMap; +import java.util.Map; + +/** + * 调度任务分派 实体类 + * + * @author BladeX + */ +@Data +@TableName("MES_DIS_TASKING") +@Schema(description = "DisTasking对象") +@EqualsAndHashCode(callSuper = true) +public class DisTasking extends BaseEntity { + + /** + * 待分派 + */ + public static Integer TASK_STATUS_WAIT = 0; + /** + * 已分派 + */ + public static Integer TASK_STATUS_ALREADY = 1; + /** + * 已处理 + */ + public static Integer TASK_STATUS_COMPLETED = 2; + /** + * 待质量处理 + */ + public static Integer TASK_STATUS_QUALITY = 3; + + + public static Map taskStatusMap = new HashMap<>(); + + static { + taskStatusMap.put(TASK_STATUS_WAIT, "待分派"); + taskStatusMap.put(TASK_STATUS_ALREADY, "已分派"); + taskStatusMap.put(TASK_STATUS_COMPLETED, "已处理"); + taskStatusMap.put(TASK_STATUS_QUALITY, "待处理"); + } + + @Schema(description = "工艺任务分派") + private Long dtId; + + @Schema(description = "调度分派人") + private Long disAssignMan; + + @Schema(description = "调度分派时间") + private Date disAssignTime; + + @Schema(description = "调度处理人") + private Long dispatchMan; + + @Schema(description = "调度处理时间") + private Date dispatchTime; + + @Schema(description = "工艺任务状态") + private Integer disTaskStatus; + + @Schema(description = "工艺任务标记") + private String disOutFlag; + + @Schema(description = "审理单号") + private String rsCode; + + @Schema(description = "处理结果") + private String handleResult; + + @Schema(description = "路线卡号") + private String cardNo; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "备注") + private String memo; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java new file mode 100644 index 00000000..288cafbf --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java @@ -0,0 +1,59 @@ +package org.springblade.desk.produce.pojo.entity; + +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; +import java.util.HashMap; +import java.util.Map; + +/** + * 缺件申请记录 实体类 + * + * @author BladeX + */ +@Data +@TableName("MES_ORDER_DECLARE") +@Schema(description = "OrderDeclare对象") +@EqualsAndHashCode(callSuper = true) +public class OrderDeclare extends BaseEntity { + + @Schema(description = "领用单号") + private String useCode; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "返工单号") + private String reworkCode; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "生产标识") + private String quaLevel; + + @Schema(description = "数量") + private Double quantity; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "保管员") + private String keeper; + + @Schema(description = "计划员") + private String planMan; + + @Schema(description = "状态 1、新建") + private Short podStatus; + + @Schema(description = "库位") + private String locationNo; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/PlateAroundDelLog.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/PlateAroundDelLog.java new file mode 100644 index 00000000..82f57fa1 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/PlateAroundDelLog.java @@ -0,0 +1,32 @@ +package org.springblade.desk.produce.pojo.entity; + +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.io.Serial; +import java.util.Date; + +/** + * 镀后入库删除记录 实体类 + * + * @author BladeX + */ +@Data +@TableName("MES_PLATE_AROUND_DEL_LOG") +@Schema(description = "PlateAroundDelLog对象") +@EqualsAndHashCode(callSuper = true) +public class PlateAroundDelLog extends BaseEntity { + + @Schema(description = "作业计划") + private Long wpId; + + @Schema(description = "车间订单编码") + private String woCode; + + @Schema(description = "删除的数据") + private String aroundData; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java index 2151746f..50bca402 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java @@ -170,12 +170,12 @@ public class WorkOrder extends BaseEntity { * 试验数量 */ @Schema(description = "试验数量") - private Integer testQty; + private Double testQty; /** * 损耗数量 */ @Schema(description = "损耗数量") - private Integer lossQty; + private Double lossQty; /** * 镀层单件定额 */ @@ -335,7 +335,7 @@ public class WorkOrder extends BaseEntity { * 报废数量 */ @Schema(description = "报废数量") - private Integer scrapQty; + private Double scrapQty; /** * 外协订单发送状态 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java index f6b63c8f..bd061a72 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -114,7 +114,7 @@ public class WorkPlan extends BaseEntity { * 试验数量 */ @Schema(description = "试验数量") - private Integer testQty; + private Double testQty; /** * 合格数量 */ @@ -124,7 +124,7 @@ public class WorkPlan extends BaseEntity { * 报废数量 */ @Schema(description = "报废数量") - private Integer scrapQty; + private Double scrapQty; /** * 不合格数量 */ @@ -189,7 +189,7 @@ public class WorkPlan extends BaseEntity { * 消耗数量 */ @Schema(description = "消耗数量") - private Short lossQty; + private Double lossQty; /** * 金额 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlanLog.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlanLog.java new file mode 100644 index 00000000..43e5425f --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlanLog.java @@ -0,0 +1,53 @@ +package org.springblade.desk.produce.pojo.entity; + +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; + +/** + * 车间作业计划修改日志 实体类 + * + * @author BladeX + */ +@Data +@TableName("MES_WORK_PLAN_LOG") +@Schema(description = "WorkPlanLog对象") +@EqualsAndHashCode(callSuper = true) +public class WorkPlanLog extends BaseEntity { + + @Schema(description = "车间订单") + private Long woId; + + @Schema(description = "订单编号") + private String woCode; + + @Schema(description = "路线卡号") + private String cardNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "批次") + private String batchNo; + + @Schema(description = "工序") + private String ppsName; + + @Schema(description = "数量") + private Double workQty; + + @Schema(description = "原班组") + private String oriMakeTeam; + + @Schema(description = "现班组") + private String makeTeam; + + @Schema(description = "原接收人") + private String oriReceiveMan; + + @Schema(description = "现接收人") + private String receiveMan; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/AfterPlateInVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/AfterPlateInVO.java new file mode 100644 index 00000000..0cc992c7 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/AfterPlateInVO.java @@ -0,0 +1,22 @@ +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.WorkPlan; + +import java.util.Date; + +/** + * 镀前镀后 视图实体类 + * + * @author litao + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AfterPlateInVO extends WorkPlan { + + @Schema(description = "0-转工 1-入库") + private Integer hrTypeBool; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java new file mode 100644 index 00000000..72a6357b --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java @@ -0,0 +1,50 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 报工调整列表 视图实体类 + * + * @author litao + */ +@Data +public class ByCardNoByPlanVO { + + @Schema(description = "工序id") + private Long wpId; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "当前工序") + private String ppsName; + + @Schema(description = "数量") + private Double workQty; + + @Schema(description = "班组id") + private Long tsId; + + @Schema(description = "班组名称") + private String tsName; + + @Schema(description = "接收人id") + private Long userId; + + @Schema(description = "接收人名称") + private String userName; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/DeductionPreserveVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/DeductionPreserveVO.java new file mode 100644 index 00000000..af869283 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/DeductionPreserveVO.java @@ -0,0 +1,63 @@ +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.WorkPlan; + +import java.util.Date; + +/** + * 扣数维护 视图实体类 + * + * @author litao + */ +@Data +public class DeductionPreserveVO { + + @Schema(description = "车间订单id") + private Long woId; + + @Schema(description = "当前工序") + private Long wpId; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "当前工序") + private Long ppsId; + + @Schema(description = "当前工序") + private String ppsName; + + @Schema(description = "数量") + private Double qty; + + @Schema(description = "试验数") + private Double testQty; + + @Schema(description = "报废数") + private Double scrapQty; + + @Schema(description = "损耗数") + private Double lossQty; + + @Schema(description = "备注") + private String memo; + + @Schema(description = "维护时间") + private Date maintenanceTime; + + @Schema(description = "维护人") + private Long maintenance; + + @Schema(description = "维护人") + private String maintenanceName; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/OrderDeclareVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/OrderDeclareVO.java new file mode 100644 index 00000000..30d1070d --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/OrderDeclareVO.java @@ -0,0 +1,61 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 缺件申请记录 视图实体类 + * + * @author litao + */ +@Data +public class OrderDeclareVO { + + @Schema(description = "车间订单id") + private Long woId; + + @Schema(description = "当前工序") + private Long wpId; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "当前工序") + private Long ppsId; + + @Schema(description = "当前工序") + private String ppsName; + + @Schema(description = "数量") + private Double qty; + + @Schema(description = "试验数") + private Double testQty; + + @Schema(description = "报废数") + private Double scrapQty; + + @Schema(description = "损耗数") + private Double lossQty; + + @Schema(description = "备注") + private String memo; + + @Schema(description = "维护时间") + private Date maintenanceTime; + + @Schema(description = "维护人") + private Long maintenance; + + @Schema(description = "维护人") + private String maintenanceName; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PlateAroundVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PlateAroundVO.java new file mode 100644 index 00000000..2793d6e4 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PlateAroundVO.java @@ -0,0 +1,58 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 镀前镀后 视图实体类 + * + * @author litao + */ +@Data +public class PlateAroundVO { + + @Schema(description = "车间订单id") + private Long woId; + + @Schema(description = "单号") + private String paCode; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "零件名称") + private String partName; + + @Schema(description = "入库数量") + private Double quantity; + + @Schema(description = "入库班组") + private Long tsId; + + @Schema(description = "入库供应商") + private Long ocId; + + @Schema(description = "入库工序号") + private String orders; + + @Schema(description = "入库工序名称") + private Long ppsId; + + @Schema(description = "入库人员") + private Long createUser; + + @Schema(description = "入库时间") + private Date createTime; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/TaskCompleteVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/TaskCompleteVO.java new file mode 100644 index 00000000..7035f8fa --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/TaskCompleteVO.java @@ -0,0 +1,55 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 调度任务分派 视图实体类 + * + * @author litao + */ +@Data +public class TaskCompleteVO { + + @Schema(description = "调度任务id") + private Long id; + + @Schema(description = "物料号") + private String partCode; + + @Schema(description = "物料名称") + private String partName; + + @Schema(description = "镀种") + private String plate; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "版本") + private String version; + + @Schema(description = "PDM发布时间") + private Date pdmCreateTime; + + @Schema(description = "工艺路线详情") + private String wayDetails; + + @Schema(description = "在制品意见") + private String wipTake; + + @Schema(description = "更改单号") + private String changeNo; + + @Schema(description = "完成时间") + private Date craftTime; + + @Schema(description = "任务时间") + private Date taskTime; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java index 9e4395ef..16ba4f68 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java @@ -197,4 +197,12 @@ public interface IYieldOrderService extends BaseService { String getMaxCardNo(); + /** + *

方法名: getNewCardNo

+ *

方法描述: 通过旧路线卡号去erp获取新的

+ * + * @param cardNo 旧单号 + * @return java.lang.String + */ + String getNewCardNo(String cardNo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index ef0060ed..c21e3ed2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -695,6 +695,16 @@ public class YieldOrderServiceImpl extends BaseServiceImpl> queryData(DeductionPreserveDto deductionPreserve, Query query) { + return R.data(deductionPreserveService.queryData(Condition.getPage(query), deductionPreserve)); + } + + @GetMapping("/orderDeclarePage") + @ApiOperationSupport(order = 4) + @Operation(summary = "缺件申请列表", description = "") + public R> orderDeclarePage(OrderDeclareDto orderDeclareDto, Query query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(OrderDeclare.class); +// wrapper.eq(OrderDeclare::getCreateUser, AuthUtil.getUserId()); + wrapper.like(orderDeclareDto.getWoCode() != null, OrderDeclare::getWoCode, orderDeclareDto.getWoCode()); + wrapper.like(orderDeclareDto.getPartCode() != null, OrderDeclare::getPartCode, orderDeclareDto.getPartCode()); + wrapper.like(orderDeclareDto.getBatchNo() != null, OrderDeclare::getBatchNo, orderDeclareDto.getBatchNo()); + wrapper.like(orderDeclareDto.getQuaLevel() != null, OrderDeclare::getQuaLevel, orderDeclareDto.getQuaLevel()); + return R.data(orderDeclareService.page(Condition.getPage(query), wrapper)); + } + + @PostMapping("/signDelete") + @ApiOperationSupport(order = 5) + @Operation(summary = "删除提交的缺件申报数据", description = "id") + public R signDelete(@RequestParam Long id) { + return R.data(orderDeclareService.signDelete(id)); + } + + @GetMapping("/queryBatch") + @ApiOperationSupport(order = 6) + @Operation(summary = "缺件申报-通过零件号获取批次号", description = "") + public R queryBatch(String partCode) { + return R.data(orderDeclareService.queryBatch(partCode)); + } + + @PostMapping("/saveDeclare") + @ApiOperationSupport(order = 7) + @Operation(summary = "缺件申报-提交申报数据", description = "id") + public R saveDeclare(@RequestBody SaveDeclareDto saveDeclareDto) { + return R.data(orderDeclareService.saveDeclare(saveDeclareDto)); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DisTaskingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DisTaskingController.java new file mode 100644 index 00000000..ef27ce8b --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DisTaskingController.java @@ -0,0 +1,108 @@ +package org.springblade.desk.produce.controller; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO; +import org.springblade.desk.produce.pojo.entity.DisTasking; +import org.springblade.desk.produce.pojo.entity.MakeRec; +import org.springblade.desk.produce.pojo.entity.WorkPlanLog; +import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO; +import org.springblade.desk.produce.pojo.vo.TaskCompleteVO; +import org.springblade.desk.produce.service.IDisTaskingService; +import org.springblade.desk.produce.service.IWorkPlanLogService; +import org.springblade.job.pojo.entity.JobInfo; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + * 调度任务分派 + * + * @author litao + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/disTasking") +@Tag(name = "调度任务分派", description = "接口") +public class DisTaskingController extends BladeController { + + private final IDisTaskingService disTaskingService; + + private final IWorkPlanLogService workPlanLogService; + + @GetMapping("/disTaskHandle") + @ApiOperationSupport(order = 1) + @Operation(summary = "调度任务分派", description = "传入taskCompleteDTO") + public R> disTaskHandle(TaskCompleteDTO taskCompleteDTO, Query query) { + if (CommonUtil.isAllFieldsEmpty(taskCompleteDTO)) { + taskCompleteDTO.setIsDefault(1); + } + taskCompleteDTO.setLoginUser(AuthUtil.getUserId()); + IPage pages = disTaskingService.disTaskHandle(Condition.getPage(query), taskCompleteDTO); + return R.data(pages); + } + + @PostMapping("/taskComplete") + @ApiOperationSupport(order = 2) + @Operation(summary = "任务完成", description = "传入taskCompleteDTO") + public R taskComplete(@RequestBody TaskCompleteDTO taskCompleteDTO) { + List ddtIdList = taskCompleteDTO.getDdtIdList(); + String rsCode = taskCompleteDTO.getRsCode(); + String handleResult = taskCompleteDTO.getHandleResult(); + if (CollectionUtils.isEmpty(ddtIdList) || StringUtils.isBlank(rsCode) || StringUtils.isBlank(handleResult)) { + return R.fail("参数错误"); + } + List disTaskings = disTaskingService.list(Wrappers.lambdaQuery(DisTasking.class).in(DisTasking::getId, ddtIdList)); + disTaskings.forEach(disTasking -> { + disTasking.setDispatchTime(new Date()); + disTasking.setRsCode(rsCode); + disTasking.setHandleResult(handleResult); + disTasking.setDisTaskStatus(DisTasking.TASK_STATUS_COMPLETED); + }); + return R.data(disTaskingService.updateBatchById(disTaskings)); + } + + @GetMapping("/getByCardNoByPlan") + @ApiOperationSupport(order = 3) + @Operation(summary = "报工调整列表", description = "传入cardNo") + public R getByCardNoByPlan(String cardNo) { + if (StringUtils.isBlank(cardNo)) { + return R.fail("流程卡号为空"); + } + List list = disTaskingService.getByCardNoByPlan(cardNo); + return R.data(list); + } + + @GetMapping("/queryByWpIdlLst") + @ApiOperationSupport(order = 4) + @Operation(summary = "报工调整详情", description = "传入wpId") + public R queryByWpIdlLst(Long wpId) { + if (wpId == null) { + return R.fail("参数为空"); + } + List list = disTaskingService.queryByWpIdlLst(wpId); + return R.data(list); + } + + @GetMapping("/workPlanLogPage") + @ApiOperationSupport(order = 5) + @Operation(summary = "车间作业计划修改日志", description = "workPlanLog") + public R> workPlanLogPage(WorkPlanLog workPlanLog, Query query) { + return R.data(workPlanLogService.page(Condition.getPage(query), Wrappers.lambdaQuery(workPlanLog))); + } + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PlateAroundController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PlateAroundController.java new file mode 100644 index 00000000..ee426dbf --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PlateAroundController.java @@ -0,0 +1,116 @@ +package org.springblade.desk.produce.controller; + +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.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.desk.order.pojo.entity.YieldOrder; +import org.springblade.desk.order.service.IYieldOrderService; +import org.springblade.desk.produce.pojo.dto.PlateAroundDto; +import org.springblade.desk.produce.pojo.dto.SavePlateAroundDto; +import org.springblade.desk.produce.pojo.entity.PlateAround; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.AfterPlateInVO; +import org.springblade.desk.produce.pojo.vo.PlateAroundVO; +import org.springblade.desk.produce.service.IPlateAroundService; +import org.springblade.desk.produce.service.IWorkOrderService; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * 镀前镀后管理 + * + * @author litao + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/plateAround") +@Tag(name = "镀前镀后", description = "接口") +public class PlateAroundController extends BladeController { + + private final IPlateAroundService plateAroundService; + + @GetMapping("/queryPlateAround") + @ApiOperationSupport(order = 1) + @Operation(summary = "镀前镀后列表(通用)", description = "传入PlateAroundDto") + public R> queryByReadStatus(PlateAroundDto plateAroundDto, Query query) { + if (plateAroundDto.getPaType() == null) { + throw new ServiceException("请选择类型"); + } + IPage pages = plateAroundService.queryByReadStatus(Condition.getPage(query), plateAroundDto); + return R.data(pages); + } + + @GetMapping("/getBeforePlatInCardNo") + @ApiOperationSupport(order = 2) + @Operation(summary = "扫描流程卡获取镀前入库数据", description = "传入cardNo") + public R getBeforePlatInCardNo(String cardNo) { + // todo 获取当前登录人班组 + List tsIds = new ArrayList<>(); + // 获取镀前入库数据 + WorkPlan wp = plateAroundService.getBeforePlatInCardNo(cardNo, tsIds); + if (wp != null) { + if (!wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { + throw new ServiceException("工序未报工完成,不能进行镀前入库!"); + } + } else { + throw new ServiceException("未找到镀前入库工序,无法入库!"); + } + return R.data(wp); + } + + @GetMapping("/getBeforePlatOutCardNo") + @ApiOperationSupport(order = 3) + @Operation(summary = "扫描流程卡获取镀前出库数据", description = "传入cardNo") + public R getBeforePlatOutCardNo(String cardNo) { + // todo 获取当前登录人班组 + List tsIds = new ArrayList<>(); + PlateAround plateAround = plateAroundService.getBeforePlatOutCardNo(cardNo, tsIds); + if (plateAround == null) { + throw new ServiceException("未找到镀前出库工序,无法出库!"); + } + return R.data(plateAround); + } + + @GetMapping("/getAfterPlatInCardNo") + @ApiOperationSupport(order = 4) + @Operation(summary = "扫描流程卡获取镀后数据", description = "传入cardNo") + public R getAfterPlatInCardNo(String cardNo) { + // todo 获取当前登录人班组 + List tsIds = new ArrayList<>(); + return R.data(plateAroundService.getAfterPlatInCardNo(cardNo, tsIds)); + } + + @PostMapping(value = "/savePlateAround") + @ApiOperationSupport(order = 5) + @Operation(summary = "镀前镀后保存", description = "") + public R savePlateAround(@RequestBody SavePlateAroundDto plateAroundDto) { + return R.data(plateAroundService.savePlateAround(plateAroundDto)); + } + + @PostMapping(value = "/deleteById") + @ApiOperationSupport(order = 6) + @Operation(summary = "删除镀后入库", description = "") + public R deleteById(@RequestParam Long id) { + return R.data(plateAroundService.deletePlateAround(id)); + } + + @GetMapping("/queryDelLogRecord") + @ApiOperationSupport(order = 7) + @Operation(summary = "加载镀后入库记录", description = "传入cardNo") + public R queryDelLogRecord(PlateAroundDto plateAroundDto, Query query) { + return R.data(plateAroundService.queryDelLogRecord(Condition.getPage(query), plateAroundDto)); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.java new file mode 100644 index 00000000..2bea33ce --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.java @@ -0,0 +1,20 @@ +package org.springblade.desk.produce.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.produce.pojo.dto.DeductionPreserveDto; +import org.springblade.desk.produce.pojo.entity.DeductionPreserve; +import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO; + +import java.util.List; + +/** + * 扣数维护 Mapper 接口 + * + * @author BladeX + */ +public interface DeductionPreserveMapper extends BaseMapper { + + List queryData(IPage page, DeductionPreserveDto query); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.xml new file mode 100644 index 00000000..606c9161 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.xml @@ -0,0 +1,43 @@ + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.java new file mode 100644 index 00000000..d554d357 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.java @@ -0,0 +1,25 @@ +package org.springblade.desk.produce.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO; +import org.springblade.desk.produce.pojo.entity.DisTasking; +import org.springblade.desk.produce.pojo.entity.MakeRec; +import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO; +import org.springblade.desk.produce.pojo.vo.TaskCompleteVO; + +import java.util.List; + +/** + * 调度任务分派 Mapper 接口 + * + * @author BladeX + */ +public interface DisTaskingMapper extends BaseMapper { + + List disTaskHandle(IPage page, TaskCompleteDTO query); + + List getByCardNoByPlan(Long id); + + List queryByWpIdlLst(Long wpId); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.xml new file mode 100644 index 00000000..6f902482 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.java new file mode 100644 index 00000000..42275924 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.java @@ -0,0 +1,13 @@ +package org.springblade.desk.produce.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.produce.pojo.entity.OrderDeclare; + +/** + * 缺件申请记录 Mapper 接口 + * + * @author BladeX + */ +public interface OrderDeclareMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.xml new file mode 100644 index 00000000..af594070 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundDelLogMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundDelLogMapper.java new file mode 100644 index 00000000..038769f9 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundDelLogMapper.java @@ -0,0 +1,14 @@ +package org.springblade.desk.produce.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog; + +/** + * 镀后入库删除记录 Mapper 接口 + * + * @author BladeX + */ +public interface PlateAroundDelLogMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.java index 75735dbb..b3ed7906 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.java @@ -1,7 +1,13 @@ package org.springblade.desk.produce.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.produce.pojo.dto.PlateAroundDto; import org.springblade.desk.produce.pojo.entity.PlateAround; +import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.PlateAroundVO; + +import java.util.List; /** * 镀前镀后 Mapper 接口 @@ -10,4 +16,13 @@ import org.springblade.desk.produce.pojo.entity.PlateAround; */ public interface PlateAroundMapper extends BaseMapper { + List queryByReadStatus(IPage page, PlateAroundDto query); + + WorkPlan getBeforePlatInCardNo(Long id, List tsIds, Long userId); + + PlateAround getBeforePlatOutCardNo(Long id, List tsIds, Long userId); + + WorkPlan getAfterPlatInCardNo(Long id, List tsIds); + + List listByWoCardNo(String cardNo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.xml new file mode 100644 index 00000000..e4f9747a --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanLogMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanLogMapper.java new file mode 100644 index 00000000..c68bdf53 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanLogMapper.java @@ -0,0 +1,13 @@ +package org.springblade.desk.produce.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.produce.pojo.entity.WorkPlanLog; + +/** + * 车间作业计划修改日志 Mapper 接口 + * + * @author BladeX + */ +public interface WorkPlanLogMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDeductionPreserveService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDeductionPreserveService.java new file mode 100644 index 00000000..49a965a7 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDeductionPreserveService.java @@ -0,0 +1,21 @@ +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.DeductionPreserveDto; +import org.springblade.desk.produce.pojo.entity.DeductionPreserve; +import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO; + +/** + * 扣数维护 服务类 + * + * @author BladeX + */ +public interface IDeductionPreserveService extends BaseService { + + DeductionPreserveVO workOrderByCardNo(String cardNo); + + boolean savaData(DeductionPreserve deductionPreserve); + + IPage queryData(IPage page, DeductionPreserveDto deductionPreserve); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDisTaskingService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDisTaskingService.java new file mode 100644 index 00000000..2fa7e0e8 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDisTaskingService.java @@ -0,0 +1,25 @@ +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.TaskCompleteDTO; +import org.springblade.desk.produce.pojo.entity.DisTasking; +import org.springblade.desk.produce.pojo.entity.MakeRec; +import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO; +import org.springblade.desk.produce.pojo.vo.TaskCompleteVO; + +import java.util.List; + +/** + * 调度任务分派 服务类 + * + * @author BladeX + */ +public interface IDisTaskingService extends BaseService { + + IPage disTaskHandle(IPage page, TaskCompleteDTO taskCompleteDTO); + + List getByCardNoByPlan(String cardNo); + + List queryByWpIdlLst(Long wpId); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java new file mode 100644 index 00000000..682fef26 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java @@ -0,0 +1,20 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.dto.SaveDeclareDto; +import org.springblade.desk.produce.pojo.entity.OrderDeclare; +import org.springblade.erpdata.pojo.vo.QueryBatchVO; + +/** + * 缺件申请记录 服务类 + * + * @author BladeX + */ +public interface IOrderDeclareService extends BaseService { + + boolean signDelete(Long id); + + QueryBatchVO queryBatch(String partCode); + + boolean saveDeclare(SaveDeclareDto saveDeclareDto); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundDelLogService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundDelLogService.java new file mode 100644 index 00000000..a15c09f6 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundDelLogService.java @@ -0,0 +1,13 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog; + +/** + * 镀后入库删除记录 服务类 + * + * @author BladeX + */ +public interface IPlateAroundDelLogService extends BaseService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java index e5b6e247..405d0f7a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java @@ -1,7 +1,16 @@ 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.PlateAroundDto; +import org.springblade.desk.produce.pojo.dto.SavePlateAroundDto; import org.springblade.desk.produce.pojo.entity.PlateAround; +import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog; +import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.AfterPlateInVO; +import org.springblade.desk.produce.pojo.vo.PlateAroundVO; + +import java.util.List; /** * 镀前镀后 服务类 @@ -11,4 +20,17 @@ import org.springblade.desk.produce.pojo.entity.PlateAround; public interface IPlateAroundService extends BaseService { + IPage queryByReadStatus(IPage page, PlateAroundDto query); + + WorkPlan getBeforePlatInCardNo(String cardNo, List tsIds); + + PlateAround getBeforePlatOutCardNo(String cardNo, List tsIds); + + AfterPlateInVO getAfterPlatInCardNo(String cardNo, List tsIds); + + boolean savePlateAround(SavePlateAroundDto plateAroundDto); + + boolean deletePlateAround(Long id); + + IPage queryDelLogRecord(IPage page, PlateAroundDto plateAroundDto); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index f27a6098..aa3d3d9c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -53,4 +53,6 @@ public interface IWorkOrderService extends BaseService { IPage queryByReadStatusPage(IPage page, QueryByReadStatusDTO queryByReadStatusDTO); boolean setReadStatus(String woIds); + + WorkOrder getWorkOrderByCardNo(String cardNo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanLogService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanLogService.java new file mode 100644 index 00000000..5948e79d --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanLogService.java @@ -0,0 +1,13 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.WorkPlanLog; + +/** + * 车间作业计划修改日志 服务类 + * + * @author BladeX + */ +public interface IWorkPlanLogService extends BaseService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DeductionPreserveServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DeductionPreserveServiceImpl.java new file mode 100644 index 00000000..39d45361 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DeductionPreserveServiceImpl.java @@ -0,0 +1,113 @@ +package org.springblade.desk.produce.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; +import org.springblade.desk.dashboard.service.IBsProcessSetService; +import org.springblade.desk.produce.mapper.DeductionPreserveMapper; +import org.springblade.desk.produce.pojo.dto.DeductionPreserveDto; +import org.springblade.desk.produce.pojo.entity.DeductionPreserve; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO; +import org.springblade.desk.produce.service.IDeductionPreserveService; +import org.springblade.desk.produce.service.IWorkOrderService; +import org.springblade.desk.produce.service.IWorkPlanService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 扣数维护 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class DeductionPreserveServiceImpl extends BaseServiceImpl implements IDeductionPreserveService { + + private final IWorkOrderService workOrderService; + + private final IWorkPlanService workPlanService; + + private final IBsProcessSetService bsProcessSetService; + + @Override + public DeductionPreserveVO workOrderByCardNo(String cardNo) { + WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(cardNo); + if (workOrder != null) { + WorkPlan workPlan = workPlanService.getById(workOrder.getWpId()); + if (workPlan != null && workPlan.getNextWpId() == null) { + throw new ServiceException("当前工序不是镀后接收,暂时无法进行维护"); + } + DeductionPreserveVO preserveVO = new DeductionPreserveVO(); + preserveVO.setWoId(workOrder.getId()); + preserveVO.setWpId(workOrder.getWpId()); + preserveVO.setWoCode(workOrder.getWoCode()); + preserveVO.setPartCode(workOrder.getPartCode()); + preserveVO.setBatchNo(workOrder.getBatchNo()); + if (workPlan != null) { + preserveVO.setPpsId(workPlan.getPpsId()); + BsProcessSetEntity processSet = bsProcessSetService.getById(workPlan.getPpsId()); + preserveVO.setPpsName(processSet != null ? processSet.getName() : ""); + } + preserveVO.setQty(workOrder.getMakeQty()); + preserveVO.setTestQty(workOrder.getTestQty()); + preserveVO.setScrapQty(workOrder.getScrapQty()); + preserveVO.setLossQty(workOrder.getLossQty()); + return preserveVO; + } + return null; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean savaData(DeductionPreserve deductionPreserve) { + Long woId = deductionPreserve.getWoId(); + if (woId == null) { + return false; + } + WorkOrder workOrder = workOrderService.getById(woId); + List prWorkPlanList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, woId)); + // prWorkPlanList根据workOrder的wpId过滤出一条数据 + WorkPlan prWorkPlan = prWorkPlanList.stream().filter(workPlan -> workPlan.getId().equals(workOrder.getWpId())).findFirst().orElse(null); + if (prWorkPlan == null) { + return false; + } + Double testQty = deductionPreserve.getTestQty() != null ? deductionPreserve.getTestQty() : 0; + Double scrapQty = deductionPreserve.getScrapQty() != null ? deductionPreserve.getScrapQty() : 0; + Double lossQty = deductionPreserve.getLossQty() != null ? deductionPreserve.getLossQty() : 0; + prWorkPlan.setTestQty(testQty); + prWorkPlan.setScrapQty(scrapQty); + prWorkPlan.setLossQty(lossQty); + // 如果当前序是镀后接收 + prWorkPlan.setQualifiedQty(prWorkPlan.getQualifiedQty() - testQty - scrapQty - lossQty); + workPlanService.updateById(prWorkPlan); + + // 新增扣数维护记录 + deductionPreserve.setWpId(prWorkPlan.getId()); + deductionPreserve.setDeductionProcess(prWorkPlan.getId()); + deductionPreserve.setQty(workOrder.getMakeQty()); + this.save(deductionPreserve); + + // 更新车间订单 + workOrder.setLossQty(workOrder.getLossQty()+lossQty); + workOrder.setScrapQty(workOrder.getScrapQty()+scrapQty); + workOrder.setTestQty(workOrder.getTestQty()+testQty); + workOrder.setMakeQty(workOrder.getMakeQty()-lossQty-scrapQty-testQty); + log.info("车间订单:{}, 扣除测试数量:{}", workOrder.getWoCode(), workOrder.getTestQty()); + return workOrderService.updateById(workOrder); + } + + @Override + public IPage queryData(IPage page, DeductionPreserveDto deductionPreserve) { + return page.setRecords(baseMapper.queryData(page, deductionPreserve)); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DisTaskingServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DisTaskingServiceImpl.java new file mode 100644 index 00000000..2aa579b7 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DisTaskingServiceImpl.java @@ -0,0 +1,78 @@ +package org.springblade.desk.produce.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.produce.mapper.DisTaskingMapper; +import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO; +import org.springblade.desk.produce.pojo.entity.DisTasking; +import org.springblade.desk.produce.pojo.entity.MakeRec; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.entity.WorkOrderRun; +import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO; +import org.springblade.desk.produce.pojo.vo.TaskCompleteVO; +import org.springblade.desk.produce.service.IDisTaskingService; +import org.springblade.desk.produce.service.IWorkOrderRunService; +import org.springblade.desk.produce.service.IWorkOrderService; +import org.springblade.system.cache.UserCache; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 调度任务分派 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class DisTaskingServiceImpl extends BaseServiceImpl implements IDisTaskingService { + + private final IWorkOrderService workOrderService; + + private final IWorkOrderRunService workOrderRunService; + + private IUserClient userClient; + + @Override + public IPage disTaskHandle(IPage page, TaskCompleteDTO taskCompleteDTO) { + return page.setRecords(baseMapper.disTaskHandle(page, taskCompleteDTO)); + } + + @Override + public List getByCardNoByPlan(String cardNo) { + WorkOrder workOrder = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getCardNo, cardNo)); + if (workOrder == null) { + throw new ServiceException("车间订单不存在!"); + } + String oem = workOrder.getOem(); + if ("1".equals(oem)) { + WorkOrderRun workOrderRun = workOrderRunService.getById(workOrder.getWorId()); + if (!(WorkOrderRun.RUN_STATUS_DELIVERED.equals(workOrderRun.getRunStatus()) + || WorkOrderRun.RUN_STATUS_COMPLETED.equals(workOrderRun.getRunStatus()) + || WorkOrderRun.RUN_STATUS_VOIDED.equals(workOrderRun.getRunStatus()))) { + throw new ServiceException("外协订单不允许修改!"); + } + } + List byCardNoByPlan = baseMapper.getByCardNoByPlan(workOrder.getId()); + for (ByCardNoByPlanVO byCardNoByPlanVO : byCardNoByPlan) { + User user = UserCache.getUser(byCardNoByPlanVO.getUserId()); + if (user != null) { + byCardNoByPlanVO.setUserName(user.getName()); + } + } + return byCardNoByPlan; + } + + @Override + public List queryByWpIdlLst(Long wpId) { + return baseMapper.queryByWpIdlLst(wpId); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java new file mode 100644 index 00000000..76deef9b --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java @@ -0,0 +1,65 @@ +package org.springblade.desk.produce.service.impl; + +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.tool.api.R; +import org.springblade.desk.produce.mapper.OrderDeclareMapper; +import org.springblade.desk.produce.pojo.dto.SaveDeclareDto; +import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.service.IOrderDeclareService; +import org.springblade.erpdata.feign.IErpDataProduceClient; +import org.springblade.erpdata.pojo.vo.QueryBatchVO; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * 缺件申请记录 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class OrderDeclareServiceImpl extends BaseServiceImpl implements IOrderDeclareService { + + private final IErpDataProduceClient erpDataProduceClient; + + @Override + public boolean signDelete(Long id) { + OrderDeclare orderDeclare = this.getById(id); + if (orderDeclare == null) { + return false; + } + // todo 调用erp,删除提交的数据 +// this.signDeleteErp(orderDeclare.getUseCode()); + // 删除本地提交记录 + return this.removeById(id); + } + + @Override + public QueryBatchVO queryBatch(String partCode) { + if (StringUtils.isBlank(partCode)) { + throw new ServiceException("请输入零件号!"); + } + return erpDataProduceClient.queryBatch(partCode).getData(); + } + + @Override + public boolean saveDeclare(SaveDeclareDto saveDeclareDto) { + List orderDeclares = saveDeclareDto.getOrderDeclares(); + if (CollectionUtils.isEmpty(orderDeclares)) { + return false; + } + for (OrderDeclare orderDeclare : orderDeclares) { + // 调用erp,提交申请,获取领用单号 +// String code = prWorkOrderDao.saveDeclare(jsonObject, curUserInfo); + orderDeclare.setUseCode("code"); + } + return this.saveBatch(orderDeclares); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundDelLogServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundDelLogServiceImpl.java new file mode 100644 index 00000000..1cbdcff8 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundDelLogServiceImpl.java @@ -0,0 +1,21 @@ +package org.springblade.desk.produce.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.produce.mapper.PlateAroundDelLogMapper; +import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog; +import org.springblade.desk.produce.service.IPlateAroundDelLogService; +import org.springframework.stereotype.Service; + +/** + * 镀后入库删除记录 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class PlateAroundDelLogServiceImpl extends BaseServiceImpl implements IPlateAroundDelLogService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundServiceImpl.java index 846f0729..02b9484d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundServiceImpl.java @@ -1,12 +1,37 @@ package org.springblade.desk.produce.service.impl; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.desk.order.pojo.entity.YieldOrder; +import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.produce.mapper.PlateAroundMapper; +import org.springblade.desk.produce.pojo.dto.PlateAroundDto; +import org.springblade.desk.produce.pojo.dto.SavePlateAroundDto; import org.springblade.desk.produce.pojo.entity.PlateAround; +import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.AfterPlateInVO; +import org.springblade.desk.produce.pojo.vo.PlateAroundVO; +import org.springblade.desk.produce.service.IPlateAroundDelLogService; import org.springblade.desk.produce.service.IPlateAroundService; +import org.springblade.desk.produce.service.IWorkOrderService; +import org.springblade.job.pojo.entity.JobInfo; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * 镀前镀后 服务实现类 @@ -18,4 +43,125 @@ import org.springframework.stereotype.Service; @RequiredArgsConstructor public class PlateAroundServiceImpl extends BaseServiceImpl implements IPlateAroundService { + private final IWorkOrderService workOrderService; + + private final IYieldOrderService yieldOrderService; + + private final IPlateAroundDelLogService plateAroundDelLogService; + + @Override + public IPage queryByReadStatus(IPage page, PlateAroundDto plateAroundDto) { + return page.setRecords(baseMapper.queryByReadStatus(page, plateAroundDto)); + } + + @Override + public WorkPlan getBeforePlatInCardNo(String cardNo, List tsIds) { + WorkOrder wo = workOrderService.getWorkOrderByCardNo(cardNo); + if (wo == null) { + throw new ServiceException("车间订单不存在!"); + } + return baseMapper.getBeforePlatInCardNo(wo.getId(), tsIds, AuthUtil.getUserId()); + } + + @Override + public PlateAround getBeforePlatOutCardNo(String cardNo, List tsIds) { + WorkOrder wo = workOrderService.getWorkOrderByCardNo(cardNo); + if (wo == null) { + throw new ServiceException("车间订单不存在!"); + } + return baseMapper.getBeforePlatOutCardNo(wo.getId(), tsIds, AuthUtil.getUserId()); + } + + @Override + public AfterPlateInVO getAfterPlatInCardNo(String cardNo, List tsIds) { + WorkOrder wo = workOrderService.getWorkOrderByCardNo(cardNo); + if (wo == null) { + throw new ServiceException("车间订单不存在!"); + } + WorkPlan wp = baseMapper.getAfterPlatInCardNo(wo.getId(), tsIds); + if (wp == null) { + throw new ServiceException("未找到镀后入库工序,无法入库!"); + } + //判断是转工还是入库 + WorkOrder workOrder = workOrderService.getById(wp.getWoId()); + YieldOrder pjYieldOrder = yieldOrderService.getById(workOrder.getYoId()); + AfterPlateInVO afterPlateInVO = new AfterPlateInVO(); + BeanUtils.copyProperties(wp, afterPlateInVO); + //返工的订单判定入库类型特殊处理 + if (StringUtils.isNotBlank(workOrder.getReworkMemo()) && "1".equals(workOrder.getReInStore())) { + if (workOrder.getReworkMemo().contains("转") && workOrder.getReworkMemo().contains("现场") + && !workOrder.getReworkMemo().contains("库")) { + afterPlateInVO.setHrTypeBool(1); + } else { + afterPlateInVO.setHrTypeBool(0); + } + } else { + //正常判定入库类型 + if (StringUtils.isBlank(pjYieldOrder.getRoamNoNext())) { + afterPlateInVO.setHrTypeBool(0); + } else { + afterPlateInVO.setHrTypeBool(1); + } + } + //zxh 20241213 增加为pjyieldorder.roamname赋值 +// pjYieldOrder.setRoamName(dsPartService.findNameByRoamNo(pjYieldOrder.getPartCode(), pjYieldOrder.getRoamNo())); + //zxh 20250509 增加为pjyieldorder.nextroamname赋值 +// if (pjYieldOrder.getNextRoam()!=null) { +// pjYieldOrder.setNextRoamName(dsPartService.findNameByRoamNo(pjYieldOrder.getPartCode(), pjYieldOrder.getNextRoam())); +// } + return afterPlateInVO; + } + + @Override + public boolean savePlateAround(SavePlateAroundDto plateAroundDto) { + List plateArounds = plateAroundDto.getPlateArounds(); + Short paType = plateAroundDto.getPaType(); + Long userId = AuthUtil.getUserId(); + if (CollectionUtils.isNotEmpty(plateArounds) || paType == null || userId == null) { + return false; + } + + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deletePlateAround(Long id) { + PlateAround plateAround = this.getById(id); + WorkOrder workOrder = workOrderService.getById(plateAround.getWpId()); + if (workOrder == null) { + return false; + } + // 根据流程卡号检查入库单是否重复, 对于没有重复的不允许删除 + List aroundList = baseMapper.listByWoCardNo(workOrder.getCardNo()); + + if (ObjectUtils.isNotEmpty(aroundList) && aroundList.size() == 1) { + String errorMsg = "删除重复入库失败!该订单不存在重复的入库单"; + log.error(errorMsg); + throw new ServiceException(errorMsg); + } + + // 构建删除日志 + PlateAroundDelLog delLog = new PlateAroundDelLog(); + delLog.setWpId(plateAround.getWpId()); + delLog.setWoCode(workOrder.getWoCode()); + delLog.setAroundData(plateAround.toString()); + + try { + // 保存删除日志 + plateAroundDelLogService.save(delLog); + // 删除数据 + return this.removeById(id); + } catch (Exception e) { + String errorMsg = "删除重复入库失败!错误信息:" + e.getMessage(); + log.error(errorMsg); + throw new ServiceException(errorMsg); + } + } + + @Override + public IPage queryDelLogRecord(IPage page, PlateAroundDto plateAroundDto) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PlateAroundDelLog.class); + return plateAroundDelLogService.page(page, wrapper); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index a488c39b..2d969ae3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -1,6 +1,7 @@ package org.springblade.desk.produce.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -16,6 +17,7 @@ import org.springblade.desk.dashboard.service.IBsProcessSetService; import org.springblade.desk.order.pojo.entity.YieldOrder; 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; @@ -33,11 +35,9 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.rmi.ServerException; import java.time.Instant; import java.time.LocalDateTime; import java.util.*; -import java.util.stream.Collectors; import static com.alibaba.fastjson2.util.DateUtils.DEFAULT_ZONE_ID; @@ -72,7 +72,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl WorkPlan.STATUS_START) { - PlateAround pa = plateAroundService.getOne(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, wp.getId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAT_IN)); + PlateAround pa = plateAroundMapper.selectOne(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, wp.getId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAT_IN)); if (pa == null) { //下序外协,当前工序需要镀前入库 throw new ServiceException("未找到工序【"+wp.getPpsId()+"】镀前入库记录,无法转单!"); @@ -412,6 +412,54 @@ public class WorkOrderServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaQuery(); + WorkOrder prWorkOrder = this.getOne(wrapper.eq(WorkOrder::getCardNo, cardNo).lt(WorkOrder::getRunStatus, WorkOrder.RUN_STATUS_COMPLETED)); + if (prWorkOrder == null) { + String newCardNo = yieldOrderService.getNewCardNo(cardNo); + wrapper.clear(); + prWorkOrder = this.getOne(wrapper.eq(WorkOrder::getCardNo, newCardNo).lt(WorkOrder::getRunStatus, WorkOrder.RUN_STATUS_COMPLETED)); + } + // 根据返工单号去查 + if (prWorkOrder == null) { + wrapper.clear(); + prWorkOrder = this.getOne(wrapper.eq(WorkOrder::getReworkCode, cardNo).lt(WorkOrder::getRunStatus, WorkOrder.RUN_STATUS_COMPLETED)); + } + + if (prWorkOrder != null && prWorkOrder.getId() != null) { + // todo 获取到所有除玻璃饼外的其他子件车间订单 +// wrapper.clear(); +// List yieldOrders = yieldOrderService.list(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getFatherYoId, prWorkOrder.getYoId())); +// List subList = new ArrayList<>(); +// if (CollectionUtils.isNotEmpty(yieldOrders)) { +// subList = this.list(wrapper.in(WorkOrder::getYoId, yieldOrders.stream().map(YieldOrder::getId).toList())); +// } +// //获取到部件下面的玻璃饼信息 +// List dpsList = null; +// List blbList = null; +// dpsList = dsPartSubService.listByPartCode(prWorkOrder.getPjYieldOrder().getPartCode(), DsPartSub.SIN_TER_TYPE_BLB); +// if (dpsList != null && !dpsList.isEmpty()) { +// for (DsPartSub dps : dpsList) { +// blbList = prWorkOrderDao.findByPartCodeAndMemo(dps.getSubCode(), prWorkOrder.getPjYieldOrder().getPoCode()); +// if (blbList != null && !blbList.isEmpty()) { +// subList.addAll(blbList); +// } +// } +// } +// //zxh 20250528 烧结车间订单查询模块增加查询'针'子件订单的执行状态 +// if (subList != null && !subList.isEmpty()) { +// for (WorkOrder subPrWorkOrder : subList) { +// if (subPrWorkOrder.getPjYieldOrder().getPartName().contains("针")) { +// prWorkOrder.setSubRunStatus(subPrWorkOrder.getRunStatusTitle()); +// } +// } +// } +// prWorkOrder.setSubList(subList); + } + return prWorkOrder; + } + private boolean checkWp(WorkPlan wp, Integer runType) { //不分派工序不能操作 BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanLogServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanLogServiceImpl.java new file mode 100644 index 00000000..448cb968 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanLogServiceImpl.java @@ -0,0 +1,21 @@ +package org.springblade.desk.produce.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.produce.mapper.WorkPlanLogMapper; +import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.service.IWorkPlanLogService; +import org.springframework.stereotype.Service; + +/** + * 车间作业计划修改日志 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class WorkPlanLogServiceImpl extends BaseServiceImpl implements IWorkPlanLogService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java index 494d07f5..8083b559 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java @@ -73,8 +73,8 @@ public class WorkPlanServiceImpl extends BaseServiceImpl