From dd8172de6282ef1210112233d76b7d9d4bc98453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Wed, 21 Jan 2026 18:39:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91=201?= =?UTF-8?q?=E3=80=81=E7=83=AD=E8=A1=A8=E8=BD=A6=E9=97=B4=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=202=E3=80=81=E5=88=86=E6=89=B9=E5=87=86?= =?UTF-8?q?=E5=A4=87=E6=95=B0=E6=8D=AE=203=E3=80=81=E5=88=86=E6=89=B9?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/PrReworkProcessEntity.java | 2 +- .../desk/produce/pojo/dto/WorkOrderDTO.java | 33 ++ .../produce/pojo/entity/BsProcedureTeam.java | 25 + .../desk/produce/pojo/entity/MacToolUse.java | 67 +++ .../desk/produce/pojo/entity/MakeRec.java | 73 +++ .../desk/produce/pojo/entity/WorkOrder.java | 438 +++++++++++++++++ .../produce/pojo/entity/WorkOrderRun.java | 170 +++++++ .../desk/produce/pojo/entity/WorkPlan.java | 266 ++++++++++ .../desk/produce/pojo/vo/BatchPrepareVO.java | 29 ++ .../desk/produce/pojo/vo/WorkOrderVO.java | 97 ++++ .../quality/pojo/entity/InspectionTask.java | 4 +- .../quality/pojo/entity/WorkPlanItem.java | 4 +- .../desk/energy/task/OrderEnvJob.java | 6 +- .../desk/energy/task/OrderSafeJob.java | 4 +- .../CertificateMaintenanceController.java | 2 +- .../order/service/IYieldOrderService.java | 8 + .../service/impl/YieldOrderServiceImpl.java | 12 + .../controller/RbProduceManageController.java | 58 +++ .../produce/mapper/BsProcedureTeamMapper.java | 17 + .../produce/mapper/BsProcedureTeamMapper.xml | 11 + .../desk/produce/mapper/MacToolUseMapper.java | 13 + .../desk/produce/mapper/MakeRecMapper.java | 13 + .../desk/produce/mapper/WorkOrderMapper.java | 37 ++ .../desk/produce/mapper/WorkOrderMapper.xml | 165 +++++++ .../produce/mapper/WorkOrderRunMapper.java | 14 + .../produce/mapper/WorkOrderRunMapper.xml | 36 ++ .../desk/produce/mapper/WorkPlanMapper.java | 14 + .../desk/produce/mapper/WorkPlanMapper.xml | 49 ++ .../service/IBsProcedureTeamService.java | 21 + .../produce/service/IMacToolUseService.java | 15 + .../desk/produce/service/IMakeRecService.java | 15 + .../produce/service/IWorkOrderRunService.java | 14 + .../produce/service/IWorkOrderService.java | 29 ++ .../produce/service/IWorkPlanService.java | 26 + .../impl/BsProcedureTeamServiceImpl.java | 24 + .../service/impl/MacToolUseServiceImpl.java | 21 + .../service/impl/MakeRecServiceImpl.java | 21 + .../service/impl/WorkOrderRunServiceImpl.java | 20 + .../service/impl/WorkOrderServiceImpl.java | 454 ++++++++++++++++++ .../service/impl/WorkPlanServiceImpl.java | 216 +++++++++ .../produce/wrapper/WorkOrderWrapper.java | 40 ++ .../service/IWorkPlanItemDetailService.java | 11 + .../quality/service/IWorkPlanItemService.java | 5 + .../impl/WorkPlanItemDetailServiceImpl.java | 28 ++ .../service/impl/WorkPlanItemServiceImpl.java | 48 ++ 45 files changed, 2664 insertions(+), 11 deletions(-) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkOrderDTO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsProcedureTeam.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MacToolUse.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MakeRec.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/BatchPrepareVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkOrderVO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsProcedureTeamService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsProcedureTeamServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/produce/wrapper/WorkOrderWrapper.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java index fd978f32..b58bab1b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java @@ -125,7 +125,7 @@ public class PrReworkProcessEntity extends BaseEntity { * 关键工序:0-否,1-是 */ @Schema(description = "关键工序:0-否,1-是") - private Short cruxProcess; + private String cruxProcess; /** * 零件号 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkOrderDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkOrderDTO.java new file mode 100644 index 00000000..3e429a22 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkOrderDTO.java @@ -0,0 +1,33 @@ +package org.springblade.desk.produce.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 车间订单表 数据传输对象实体类 + * @author AAA + */ +@Data +public class WorkOrderDTO { + + @Schema(description = "订单类型:1-热表,2-烧结,3-玻璃饼,4-壳体,5-插针,6-石墨模") + private Short yieldType; + + @Schema(description = "运行状态:1.正常,2.已下达,3.加工中,4.检验中,13.审理中,14.返工中,15.已完工,21已作废") + private Integer runStatus; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "计划单号") + private String yoCode; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsProcedureTeam.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsProcedureTeam.java new file mode 100644 index 00000000..f27ed252 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/BsProcedureTeam.java @@ -0,0 +1,25 @@ +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 litao + */ +@Data +@TableName("bs_procedure_team") +@Schema(description = "BsProcedureTeam对象") +@EqualsAndHashCode(callSuper = true) +public class BsProcedureTeam extends BaseEntity { + + @Schema(description = "工序id") + private Long ppsId; + + @Schema(description = "班组id") + private Long tsId; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MacToolUse.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MacToolUse.java new file mode 100644 index 00000000..96664465 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MacToolUse.java @@ -0,0 +1,67 @@ +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 litao + */ +@Data +@TableName("MES_MAC_TOOL_USE") +@Schema(description = "MacToolUse对象") +@EqualsAndHashCode(callSuper = true) +public class MacToolUse extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "追溯批号") + private String mtnCode; + + @Schema(description = "作业计划") + private Long wpId; + + @Schema(description = "设备") + private Long equipmentCard; + + @Schema(description = "飞靶") + private Long bsFeiBaSet; + + @Schema(description = "挂具") + private Long bsRackSet; + + @Schema(description = "绑定人") + private Long createMan; + + @Schema(description = "绑定时间") + private Date bindTime; + + @Schema(description = "自动解绑时间") + private Date unBuildTime; + + @Schema(description = "手动解绑时间") + private Date manualUnBuildTime; + + @Schema(description = "挂次号") + private String hangNum; + + @Schema(description = "是否完成") + private Integer finished; + + @Schema(description = "维护的电子档案模板") + private String rfpId; + + @Schema(description = "电子档案序号;1.自动前,2、自动,3、自动后") + private String mtuIndex = "2"; + + @Schema(description = "绑定类型") + private String bindType; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MakeRec.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MakeRec.java new file mode 100644 index 00000000..38756649 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MakeRec.java @@ -0,0 +1,73 @@ +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 litao + */ +@Data +@TableName("MES_MAKE_REC") +@Schema(description = "MakeRec对象") +@EqualsAndHashCode(callSuper = true) +public class MakeRec extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "工序id") + private Long wpId; + + @Schema(description = "操作工") + private Long worker; + + @Schema(description = "报工日期") + private Date makeTime; + + @Schema(description = "加工数量") + private Double workQty = 0d; + + @Schema(description = "报废数量") + private Integer scrapQty = 0; + + @Schema(description = "色标数量") + private Double flagQty = 0d; + + @Schema(description = "标颜色1") + private String flagColourOne; + + @Schema(description = "标颜色2") + private String flagColourTwo; + + @Schema(description = "标油墨") + private String flagInk; + + @Schema(description = "标物料") + private String flagMatter; + + @Schema(description = "色带数量") + private Double beltQty = 0d; + + @Schema(description = "带颜色1") + private String beltColourOne; + + @Schema(description = "带颜色2") + private String beltColourTwo; + + @Schema(description = "色油墨") + private String beltInk; + + @Schema(description = "色物料") + private String beltMatter; + + @Schema(description = "备注") + private String memo; + +} 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 new file mode 100644 index 00000000..5aecb6dd --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java @@ -0,0 +1,438 @@ +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.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 车间订单表 实体类 + * @author litao + * @since 2026-1-16 + */ +@Data +@TableName("MES_WORK_ORDER") +@Schema(description = "WorkOrder对象") +@EqualsAndHashCode(callSuper = true) +public class WorkOrder extends BaseEntity { + + /** + * 未下达 + */ + public static Short RUN_STATUS_NORMAL = 1; + /** + * 已下达 + */ + public static Short RUN_STATUS_ISSUED = 2; + /** + * 加工中 + */ + public static Short RUN_STATUS_RECEIVE = 3; + /** + * 检验中 + */ + public static Short RUN_STATUS_CHECK = 4; + /** + * 工艺变更 + */ + public static Short RUN_STATUS_CRAFT_CHANGE = 5; + /** + * 审理中 + */ + public static Short RUN_STATUS_HEAR = 13; + /** + * 已完工 + */ + public static Short RUN_STATUS_COMPLETED = 15; + /** + * 已交接 + */ + public static Short RUN_STATUS_HANDOVER = 17; + /** + * 返工 + */ + public static Short RUN_STATUS_REWORK = 19; + /** + * 报废 + */ + public static Short RUN_STATUS_SCRAP = 20; + /** + * 已关闭 + */ + public static Short RUN_STATUS_VOIDED = 21; + /** + * 正常 + */ + public static Short PRIORITY_NORMAL = 1; + /** + * 项目要求日期急件 + */ + public static Short PRIORITY_PRO_IMP = 2; + /** + * 合同急件 + */ + public static Short PRIORITY_PACT_IMP = 3; + /** + * 会议绩效急件 + */ + public static Short PRIORITY_PERF_IMP = 4; + /** + * 调度标注急件 + */ + public static Short PRIORITY_SCH_IMP = 5; + /** + * 1:正常 + */ + public static Short APPROVAL_STATUS_NORMAL = 1; + /** + * 2:审批中 + */ + public static Short APPROVAL_STATUS_UNDER = 2; + /** + * 3:不通过 + */ + public static Short APPROVAL_STATUS_FAIL = 3; + /** + * 4:通过 + */ + public static Short APPROVAL_STATUS_VIA = 4; + /** + * 整单外协 + */ + public static Short OEM_TYPE_WHOLE = 1; + /** + * 工序外协 + */ + public static Short OEM_TYPE_SINGLE = 2; + /** + * 未领取 + */ + public static Short PICKING_STATUS_NOT = 0; + /** + * 已领取 + */ + public static Short PICKING_STATUS_OK = 1; + + public static Map runStatusMap = new HashMap<>(11); + public static Map priorityMap = new HashMap(5); + public static Map approvalStatusMap = new HashMap(4); + public static Map pickingStatusMap = new HashMap(2); + + static { + runStatusMap.put(RUN_STATUS_NORMAL, "未下达"); + runStatusMap.put(RUN_STATUS_ISSUED, "已下达"); + runStatusMap.put(RUN_STATUS_RECEIVE, "加工中"); + runStatusMap.put(RUN_STATUS_CHECK, "检验中"); + runStatusMap.put(RUN_STATUS_CRAFT_CHANGE, "工艺变更"); + runStatusMap.put(RUN_STATUS_HEAR, "审理中"); + runStatusMap.put(RUN_STATUS_COMPLETED, "已完工"); + runStatusMap.put(RUN_STATUS_HANDOVER, "已交接"); + runStatusMap.put(RUN_STATUS_REWORK, "已返工"); + runStatusMap.put(RUN_STATUS_SCRAP, "已报废"); + runStatusMap.put(RUN_STATUS_VOIDED, "已关闭"); + + priorityMap.put(PRIORITY_NORMAL, "正常"); + priorityMap.put(PRIORITY_PRO_IMP, "项目要求日期急件"); + priorityMap.put(PRIORITY_PACT_IMP, "合同急件"); + priorityMap.put(PRIORITY_PERF_IMP, "绩效零件"); + priorityMap.put(PRIORITY_SCH_IMP, "调度标注急件"); + + approvalStatusMap.put(APPROVAL_STATUS_NORMAL, "正常"); + approvalStatusMap.put(APPROVAL_STATUS_UNDER, "审批中"); + approvalStatusMap.put(APPROVAL_STATUS_FAIL, "审批不通过"); + approvalStatusMap.put(APPROVAL_STATUS_VIA, "审批通过"); + + pickingStatusMap.put(PICKING_STATUS_NOT, "未领取"); + pickingStatusMap.put(PICKING_STATUS_OK, "已领取"); + } + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 班组 + */ + @Schema(description = "班组") + private Long tsId; + /** + * 外协 + */ + @Schema(description = "外协") + private Long ocId; + /** + * 试验数量 + */ + @Schema(description = "试验数量") + private Short testQty; + /** + * 损耗数量 + */ + @Schema(description = "损耗数量") + private Short lossQty; + /** + * 镀层单件定额 + */ + @Schema(description = "镀层单件定额") + private BigDecimal plateSingleQuota; + /** + * 推送标识位 + */ + @Schema(description = "推送标识位") + private String pushFlag; + /** + * 镀层物料 + */ + @Schema(description = "镀层物料") + private String plateGoodsCode; + /** + * 需求上报记录 + */ + @Schema(description = "需求上报记录") + private Long pgrId; + /** + * 定额异常 + */ + @Schema(description = "定额异常") + private String quotaExceptional; + /** + * 热表车间流程卡号 + */ + @Schema(description = "热表车间流程卡号") + private String mesCardNo; + /** + * 镀前预接收时间 + */ + @Schema(description = "镀前预接收时间") + private Date receptionTime; + /** + * 镀前预转出时间 + */ + @Schema(description = "镀前预转出时间") + private Date outTime; + /** + * 是否协作 + */ + @Schema(description = "是否协作") + private String collaborate; + /** + * 下部门上账时间 + */ + @Schema(description = "下部门上账时间") + private Date lastInstoreTime; + /** + * 会议要求周期 + */ + @Schema(description = "会议要求周期") + private Short meetCycle; + /** + * 备注 + */ + @Schema(description = "备注") + private String memo; + /** + * 排产状态;1、已下发 + */ + @Schema(description = "排产状态;1、已下发") + private Short schedStatus; + /** + * 是否已准备(烧结车间订单专用,默认为空,1是代表已准备) + */ + @Schema(description = "是否已准备(烧结车间订单专用,默认为空,1是代表已准备)") + private Short readStatus; + /** + * 返工单号(仅状态为19的车间订单在生产监控展示) + */ + @Schema(description = "返工单号(仅状态为19的车间订单在生产监控展示)") + private String qcReworkCode; + /** + * 原订单状态 + */ + @Schema(description = "原订单状态") + private Short oldRunStatus; + /** + * 返工入库类型;0:按B号;1:按返工描述 + */ + @Schema(description = "返工入库类型;0:按B号;1:按返工描述") + private String reInStore; + /** + * 生产订单 + */ + @Schema(description = "生产订单") + private Long yoId; + /** + * 路线卡号 + */ + @Schema(description = "路线卡号") + private String cardNo; + /** + * 批次 + */ + @Schema(description = "批次") + private String batchNo; + /** + * 订单编号 + */ + @Schema(description = "订单编号") + private String woCode; + /** + * 加工数量 + */ + @Schema(description = "加工数量") + private Long makeQty; + /** + * 计划完工日期 + */ + @Schema(description = "计划完工日期") + private String planEndDate; + /** + * 当前工序 + */ + @Schema(description = "当前工序") + private Long wpId; + /** + * 已入库数量 + */ + @Schema(description = "已入库数量") + private Integer inventoryQty; + /** + * 运行状态;1.正常,2.已下达,3.加工中,4.检验中,13.审理中,14.返工中,15.已完工,21已作废 + */ + @Schema(description = "运行状态;1.正常,2.已下达,3.加工中,4.检验中,13.审理中,14.返工中,15.已完工,21已作废") + private Integer runStatus; + /** + * 领料状态;0.未领,1.已领 + */ + @Schema(description = "领料状态;0.未领,1.已领") + private Short pickingStatus; + /** + * 是否外协 + */ + @Schema(description = "是否外协") + private String oem; + /** + * 优先级;1.正常,2.项目要求日期急件,3.合同急件,4.绩效零件,5.调度标注急件 + */ + @Schema(description = "优先级;1.正常,2.项目要求日期急件,3.合同急件,4.绩效零件,5.调度标注急件") + private Integer priority; + /** + * 最新运行记录 + */ + @Schema(description = "最新运行记录") + private Long worId; + /** + * 审批状态;1:正常,2:审批中,3:不通过,4:通过 + */ + @Schema(description = "审批状态;1:正常,2:审批中,3:不通过,4:通过") + private Short approvalStatus; + /** + * 报废数量 + */ + @Schema(description = "报废数量") + private Integer scrapQty; + /** + * 外协订单发送状态 + */ + @Schema(description = "外协订单发送状态") + private String oemOut; + /** + * 外协订单类型 -1场内,1整单,2协作 + */ + @Schema(description = "外协订单类型 -1场内,1整单,2协作") + private Integer oemType; + /** + * 返工单号 + */ + @Schema(description = "返工单号") + private String reworkCode; + /** + * 返工序号 + */ + @Schema(description = "返工序号") + private Integer reworkNo; + /** + * 计划员 + */ + @Schema(description = "计划员") + private Long planner; + /** + * 调度员 + */ + @Schema(description = "调度员id") + private Long dispatcher; + /** + * 0、未打印;1、已打印 + */ + @Schema(description = "0、未打印;1、已打印") + private String printFlag; + /** + * 下达时间 + */ + @Schema(description = "下达时间") + private Date sendDownTime; + /** + * 打印人 + */ + @Schema(description = "打印人") + private Long printMan; + /** + * 镀后入库时间 + */ + @Schema(description = "镀后入库时间") + private Date putStoreTime; + /** + * 返工意见 + */ + @Schema(description = "返工意见") + private String reworkMemo; + /** + * 需求交期 + */ + @Schema(description = "需求交期") + private Date demandDate; + /** + * 打印时间 + */ + @Schema(description = "打印时间") + private Date printTime; + /** + * 打印编码 + */ + @Schema(description = "打印编码") + private String printCode; + /** + * 关闭时间 + */ + @Schema(description = "关闭时间") + private Date handoverTime; + /** + * 关闭时间 + */ + @Schema(description = "关闭时间") + private Date closeTime; + /** + * 关闭人 + */ + @Schema(description = "关闭人") + private Long closeMan; + + /** + * 计划开始日期 + */ + @Schema(description = "计划开始日期") + private String planStartDate; + + /** + * 零件号 + */ + @Schema(description = "零件号") + private String partCode; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java new file mode 100644 index 00000000..f800c248 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java @@ -0,0 +1,170 @@ +package org.springblade.desk.produce.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 车间订单运行记录表 实体类 + * + * @author BladeX + */ +@Data +@TableName("MES_WORK_ORDER_RUN") +@Schema(description = "MesWorkOrderRun对象") +@EqualsAndHashCode(callSuper = true) +@Builder +public class WorkOrderRun extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 外协 + */ + public static Short RUN_TYPE_1 = 1; + /** + * 场内 + */ + public static Short RUN_TYPE_2 = 2; + /** + * 退货 + */ + public static Short RUN_TYPE_3 = 3; + + /** + * 2:审批中 + */ + public static Short RUN_STATUS_UNDER = 2; + /** + * 3:不通过 + */ + public static Short RUN_STATUS_FAIL = 3; + /** + * 已下达 + */ + public static Short RUN_STATUS_ISSUED = 7; + /** + * 已交件 + */ + public static Short RUN_STATUS_DELIVERED = 10; + /** + * 已完工 + */ + public static Short RUN_STATUS_COMPLETED = 15; + /** + * 已作废 + */ + public static Short RUN_STATUS_VOIDED = 21; + public static Map runStatusMap = new HashMap<>(8); + + static { + runStatusMap.put(RUN_STATUS_UNDER, "审批中"); + runStatusMap.put(RUN_STATUS_FAIL, "审批不通过"); + runStatusMap.put(RUN_STATUS_ISSUED, "已下达"); + runStatusMap.put(RUN_STATUS_DELIVERED, "已交件"); + runStatusMap.put(RUN_STATUS_COMPLETED, "已完工"); + runStatusMap.put(RUN_STATUS_VOIDED, "已作废"); + + } + + /** + * 车间订单 + */ + @Schema(description = "车间订单") + private Long woId; + /** + * 订单号 + */ + @Schema(description = "订单号") + private String woCode; + /** + * 类型;1:转单,2:退货 + */ + @Schema(description = "类型;1:转单,2:退货") + private Short runType; + /** + * 转出班组 + */ + @Schema(description = "转出班组") + private Long outTeam; + /** + * 转入班组 + */ + @Schema(description = "转入班组") + private Long inTeam; + /** + * 转出供应商 + */ + @Schema(description = "转出供应商") + private Long outCustomer; + /** + * 转入供应商 + */ + @Schema(description = "转入供应商") + private Long inCustomer; + /** + * 备注 + */ + @Schema(description = "备注") + private String memo; + /** + * 审批人员 + */ + @Schema(description = "审批人员") + private Long approvalMan; + /** + * 审批意见 + */ + @Schema(description = "审批意见") + private String approvalMemo; + /** + * 打印标识 + */ + @Schema(description = "打印标识") + private String printFlag; + /** + * 交件单号 + */ + @Schema(description = "交件单号") + private String deliverKey; + /** + * 是否关闭 + */ + @Schema(description = "是否关闭") + private String closeOrNot; + /** + * 打印人 + */ + @Schema(description = "打印人") + private Long printMan; + /** + * 运行状态 + */ + @Schema(description = "运行状态") + private Short runStatus; + /** + * 系统标识 + */ + @Schema(description = "系统标识") + private String systemData; + /** + * 是否协作计划 + */ + @Schema(description = "是否协作计划") + private String collaborate; + /** + * 审批时间 + */ + @Schema(description = "审批时间") + private Date approvalTime; + +} 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 new file mode 100644 index 00000000..9b027190 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -0,0 +1,266 @@ +package org.springblade.desk.produce.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +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 org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.WorkPlanItem; + +import java.io.Serial; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * 车间作业计划 实体类 + * @author litao + */ +@Data +@TableName("MES_WORK_PLAN") +@Schema(description = "MesWorkPlan对象") +@EqualsAndHashCode(callSuper = true) +public class WorkPlan extends BaseEntity { + /** + * TODO 工序状态要调整到常量类中 + * 工序状态:未开始 + */ + public static Integer STATUS_NO_START = 1; + /** + * 工序状态:加工中 + */ + public static Integer STATUS_START = 2; + /** + * 工序状态:报工完成 + */ + public static Integer STATUS_WORK_OK = 3; + /** + * 工序状态:已完成 + */ + public static Integer STATUS_COMPLETE = 5; + /** + * 工序状态:已返工 + */ + public static Integer STATUS_VOIDED = 6; + + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 车间订单 + */ + @Schema(description = "车间订单") + private Long woId; + /** + * 工艺 + */ + @Schema(description = "工艺") + private Long ppsId; + /** + * 工序号 + */ + @Schema(description = "工序号") + private String orders; + /** + * 工序描述 + */ + @Schema(description = "工序描述") + private String makeMemo; + /** + * 工时定额 + */ + @Schema(description = "工时定额") + private BigDecimal hourQuota; + /** + * 计划开始 + */ + @Schema(description = "计划开始") + private LocalDateTime startTime; + /** + * 计划结束 + */ + @Schema(description = "计划结束") + private LocalDateTime endTime; + /** + * 加工班组 + */ + @Schema(description = "加工班组") + private Long makeTeam; + /** + * 是否外协 + */ + @Schema(description = "是否外协") + private String oem; + /** + * 外协商 + */ + @Schema(description = "外协商") + private Long ocId; + /** + * 上一道 + */ + @Schema(description = "上一道") + private Long frontWpId; + /** + * 下一道 + */ + @Schema(description = "下一道") + private Long nextWpId; + /** + * 试验数量 + */ + @Schema(description = "试验数量") + private Integer testQty; + /** + * 合格数量 + */ + @Schema(description = "合格数量") + private Long qualifiedQty; + /** + * 报废数量 + */ + @Schema(description = "报废数量") + private Integer scrapQty; + /** + * 不合格数量 + */ + @Schema(description = "不合格数量") + private Integer unqualifiedQty; + /** + * 实际开始 + */ + @Schema(description = "实际开始") + private Date factStartTime; + /** + * 实际结束 + */ + @Schema(description = "实际结束") + private Date factEndTime; + /** + * + */ + @Schema(description = "") + private Short bindStatus; + /** + * + */ + @Schema(description = "") + private Long workQty; + /** + * + */ + @Schema(description = "") + private Long receiveMan; + /** + * + */ + @Schema(description = "") + private BigDecimal hours; + /** + * + */ + @Schema(description = "") + private Long caId; + /** + * 打印标记类型:1、生产过程 + */ + @Schema(description = "打印标记类型:1、生产过程") + private Short printType; + /** + * + */ + @Schema(description = "") + private Long subsidiaryTeam; + /** + * 检验颜色标识 + */ + @Schema(description = "检验颜色标识") + private Short subType; + /** + * 关键工序 + */ + @Schema(description = "关键工序") + private String cruxProcess; + /** + * 消耗数量 + */ + @Schema(description = "消耗数量") + private Short lossQty; + /** + * 金额 + */ + @Schema(description = "金额") + private BigDecimal wpMoney; + /** + * 工艺文件编号/版本号 + */ + @Schema(description = "工艺文件编号/版本号") + private String papers; + /** + * + */ + @Schema(description = "") + private String referenceFile; + /** + * 引用文件/版本号 + */ + @Schema(description = "引用文件/版本号") + private String wxNo; + + /** + * 作业中心 + */ + @Schema(description = "作业中心") + private Long workCenterId; + + /** + * 设备编码 + */ + @Schema(description = "设备编码") + private String equipCode; + + /** + * 设备名称 + */ + @Schema(description = "设备名称") + private String equipName; + + /** + * 占用设备资源ID + */ + @Schema(description = "占用设备资源ID") + private Long equipResourceId; + + /** + * 占用人力资源ID + */ + @Schema(description = "占用设备资源ID") + private String personResourceIds; + + /** + * 班组人员 + */ + @Schema(description = "班组人员") + private String teamMembers; + + @Schema(description = "检验项目") + @TableField(exist = false) + public List checkItemList; + + @Schema(description = "检验任务") + @TableField(exist = false) + public InspectionTask inspectionTask; + + @Schema(description = "正式工艺Id") + @TableField(exist = false) + public Long pid; + + @Schema(description = "返工工艺Id") + @TableField(exist = false) + public Long rpId; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/BatchPrepareVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/BatchPrepareVO.java new file mode 100644 index 00000000..89245f2d --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/BatchPrepareVO.java @@ -0,0 +1,29 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.desk.order.pojo.entity.YieldOrder; + +/** + * 分批准备数据 视图实体类 + * + * @author litao + */ +@Data +public class BatchPrepareVO { + @Schema(description = "生产订单") + private YieldOrder yieldOrder; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "mes流程卡号") + private String mesCardNo; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkOrderVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkOrderVO.java new file mode 100644 index 00000000..503df24a --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkOrderVO.java @@ -0,0 +1,97 @@ +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.WorkOrder; + +import java.io.Serial; + +/** + * 车间订单表 视图实体类 + * + * @author BladeX + * @since 2025-11-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WorkOrderVO extends WorkOrder { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "主加工单位:班组") + private String mainTsName; + + @Schema(description = "主加工单位:外协") + private String mainOcName; + + @Schema(description = "班组id") + private String makeTeam; + + @Schema(description = "外协id") + private String ppsOcId; + + @Schema(description = "班组") + private String tsName; + + @Schema(description = "外协") + private String ocName; + + @Schema(description = "工序") + private String ppsName; + + @Schema(description = "生产订单号") + private String yoCode; + + @Schema(description = "计划单号") + private String ypCode; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "生产标识") + private String productIdent; + + @Schema(description = "产品名称") + private String partName; + + @Schema(description = "镀种信息") + private String plate; + + @Schema(description = "产品型号") + private String productType; + + @Schema(description = "需求部门") + private String useDept; + + @Schema(description = "面积(dm²)") + private String totalArea; + + @Schema(description = "单批次面积") + private String area; + + @Schema(description = "调度员") + private String dispatcherName; + + @Schema(description = "未入库数量") + private Integer notInQty; + + @Schema(description = "下序id") + private Integer ppsIdNext; + + @Schema(description = "下序名称") + private Integer ppsNameNext; + + @Schema(description = "下一班组id") + private Integer makeTeamNext; + + @Schema(description = "下一班组") + private Integer makeTeamNextName; + + @Schema(description = "接收人员id") + private Integer receiveUser; + + @Schema(description = "接收人员") + private Integer receiveUserNamr; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java index 2d3bb05d..3d41a690 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java @@ -267,7 +267,7 @@ public class InspectionTask extends BaseEntity { * 检验数量 */ @Schema(description = "检验数量") - private Double checkQty; + private Long checkQty; /** * 消耗数量 */ @@ -277,7 +277,7 @@ public class InspectionTask extends BaseEntity { * 合格数量 */ @Schema(description = "合格数量") - private Double qualifiedQty; + private Long qualifiedQty; /** * 报废数量 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java index 053cc30a..f8736057 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java @@ -159,12 +159,12 @@ public class WorkPlanItem extends BaseEntity { * 工时定额 */ @Schema(description = "工时定额") - private Short hourQuota; + private Long hourQuota; /** * 准备工时 */ @Schema(description = "准备工时") - private Short hourPrepare; + private Long hourPrepare; /** * [检验任务]id */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderEnvJob.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderEnvJob.java index 3f26e5e6..7b6ab4c1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderEnvJob.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderEnvJob.java @@ -35,7 +35,7 @@ public class OrderEnvJob { * 创建安全巡检任务定时器运行... * */ - @Scheduled(cron = "0/20 * * * * ?") +// @Scheduled(cron = "0/20 * * * * ?") public void rpAcidMistTower() { log.info("开始酸雾塔报警记录数据查询..."); @@ -48,7 +48,7 @@ public class OrderEnvJob { log.info("同步酸雾塔报警记录数据查询..."); } - @Scheduled(cron = "0 0 0/1 * * ? ") +// @Scheduled(cron = "0 0 0/1 * * ? ") public void eneUpdateUsed() { if ("false".equals(jobSafeEnable)) { @@ -66,7 +66,7 @@ public class OrderEnvJob { } } - @Scheduled(cron = "0 0/3 * * * ?") +// @Scheduled(cron = "0 0/3 * * * ?") public void bsTowerSosRec() { log.info("开始酸雾塔PH报警......"); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderSafeJob.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderSafeJob.java index d9dc0d50..67880b65 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderSafeJob.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/task/OrderSafeJob.java @@ -26,7 +26,7 @@ public class OrderSafeJob { * 创建安全巡检任务定时器运行... * */ - @Scheduled(cron = "0 0 0,2,5,7 * * ? ") +// @Scheduled(cron = "0 0 0,2,5,7 * * ? ") public void createSafPatrolTask() { log.info("开始创建安全巡检任务定时器运行..."); @@ -39,7 +39,7 @@ public class OrderSafeJob { log.info("同步创建安全巡检任务定时器运行...已完成..."); } - @Scheduled(cron = "0 0 8 * * ? ") +// @Scheduled(cron = "0 0 8 * * ? ") public void handleSafPatrolTask() { if ("false".equals(jobSafeEnable)) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/controller/CertificateMaintenanceController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/controller/CertificateMaintenanceController.java index 4f2ee2b6..d62f8fc9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/controller/CertificateMaintenanceController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/controller/CertificateMaintenanceController.java @@ -210,7 +210,7 @@ public class CertificateMaintenanceController extends BladeController { * 更新证书维护状态 * TODO 以后需要交由PowerJob服务统一管理 */ - @Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行 +// @Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行 public void updateMaintenanceStatus() { certificateMaintenanceService.updateMaintenanceStatus(); } 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 f921c6ea..05a0efa2 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 @@ -167,4 +167,12 @@ public interface IYieldOrderService extends BaseService { * @param statusCode */ void receiveOrderStatusFromOldMes(String cardNo, Integer statusCode); + + /** + *

Description: 路线卡号查询生产订单

+ * + * @param cardNo 路线卡号 + * @return: YieldOrder + */ + YieldOrder getYoByCardNo(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 6dbf744f..276789e5 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 @@ -12,6 +12,7 @@ import org.apache.commons.lang3.StringUtils; import org.springblade.common.constant.CommonConstant; import org.springblade.common.exception.BusinessException; import org.springblade.common.utils.StringPrefixUtils; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; @@ -636,6 +637,17 @@ public class YieldOrderServiceImpl extends BaseServiceImpl queryWrapper = Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, cardNo); + YieldOrder yieldOrder = baseMapper.selectOne(queryWrapper); + // TODO : 待完善 + if (yieldOrder == null) { + throw new ServiceException("生产订单未同步,请稍后操作"); + } + return yieldOrder; + } + /** * 验证零件子件信息 * diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java new file mode 100644 index 00000000..dc89ab52 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java @@ -0,0 +1,58 @@ +package org.springblade.desk.produce.controller; + +import com.alibaba.fastjson.JSONObject; +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.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.desk.produce.pojo.dto.WorkOrderDTO; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.vo.BatchPrepareVO; +import org.springblade.desk.produce.pojo.vo.WorkOrderVO; +import org.springblade.desk.produce.service.IWorkOrderService; +import org.springblade.desk.produce.wrapper.WorkOrderWrapper; +import org.springframework.web.bind.annotation.*; + +/** + * 热表车间订单 + * @author litao + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/workOrder") +@Tag(name = "热表车间订单", description = "接口") +public class RbProduceManageController extends BladeController { + + private final IWorkOrderService workOrderService; + + @GetMapping("/page") + @ApiOperationSupport(order = 1) + @Operation(summary = "车间订单列表分页", description = "传入WorkOrderVO") + public R> page(WorkOrderDTO workOrder, Query query) { + IPage pages = workOrderService.selectWorkOrderPage(Condition.getPage(query), workOrder); + return R.data(WorkOrderWrapper.build().listWorkOrderVO(pages)); + } + + @GetMapping(value = "/batchesPrepare/{woId}") + @ApiOperationSupport(order = 2) + @Operation(summary = "分批准备数据", description = "传入车间订单ID") + public R batchesPrepare(@PathVariable Long woId) { + return R.data(workOrderService.batchesPrepare(woId)); + } + + @PostMapping(value = "/inBatches") + @ApiOperationSupport(order = 3) + @Operation(summary = "分批", description = "传入WorkOrderVO") + public R inBatches(@RequestBody WorkOrder workOrder) { + Long userId = AuthUtil.getUserId(); + return R.data(workOrderService.inBatches(workOrder.getId(), workOrder, userId)); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.java new file mode 100644 index 00000000..bb541064 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.java @@ -0,0 +1,17 @@ +package org.springblade.desk.produce.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.produce.pojo.entity.BsProcedureTeam; + +import java.util.List; + +/** + * 工序下的班组 Mapper 接口 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface BsProcedureTeamMapper extends BaseMapper { + + List findBsProcedureTeamByPpsId(Long id); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.xml new file mode 100644 index 00000000..27a1517c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/BsProcedureTeamMapper.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java new file mode 100644 index 00000000..ee879704 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.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.MacToolUse; + +/** + * 设备,工装使用记录 Mapper 接口 + * + * @author BladeX + */ +public interface MacToolUseMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java new file mode 100644 index 00000000..c07a039f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.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.MakeRec; + +/** + * 加工记录 Mapper 接口 + * + * @author BladeX + */ +public interface MakeRecMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.java new file mode 100644 index 00000000..d1aab620 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.java @@ -0,0 +1,37 @@ +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.WorkOrderDTO; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.vo.WorkOrderVO; + +import java.util.List; + +/** + * 车间订单表 Mapper 接口 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface WorkOrderMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param workOrder 查询参数 + * @return List + */ + List selectWorkOrderPage(IPage page, WorkOrderDTO workOrder); + + WorkOrder getMaxByCodePattern(String codePattern); + + WorkOrder getMaxByCardNo(String cardNo, String ypCode); + + WorkOrder getWorkOrderByCardNo(String code, short i); + + WorkOrder getMaxByBatchNo(String codePattern, String ypCode); + + WorkOrder getMaxByMesCardNo(String codePattern); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.xml new file mode 100644 index 00000000..be6e6f3c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderMapper.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.java new file mode 100644 index 00000000..a26fde0f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.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.WorkOrderRun; + +/** + * 车间订单运行记录表 Mapper 接口 + * + * @author BladeX + */ +public interface WorkOrderRunMapper extends BaseMapper { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml new file mode 100644 index 00000000..23e02e77 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java new file mode 100644 index 00000000..06382a34 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.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.WorkPlan; + +/** + * 车间作业计划 Mapper 接口 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface WorkPlanMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml new file mode 100644 index 00000000..042f0f18 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsProcedureTeamService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsProcedureTeamService.java new file mode 100644 index 00000000..413fc519 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IBsProcedureTeamService.java @@ -0,0 +1,21 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.BsProcedureTeam; + +import java.util.List; + +/** + * 工序下的班组 服务类 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface IBsProcedureTeamService extends BaseService { + + /** + * @Description: 指定工序已选班组 + * @return List + */ + List findBsProcedureTeamByPpsId(Long id); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java new file mode 100644 index 00000000..294bfe39 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java @@ -0,0 +1,15 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.MacToolUse; + +/** + * 设备,工装使用记录 服务类 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface IMacToolUseService extends BaseService { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java new file mode 100644 index 00000000..efea9bd8 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java @@ -0,0 +1,15 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.MakeRec; + +/** + * 加工记录 服务类 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface IMakeRecService extends BaseService { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java new file mode 100644 index 00000000..e8b6947c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java @@ -0,0 +1,14 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.WorkOrderRun; + +/** + * 车间订单运行记录表 服务类 + * + * @author BladeX + */ +public interface IWorkOrderRunService extends BaseService { + + +} 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 new file mode 100644 index 00000000..069fe4e9 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -0,0 +1,29 @@ +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.WorkOrderDTO; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.vo.BatchPrepareVO; +import org.springblade.desk.produce.pojo.vo.WorkOrderVO; + +/** + * 车间订单表 服务类 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface IWorkOrderService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param WorkOrder 查询参数 + * @return IPage + */ + IPage selectWorkOrderPage(IPage page, WorkOrderDTO WorkOrder); + + BatchPrepareVO batchesPrepare(Long woId); + + boolean inBatches(Long oldWoId, WorkOrder workOrder, Long userId); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java new file mode 100644 index 00000000..1eda4dfb --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java @@ -0,0 +1,26 @@ +package org.springblade.desk.produce.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.entity.WorkPlan; + +import java.util.List; + +/** + * 车间作业计划 服务类 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface IWorkPlanService extends BaseService { + + void addWorkPlan(WorkOrder wo, List wpList, List deleteIds); + + /** + *

方法名: editPreviewNextWorkPlan

+ *

方法描述: 更新加工任务的上下级关系

+ * + * @param woId 生产车间 + */ + void editPreviewNextWorkPlan(Long woId); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsProcedureTeamServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsProcedureTeamServiceImpl.java new file mode 100644 index 00000000..3d74b7a1 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/BsProcedureTeamServiceImpl.java @@ -0,0 +1,24 @@ +package org.springblade.desk.produce.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.produce.mapper.BsProcedureTeamMapper; +import org.springblade.desk.produce.pojo.entity.BsProcedureTeam; +import org.springblade.desk.produce.service.IBsProcedureTeamService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 工序下的班组 服务实现类 + * + * @author BladeX + * @since 2025-11-28 + */ +@Service +public class BsProcedureTeamServiceImpl extends BaseServiceImpl implements IBsProcedureTeamService { + + @Override + public List findBsProcedureTeamByPpsId(Long id) { + return baseMapper.findBsProcedureTeamByPpsId(id); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java new file mode 100644 index 00000000..701286a6 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.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.MacToolUseMapper; +import org.springblade.desk.produce.pojo.entity.MacToolUse; +import org.springblade.desk.produce.service.IMacToolUseService; +import org.springframework.stereotype.Service; + +/** + * 设备,工装使用记录 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class MacToolUseServiceImpl extends BaseServiceImpl implements IMacToolUseService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java new file mode 100644 index 00000000..1aa0342a --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.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.MakeRecMapper; +import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.service.IMakeRecService; +import org.springframework.stereotype.Service; + +/** + * 加工记录 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class MakeRecServiceImpl extends BaseServiceImpl implements IMakeRecService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java new file mode 100644 index 00000000..1638d681 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -0,0 +1,20 @@ +package org.springblade.desk.produce.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.produce.mapper.WorkOrderRunMapper; +import org.springblade.desk.produce.pojo.entity.WorkOrderRun; +import org.springblade.desk.produce.service.IWorkOrderRunService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 车间订单运行记录表 服务实现类 + * + * @author BladeX + * @since 2025-11-28 + */ +@Service +public class WorkOrderRunServiceImpl extends BaseServiceImpl implements IWorkOrderRunService { + +} 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 new file mode 100644 index 00000000..85cd5dc7 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -0,0 +1,454 @@ +package org.springblade.desk.produce.service.impl; + +import cn.hutool.core.bean.BeanUtil; +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.StringUtils; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; +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.WorkOrderMapper; +import org.springblade.desk.produce.pojo.dto.WorkOrderDTO; +import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.pojo.vo.BatchPrepareVO; +import org.springblade.desk.produce.pojo.vo.WorkOrderVO; +import org.springblade.desk.produce.service.*; +import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.PlanTest; +import org.springblade.desk.quality.service.IInspectionTaskService; +import org.springblade.desk.quality.service.IPlanTestService; +import org.springblade.desk.quality.service.IWorkPlanItemService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.rmi.ServerException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * 车间订单表 服务实现类 + * + * @author BladeX + * @since 2025-11-28 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class WorkOrderServiceImpl extends BaseServiceImpl implements IWorkOrderService { + + private final IYieldOrderService yieldOrderService; + + private final IWorkPlanService workPlanService; + + private final IBsProcessSetService bsProcessSetService; + + private final IWorkPlanItemService workPlanItemService; + + private final IInspectionTaskService iInspectionTaskService; + + private final IWorkOrderRunService workOrderRunService; + + private final IMakeRecService makeRecService; + + private final IMacToolUseService macToolUseService; + + private final IPlanTestService planTestService; + + @Override + public IPage selectWorkOrderPage(IPage page, WorkOrderDTO workOrder) { + return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder)); + } + + @Override + public BatchPrepareVO batchesPrepare(Long woId) { + WorkOrder workOrder = this.getById(woId); + YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId()); + BatchPrepareVO batchPrepareVO = new BatchPrepareVO(); + batchPrepareVO.setYieldOrder(yieldOrder); + batchPrepareVO.setWoCode(this.nextCode(yieldOrder.getYpCode())); + batchPrepareVO.setCardNo(this.nextCardNo(yieldOrder.getYpCode(),workOrder.getCardNo())); + batchPrepareVO.setBatchNo(this.nextBatchNo(yieldOrder.getYpCode(),workOrder.getBatchNo())); + batchPrepareVO.setMesCardNo(this.nextMesCardNo(workOrder.getMesCardNo())); + return batchPrepareVO; + } + + @Override + public boolean inBatches(Long oldWoId, WorkOrder workOrder, Long userId) { + WorkOrder oldWo = this.getById(oldWoId); + WorkOrder newWo = new WorkOrder(); + YieldOrder newYie = new YieldOrder(); + YieldOrder oldYie = yieldOrderService.getById(oldWo.getYoId()); + BeanUtils.copyProperties(oldWo, newWo); + BeanUtils.copyProperties(oldYie, newYie); + + newYie.setId(null); + newYie.setYpQty(workOrder.getMakeQty()); + newYie.setBatchNo(workOrder.getBatchNo()); + newYie.setCardNo(workOrder.getCardNo()); + newYie.setMemo("分批创建订单,用于二次来查原单"); + newYie.setStatus(YieldOrderEnum.STATUS_PROCESSING.getCode()); + yieldOrderService.save(newYie); + YieldOrder newPj1 = yieldOrderService.getYoByCardNo(workOrder.getCardNo()); + newWo.setId(null); + newWo.setYoId(newPj1.getId()); + newWo.setMakeQty(workOrder.getMakeQty()); + newWo.setWoCode(workOrder.getWoCode()); + newWo.setBatchNo(workOrder.getBatchNo()); + newWo.setOemType(-1); + newWo.setCardNo(workOrder.getCardNo()); + newWo.setMemo(workOrder.getMemo()); + newWo.setMesCardNo(this.nextMesCardNo(oldWo.getMesCardNo())); + + oldWo.setMakeQty(oldWo.getMakeQty() - newWo.getMakeQty()); + + this.addWorkOrder(newWo); + + //保存作业计划 + List oldList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, oldWoId)); + List wpList = new ArrayList<>(oldList.size()); + for (WorkPlan oldWp : oldList) { + WorkPlan wp = new WorkPlan(); + BeanUtil.copyProperties(oldWp,wp); + + wp.setId(null); + + wp.setQualifiedQty(newWo.getMakeQty()); + wp.setWorkQty(newWo.getMakeQty()); + + if (wp.getStatus() == 2) { + wp.setWorkQty(0L); + } else if (wp.getStatus() == 1) { + wp.setWorkQty(0L); + wp.setQualifiedQty(0L); + } + BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); + if (!"镀后接收".equals(processSet.getName())) { + wp.setFactEndTime(oldWp.getFactEndTime()); + } + + wp.setCheckItemList(workPlanItemService.listByWorkPlanId(oldWp.getId())); + wp.setInspectionTask(iInspectionTaskService.getPrWorkCheckByWpId(oldWp.getId())); + wpList.add(wp); + } + + //产生车间运行记录信息 + WorkOrderRun oldRun = workOrderRunService.getById(oldWo.getWorId()); + WorkOrderRun wr = WorkOrderRun.builder().woId(newWo.getId()).woCode(newWo.getWoCode()).runType(WorkOrderRun.RUN_TYPE_2) + .inTeam(oldRun != null ? oldRun.getInTeam() : null).memo("分批(厂内)").approvalMan(userId).systemData("1") + .collaborate(newWo.getCollaborate()).runStatus(WorkOrderRun.RUN_STATUS_ISSUED).build(); + workOrderRunService.save(wr); + newWo.setWorId(wr.getId()); + //保存作业计划 + this.calculationWp(newWo, wpList); + // 转存工序的加工信息 + this.saveProcessMarkRec(oldList, wpList); + return true; + } + + private void addWorkOrder(WorkOrder wo) { + wo.setInventoryQty(0); + wo.setCreateTime(new Date()); + wo.setApprovalStatus(WorkOrder.APPROVAL_STATUS_NORMAL); + wo.setPickingStatus(WorkOrder.PICKING_STATUS_NOT); + if (wo.getOem() == null) { + wo.setOem("0"); + } + if (StringUtils.isBlank(wo.getMesCardNo())) { + String code = this.cardNextCode(); + //验证此编码是否重复 + long count = this.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getMesCardNo, code)); + if (count > 0) { + code = this.cardNextCode(); + } + wo.setMesCardNo(code); + } + this.save(wo); + } + + private String cardNextCode() { + String codePattern = "RBMES" + getRand("YYMM", 0); + int randNum1 = (int) (Math.random() * (1000 - 100 + 1) + 100); + int randNum2 = (int) (Math.random() * (1000 - 100 + 1) + 100); + // 下个编码 + String code = codePattern + randNum1 + randNum2; + long count = this.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getMesCardNo, code)); + if (count > 0) { + code = cardNextCode(); + } + return code; + } + + public String getRand(String datePatten, int randLen) { + Calendar now = Calendar.getInstance(); + StringBuilder rtn = new StringBuilder(); + String st = ""; + + int t = now.get(Calendar.YEAR); + if (datePatten.contains("YY")) { + if (datePatten.contains("YYYY")) { + st = t + ""; + } else { + st = t + ""; + if (st.length() >= 2) { + st = st.substring(st.length() - 2); + } + } + } + rtn.append(st); + + if (datePatten.contains("MM")) { + t = now.get(Calendar.MONTH) + 1; + st = t < 10 ? "0" + t : "" + t; + rtn.append(st); + } + + if (datePatten.contains("DD")) { + t = now.get(Calendar.DAY_OF_MONTH); + st = t < 10 ? "0" + t : "" + t; + rtn.append(st); + } + + if (datePatten.contains("hh")) { + t = now.get(Calendar.HOUR_OF_DAY); + st = t < 10 ? "0" + t : "" + t; + rtn.append(st); + } + + if (datePatten.contains("mm")) { + t = now.get(Calendar.MINUTE); + st = t < 10 ? "0" + t : "" + t; + rtn.append(st); + } + + if (datePatten.contains("ss")) { + t = now.get(Calendar.SECOND); + st = t < 10 ? "0" + t : "" + t; + rtn.append(st); + } + + if (datePatten.contains("ts")) { + t = now.get(Calendar.MILLISECOND); + if (t < 10) { + st = "00" + t; + } else if (t < 100) { + st = "0" + t; + } else { + st = "" + t; + } + rtn.append(st); + } + + rtn.append(randSn(randLen)); + return rtn.toString(); + } + + private String randSn(int randNum) { + StringBuilder t = new StringBuilder(); + for(int i = 0; i < randNum; ++i) { + double dblRnd = Math.random() * 10.0; + int intRnd = (int)dblRnd; + t.append(intRnd); + } + return t.toString(); + } + + private void calculationWp(WorkOrder wo, List wpList) { + workPlanService.addWorkPlan(wo, wpList, null); + //计算上下级关系 + workPlanService.editPreviewNextWorkPlan(wo.getId()); + //获取当前工序及最后一道工序完成日期 + List list = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, wo.getId())); + WorkPlan wp = this.beforeOneWorkPlan(list); + if (wp == null) { + throw new ServiceException("无工序数据,请联系工艺员"); + } + if (wp.getFrontWpId() != null && WorkPlan.STATUS_NO_START.equals(wp.getStatus())) { + WorkPlan frontWp = workPlanService.getById(wp.getFrontWpId()); + frontWp.setStatus(WorkPlan.STATUS_WORK_OK); + frontWp.setFactEndTime(null); + wo.setWpId(frontWp.getId()); + } else { + wo.setWpId(wp.getId()); + } + this.updateById(wo); + } + + protected WorkPlan beforeOneWorkPlan(List list) { + WorkPlan rtn = null; + for (WorkPlan wp : list) { + if (WorkPlan.STATUS_COMPLETE > wp.getStatus()) { + rtn = wp; + break; + } + } + return rtn; + } + + private void saveProcessMarkRec(List oldList, List wpList) { + for (WorkPlan prWorkPlan : oldList) { + // 如果已经当前工序大于加工中, + if (prWorkPlan.getStatus() > WorkPlan.STATUS_START) { + MakeRec newPrMakeRec = null; + MacToolUse newPrMacToolUse = null; + PlanTest newPlanTest = null; + + for (WorkPlan workPlan : wpList) { + // 找到相同的工序 + if (prWorkPlan.getOrders().equals(workPlan.getOrders())) { + // 报工记录 + List makeRecList = makeRecService.list(Wrappers.lambdaQuery(MakeRec.class).eq(MakeRec::getWpId, prWorkPlan.getId())); + if (makeRecList != null && !makeRecList.isEmpty()) { + // 保存报工记录 + for (MakeRec prMakeRec : makeRecList) { + newPrMakeRec = new MakeRec(); + BeanUtils.copyProperties(prMakeRec, newPrMakeRec); + newPrMakeRec.setId(null); + newPrMakeRec.setWpId(workPlan.getId()); + makeRecService.save(newPrMakeRec); + } + } + // 绑定记录 + List processBingingRec = macToolUseService.list(Wrappers.lambdaQuery(MacToolUse.class).eq(MacToolUse::getWpId, prWorkPlan.getId())); + if (processBingingRec != null && !processBingingRec.isEmpty()) { + for (MacToolUse prMacToolUse : processBingingRec) { + newPrMacToolUse = new MacToolUse(); + BeanUtils.copyProperties(prMacToolUse, newPrMacToolUse); + newPrMacToolUse.setId(null); + newPrMacToolUse.setWpId(workPlan.getId()); + macToolUseService.save(newPrMacToolUse); + } + } + + // 检验记录 + InspectionTask inspectionTask = iInspectionTaskService.getPrWorkCheckByWpId(prWorkPlan.getId()); + if (inspectionTask != null && inspectionTask.getId() != null) { + InspectionTask newPrWorkCheck = new InspectionTask(); + BeanUtils.copyProperties(inspectionTask, newPrWorkCheck); + newPrWorkCheck.setId(null); + newPrWorkCheck.setWpId(workPlan.getId()); + iInspectionTaskService.save(inspectionTask); + } + + // 转试记录 + List prPlanTests = planTestService.list(Wrappers.lambdaQuery(PlanTest.class).eq(PlanTest::getWpId, prWorkPlan.getId())); + if (prPlanTests != null && !prPlanTests.isEmpty()) { + for (PlanTest planTest : prPlanTests) { + newPlanTest = new PlanTest(); + BeanUtils.copyProperties(planTest, newPlanTest); + newPlanTest.setId(null); + newPlanTest.setWpId(workPlan.getId()); + planTestService.save(newPlanTest); + } + } + } + } + } + } + } + + + private String nextMesCardNo(String mesCardNo) { + // 自增总长度 + int len = 2; + // 自增值 + int num = 0; + + // 编码模式 + String codePattern = mesCardNo; + + // 当前模式下最大编码 + WorkOrder workOrder = baseMapper.getMaxByMesCardNo(codePattern); + if (workOrder != null && workOrder.getMesCardNo().length() != codePattern.length()) { + num = Integer.parseInt(workOrder.getMesCardNo().substring(codePattern.length(), codePattern.length() + len)); + } + num++; + // 下个编码 + String code = codePattern + prefix(String.valueOf(num), "0", len); + + WorkOrder oldWorkOrder = baseMapper.getMaxByMesCardNo(code); + if (oldWorkOrder != null && oldWorkOrder.getId() != null) { + return this.nextMesCardNo(code); + } else { + return code; + } + } + + private String nextBatchNo(String ypCode, String batchNo) { + // 自增总长度 + int len = 2; + // 自增值 + int num = 0; + + // 编码模式 + String codePattern = batchNo + "-"; + + // 当前模式下最大编码 + WorkOrder workOrder = baseMapper.getMaxByBatchNo(codePattern, ypCode); + if (workOrder != null && workOrder.getBatchNo().length() != codePattern.length()) { + num = Integer.parseInt(workOrder.getBatchNo().substring(codePattern.length(), codePattern.length() + len)); + } + num++; + // 下个编码 + return codePattern + prefix(String.valueOf(num), "0", len); + } + + private String nextCardNo(String ypCode, String cardNo) { + // 自增总长度 + int len = 2; + // 自增值 + int num = 0; + + // 当前模式下最大编码 + WorkOrder workOrder = baseMapper.getMaxByCardNo(cardNo, ypCode); + + if (workOrder != null && workOrder.getCardNo().length() != cardNo.length()) { + num = Integer.parseInt(workOrder.getCardNo().substring(cardNo.length(), cardNo.length() + len)); + } + num++; + // 下个编码 + String code = cardNo + prefix(String.valueOf(num), "0", len); + + WorkOrder oldWorkOrder = baseMapper.getWorkOrderByCardNo(code, (short) -1); + if (oldWorkOrder != null && oldWorkOrder.getId() != null) { + return this.nextCardNo(ypCode, code); + } else { + return code; + } + } + + private String nextCode(String code) { + // 自增总长度 + int len = 3; + // 自增值 + int num = 0; + + // 编码模式 + String codePattern = code + "-R"; + // 当前模式下最大编码 + WorkOrder workOrder = baseMapper.getMaxByCodePattern(codePattern); + if (workOrder != null) { + num = Integer.parseInt(workOrder.getWoCode().substring(codePattern.length(), codePattern.length() + len)); + } + num++; + // 下个编码 + return codePattern + prefix(String.valueOf(num), "0", len); + } + + public String prefix(String stringToFix, String fixChar, int targetLen) { + int len = stringToFix.length(); + for(int i = 0; i < targetLen - len; i += fixChar.length()) { + stringToFix = fixChar + stringToFix; + } + return stringToFix; + } + +} 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 new file mode 100644 index 00000000..da368ec8 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java @@ -0,0 +1,216 @@ +package org.springblade.desk.produce.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; +import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; +import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity; +import org.springblade.desk.dashboard.pojo.entity.DsProcessProjectEntity; +import org.springblade.desk.dashboard.service.*; +import org.springblade.desk.produce.mapper.WorkPlanMapper; +import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.service.*; +import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.WorkPlanItem; +import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; +import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO; +import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; +import org.springblade.desk.quality.service.IInspectionTaskService; +import org.springblade.desk.quality.service.IPlanTestService; +import org.springblade.desk.quality.service.IWorkPlanItemService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 车间作业计划 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class WorkPlanServiceImpl extends BaseServiceImpl implements IWorkPlanService { + + private final IBsProcedureTeamService bsProcedureTeamService; + + private final IBsProcessSetService bsProcessSetService; + + private final IDsProcessService dsProcessService; + + private final IPrReworkProcessService prReworkProcessService; + + private final IWorkPlanItemService workPlanItemService; + + private final IInspectionTaskService inspectionTaskService; + + private final IWorkOrderRunService workOrderRunService; + + private final IDsProcessMeasuringToolService processMeasuringToolService; + + private final IDsProcessProjectService dsProcessProjectService; + + private final IMakeRecService makeRecService; + + private final IMacToolUseService macToolUseService; + + private final IPlanTestService planTestService; + @Override + public void addWorkPlan(WorkOrder wo, List wpList, List deleteIds) { + if (wpList != null) { + //特殊班组 + BsTeamSetEntity st; + List ptLst; + String str = ""; + for (WorkPlan wp : wpList) { + ObjectUtils.defaultIfNull(wp, new WorkPlan()); + wp.setWoId(wo.getId()); + wp.setTestQty(0); + wp.setScrapQty(0); + wp.setCreateTime(new Date()); + wp.setUnqualifiedQty(0); + //判定工序是否特殊工序,如果是,则附属班组存在值 + if (wp.getMakeTeam() != null) { + BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); + if (processSet != null && "1".equals(processSet.getIsSpecial()) && wp.getSubsidiaryTeam() == null && wp.getOcId() == null) { + ptLst = bsProcedureTeamService.findBsProcedureTeamByPpsId(processSet.getId()); + if (ptLst != null && ptLst.size() > 0) { + wp.setSubsidiaryTeam(ptLst.get(0).getTsId()); + } + } + } + if (wp.getOcId() != null) { + wp.setOem("1"); + } + this.save(wp); + if (wp.getPid() != null && wp.getRpId() != null) { + List miList = dsProcessProjectService.list(Wrappers.lambdaQuery(DsProcessProjectEntity.class).eq(DsProcessProjectEntity::getProcessId, wp.getPid())); + List gaugeList = processMeasuringToolService.list(Wrappers.lambdaQuery(DsProcessMeasuringToolEntity.class).eq(DsProcessMeasuringToolEntity::getProcessId, wp.getPid())); + if (!miList.isEmpty()) { + Map> miMap = null; + if (gaugeList != null) { + miMap = gaugeList.stream().collect(Collectors.groupingBy(DsProcessMeasuringToolEntity::getTrialNo)); + } + List checkItemList = new ArrayList<>(miList.size()); + for (DsProcessProjectEntity mi : miList) { + //zxh 20250514 正式工艺生成订单时,为wpi增加赋值工时数据,暂不考虑返修工艺 +// wpi = new WorkPlanItem(mi.getTrialNo(), mi.getProjectName(), mi.getProjectStandard(),mi.getProHours(),mi.getPrepareHours()); + WorkPlanItemVO wpi = new WorkPlanItemVO(); + wpi.setItemCode(mi.getTrialNo()); + wpi.setItemName(mi.getProjectName()); + wpi.setStandardName(mi.getProjectStandard()); + wpi.setHourQuota(mi.getPrepareHours()); + wpi.setHourPrepare(mi.getPrepareHours()); + if (miMap != null && !miMap.isEmpty()) { + List list = miMap.get(mi.getTrialNo()); + if (list != null && !list.isEmpty()) { + List itemList = new ArrayList<>(list.size()); + for (DsProcessMeasuringToolEntity toolEntity : list) { + WorkPlanItemDetailVO item = new WorkPlanItemDetailVO(); + item.setTestType("1".equals(toolEntity.getTestType()) ? "镀前" : "镀后"); + item.setRuleSize(toolEntity.getToolSize()); + item.setTools(toolEntity.getTool()); + item.setMtId(toolEntity.getId()); + itemList.add(item); + } + wpi.setWpItemDetailList(itemList); + } + } + checkItemList.add(wpi); + } + wp.setCheckItemList(checkItemList); + str = str + "工序号:" + wp.getOrders() + "订单id:" + wp.getId() + "试验项目个数:" + checkItemList.size() + "--"; + } + if (wp.getPid() != null) { + wp.setCruxProcess(dsProcessService.getById(wp.getPid()).getIsMain()); + } else if (wp.getRpId() != null) { + wp.setCruxProcess(prReworkProcessService.getById(wp.getRpId()).getCruxProcess()); + } + } + log.info(str); + //复制检验明细 + if (wp.getCheckItemList() != null && !wp.getCheckItemList().isEmpty()) { + workPlanItemService.saveCheckItem(wp, wp.getCheckItemList(), null, ""); + } + + //复制检验记录 + InspectionTask inspectionTask = wp.getInspectionTask(); + if (inspectionTask != null) { + InspectionTask newWc = new InspectionTask(); + BeanUtils.copyProperties(inspectionTask, newWc); + newWc.setId(null); + newWc.setWpId(wp.getId()); + newWc.setCheckQty(wo.getMakeQty()); + newWc.setQualifiedQty(wo.getMakeQty()); + WorkOrderRun workOrderRun = workOrderRunService.getById(wo.getWorId()); + inspectionTaskService.saveOrEdit(newWc, workOrderRun.getCreateUser()); + } + } + } + if (deleteIds != null) { + for (Long wpId : deleteIds) { + //删除报工记录 + makeRecService.remove(Wrappers.lambdaQuery(MakeRec.class).eq(MakeRec::getWpId, wpId)); + + //删除设备绑定记录 + macToolUseService.remove(Wrappers.lambdaQuery(MacToolUse.class).eq(MacToolUse::getWpId, wpId)); + + //删除加工明细 + workPlanItemService.remove(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId)); + + //删除检验记录 + inspectionTaskService.remove(Wrappers.lambdaQuery(InspectionTask.class).eq(InspectionTask::getWpId, wpId)); + + // todo 删除镀前出入库记录 +// List paList = prPlateAroundService.listByWpId(wpId); +// WorkPlan workPlan = this.getById(wpId); +// if (!paList.isEmpty()) { +// for (PrPlateAround prPlateAround : paList) { +// // 如果有出库记录,删除上序的入库记录 +// if (PrPlateAround.BEFORE_PLAN_OUT.equals(prPlateAround.getPaType())) { +// if (workPlan.getFrontWpId() != null) { +// PrPlateAround prPlateAround1 = prPlateAroundService.getPrPlateAround(prWorkPlan.getFrontWorkPlan().getWpId(), PrPlateAround.BEFORE_PLAT_IN); +// if (prPlateAround1 != null && prPlateAround1.getPaId() != null) { +// prPlateAroundService.delete(prPlateAround1.getPaId()); +// } +// } +// } +// prPlateAroundService.delete(prPlateAround.getPaId()); +// } +// } + + this.removeById(wpId); + } + } + } + + @Override + public void editPreviewNextWorkPlan(Long woId) { + List wpList = this.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, woId)); + + if (wpList == null || wpList.isEmpty()) { + return; + } + WorkPlan frontWp = null; + for (WorkPlan wp : wpList) { + // 先清空本工序的上下级任务,然后在赋值,防止最后一到工序的上下级关系混乱 + wp.setFrontWpId(null); + wp.setNextWpId(null); + wp.setCreateTime(new Date()); + wp.setFrontWpId(frontWp.getId()); + if (frontWp != null) { + frontWp.setNextWpId(wp.getId()); + } + frontWp = wp; + this.updateById(wp); + } + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/wrapper/WorkOrderWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/wrapper/WorkOrderWrapper.java new file mode 100644 index 00000000..559cc8f7 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/wrapper/WorkOrderWrapper.java @@ -0,0 +1,40 @@ +package org.springblade.desk.produce.wrapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.vo.WorkOrderVO; + +import java.util.List; +import java.util.Objects; + +/** + * 车间订单表 包装类,返回视图层所需的字段 + * + * @since 2026-1-19 + */ +public class WorkOrderWrapper extends BaseEntityWrapper { + + public static WorkOrderWrapper build() { + return new WorkOrderWrapper(); + } + + @Override + public WorkOrderVO entityVO(WorkOrder workOrder) { + WorkOrderVO workOrderVO = Objects.requireNonNull(BeanUtil.copyProperties(workOrder, WorkOrderVO.class)); +// User createUser = UserCache.getUser(workOrderVO.getCreateUser()); +// User updateUser = UserCache.getUser(workOrderVO.getUpdateUser()); +// workOrderVO.setCreateUserName(createUser.getName()); +// workOrderVO.setUpdateUserName(updateUser.getName()); + return workOrderVO; + } + + public IPage listWorkOrderVO(IPage pages) { + List workOrderVos = pages.getRecords(); + pages.setRecords(workOrderVos); + return pages; + } + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java index 802ff319..48d437ce 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.desk.quality.excel.WorkPlanItemDetailExcel; +import org.springblade.desk.quality.pojo.entity.WorkPlanItem; import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO; @@ -48,4 +49,14 @@ public interface IWorkPlanItemDetailService extends BaseService listByWorkPlanItemId(Long workPlanItemId); List listVOByWorkPlanItemId(Long workPlanItemId); + + /** + *

方法名: saveItemDetail

+ *

方法描述: 新增明细

+ * + * @param wpi 检验项 + * @param itemDetailList 明细 + * @param deleteIds 删除Id + */ + void saveItemDetail(WorkPlanItem wpi, List itemDetailList, List deleteIds); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java index 8162838c..8c4ac84d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java @@ -6,6 +6,7 @@ package org.springblade.desk.quality.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.quality.excel.WorkPlanItemExcel; import org.springblade.desk.quality.pojo.entity.WorkPlanItem; import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; @@ -47,4 +48,8 @@ public interface IWorkPlanItemService extends BaseService { List listByTaskId(Long taskId); List listVOByTaskId(Long taskId); + + void saveCheckItem(WorkPlan wp, List checkItemList, List deleteIds, String s); + + void deleteItem(List deleteIds); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemDetailServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemDetailServiceImpl.java index 6ed27b46..e78daf33 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemDetailServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemDetailServiceImpl.java @@ -13,6 +13,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity; +import org.springblade.desk.dashboard.service.IDsProcessMeasuringToolService; import org.springblade.desk.quality.excel.WorkPlanItemDetailExcel; import org.springblade.desk.quality.mapper.WorkPlanItemDetailMapper; import org.springblade.desk.quality.pojo.entity.WorkPlanItem; @@ -47,6 +49,8 @@ public class WorkPlanItemDetailServiceImpl extends BaseServiceImpl selectWorkPlanItemDetailPage(IPage page, WorkPlanItemDetailVO workPlanItemDetail) { return page.setRecords(baseMapper.selectWorkPlanItemDetailPage(page, workPlanItemDetail)); @@ -93,4 +97,28 @@ public class WorkPlanItemDetailServiceImpl extends BaseServiceImpl itemDetailList, List deleteIds) { + if (itemDetailList != null) { + itemDetailList.forEach(item -> { + WorkPlanItemDetail detail = new WorkPlanItemDetail(); + detail.setWorkPlanItemId(wpi.getId()); + detail.setTestType(item.getTestType()); + detail.setMtId(item.getMtId()); + detail.setRuleSize(item.getRuleSize()); + // 保存量具信息 + if (item.getMtId() == null) { + detail.setTools(item.getTools()); + }else { + DsProcessMeasuringToolEntity toolEntity = processMeasuringToolService.getById(item.getMtId()); + detail.setTools(toolEntity != null ? toolEntity.getTool() : null); + } + this.save(detail); + }); + } + if (deleteIds != null) { + baseMapper.deleteByIds(deleteIds); + } + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java index 17eb9f79..13207848 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java @@ -7,20 +7,25 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import io.jsonwebtoken.lang.Collections; import jakarta.annotation.Resource; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; 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.basic.util.IdUtil; +import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.quality.constant.InspectionItemConst; import org.springblade.desk.quality.excel.WorkPlanItemExcel; import org.springblade.desk.quality.mapper.WorkPlanItemMapper; import org.springblade.desk.quality.pojo.entity.InspectionItem; import org.springblade.desk.quality.pojo.entity.Standard; import org.springblade.desk.quality.pojo.entity.WorkPlanItem; +import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; import org.springblade.desk.quality.pojo.vo.InspectionItemVO; import org.springblade.desk.quality.pojo.vo.StandardVO; import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; @@ -137,4 +142,47 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl checkItemList, List deleteIds, String s) { + if (checkItemList != null) { + checkItemList.forEach(item -> { + WorkPlanItem wpi = new WorkPlanItem(); + wpi.setWpId(wp.getId()); + wpi.setCheckResult(item.getCheckResult()); + wpi.setItemName(item.getItemName()); + wpi.setItemCode(item.getItemCode()); + wpi.setStandardName(item.getStandardName()); + wpi.setCheckUserId(item.getCheckUserId()); + wpi.setCheckDate(item.getCheckDate()); + //zxh 20250514 wpi中增加工时字段后在所有wpi的save方法下增加工时字段的set方法 + //zxh 20250702 优化set + wpi.setHourQuota(item.getHourQuota() != null ? item.getHourQuota() : 0); + wpi.setHourPrepare(item.getHourPrepare() != null ? item.getHourPrepare() : 0); + this.save(wpi); + List itemDetails = wpItemDetailService.list(Wrappers.lambdaQuery(WorkPlanItemDetail.class).eq(WorkPlanItemDetail::getWorkPlanItemId, wpi.getId())); + if (Collections.isEmpty(itemDetails)) { + wpItemDetailService.saveItemDetail(wpi, itemDetails, null); + } + }); + } + //zxh 20241217 厚度检测已完成不允许删除 + if (deleteIds != null) { + for (Long deleteId : deleteIds) { + WorkPlanItem prWorkPlanItem = this.getById(deleteId); + if (prWorkPlanItem != null && prWorkPlanItem.getCheckUserId() != null && "厚度检测".equals(prWorkPlanItem.getItemName())) { + throw new ServiceException("厚度检测已完成,不允许删除"); + } + } + } + deleteItem(deleteIds); + } + + @Override + public void deleteItem(List deleteIds) { + if (deleteIds != null) { + baseMapper.deleteByIds(deleteIds); + wpItemDetailService.remove(Wrappers.lambdaQuery(WorkPlanItemDetail.class).in(WorkPlanItemDetail::getWorkPlanItemId, deleteIds)); + } + } } From 963fd52fb54df00d0756b45d3227c94f9e0d851c Mon Sep 17 00:00:00 2001 From: sugy <455459989@qq.com> Date: Wed, 21 Jan 2026 18:55:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?erp=E5=90=8C=E6=AD=A5=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erpdata/pojo/dto/table/Prtbasdef.java | 197 ++++++++++++++++++ .../erpdata/pojo/dto/table/Prtmsg.java | 1 + .../erpdata/pojo/dto/table/Rrbwoerptomes.java | 11 + .../erpdata/pojo/dto/view/MesRbPk.java | 32 +++ .../erpdata/pojo/dto/view/MesRbSjso.java | 26 +++ .../pojo/dto/view/MesRbSodelrecwx.java | 32 +++ .../pojo/dto/view/MesRbSodelreczg.java | 32 +++ .../pojo/dto/view/MesRbWxpromotion.java | 32 +++ .../erpdata/mapper/ErpMesRbSjsoMapper.java | 21 ++ .../erpdata/mapper/ErpMesRbSjsoMapper.xml | 9 + .../mapper/ErpMesRbSodelrecwxMapper.java | 21 ++ .../mapper/ErpMesRbSodelrecwxMapper.xml | 9 + .../mapper/ErpMesRbWxpromotionMapper.java | 22 ++ .../mapper/ErpMesRbWxpromotionMapper.xml | 9 + .../erpdata/service/IErpMesRbSjsoService.java | 14 ++ .../service/IErpMesRbSodelrecwxService.java | 14 ++ .../service/IErpMesRbWxpromotionService.java | 14 ++ .../service/impl/ErpMesRbSjsoServiceImpl.java | 28 +++ .../impl/ErpMesRbSodelrecwxServiceImpl.java | 26 +++ .../impl/ErpMesRbWxpromotionServiceImpl.java | 28 +++ 20 files changed, 578 insertions(+) create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSjsoService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSodelrecwxService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWxpromotionService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSjsoServiceImpl.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSodelrecwxServiceImpl.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWxpromotionServiceImpl.java diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtbasdef.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtbasdef.java index c91cf438..af755a22 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtbasdef.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtbasdef.java @@ -1,10 +1,207 @@ package org.springblade.erpdata.pojo.dto.table; +import lombok.Data; + /** * 对应ERP中表 t_prtbasdef * * @author lqk * @date 2026-01-16 17:32 */ +@Data public class Prtbasdef { + + + private String prtno; //物料号 + private String prteflag; //工程数据标记 + private String prtchgrsn; //更改原因 + private String prttype; //物料类型 + private String prtreqtype; //需求类型 + private String prtorplc; //订货策略码 + private String prtlzplc; //批量方针 + private String prtabc; //库存管理abc码 + private String prtinvprtct; //物料保管特征码 + private String prtsoflag; //物料加工路线通过车间数的标记 + private String prtcotype; //自制/外协类型 + private String prtchkflag; //物料检验标记 + private String prtageflag; //物料老化筛选标记 + private String gtroutflag; //采用成组工艺标记 + private String prtlottype; //批次合并标记 + private String prtcsttype; //限制发货标记 + private String prtum; //erp度量单位 + private String prtwtum; //重量计量单位 + private String prtui; //pdm度量单位 + private String prtpurity; //表面积 + private String prtwt; //重量(毛重), 图纸标明该件的重量 + private String prturat; //存储单位折算系数 + private String prtrevedit; //版本号 + private String prodline; //产品大类(产品系列) + private String prtclass; //1 :线簧孔 0:无标识 2针孔 3 连帽线 4 花键线 5 ym线 6方盘线 7 异型壳体线 8 针孔线 9 复合线 10 压铸件 (3200) 11~18精益生产线a~h(3100) 20 注射件 21 橡胶件 22 热固件 23 jy 24 y50 25 xc 及派生 26 民品大批量 27 ct杂项 28 f/yf 29 装爪类 30 装针类 31 装孔类 32 灌胶粘结类 33 绞针类 34 铆接 35 同轴产品 36 滤波产品 37 绞针产品 38 线缆产品 39 普通跳线 40 多芯缆 41 圆形粘接部件 42 + private String prtdesc; //物料名称 + private String mtltmrk; //物料型号/材料牌号 + private String mtlspcf; //腔数 + private String prtstd; //技术条件 + private String mtlstat; //交货状态 + private String prtgtcc; //存储华为用户型号 + private String prtmdept; //主制车间 + private String splytype; //供应商认证类型 + private String splycode; //首选供应商码 + private String mtldmsw; //毛料宽度(内径) + private String mtldmst; //毛料厚(高)度,外径 + private String mtldmsl; //毛料长度 + private String mtlsgrt; //材料密度(比重) + private String prtqtyraw; //毛料物料数 + private String prtmaxtim; //最长存储时间 + private String prtovertim; //物料准许的积压期限 + private String prtrechktim; //物资复验间隔期或工模具复检周期 + private String prtoiltim; //油封间隔期 + private String mtlrcdchgdat; //材料数据更改日期 + private String rcdchgdatd; //设计数据记录更改日期 + private String rcdchgdatm; //物料存储数据记录更改日期 + private String rcdchgdatp; //设置发货限制时间 + private String rcdchgdatc; //取消发货限制时间 + private String rcdchgctrlerd; //设计数据更改人 + private String rcdchgctrlerm; //物料存储数据更改人 + private String mtlctrler; //材料数据更改人 + private String rcdchgctrlerp; //计划数据更改人 + private String rcdchgctrlerc; //限制发货更改人 + private String scheduler; //采购计划员 + private String planner; //生产调度员 + private String designer; //产品数据设计员 + private String prtmengr; //主管工艺员,十五车间作为调度员使用 + private String prtmint; //mps、mrp或pur计划重复投入的最小合并周期 + private String pkmaxcount; //配套允许最大批次数 + private String makespeed; //验证类型-材料部件 + private String prtlt; //提前期 + private String prtsflt; //安全提前期 + private String prtaclt; //备料提前期 + private String prtcmlt; //累计提前期 + private String bas_prtcmlt; //理论累计提前期 + private String prtscprt; //物料废品系数 + private String prtssqty; //安全库存 + private String prtavelz; //平均批量 + private String prtopnt; //订货点 + private String prtlz; //批量 + private String prtupqty; //最高库存量 + private String prtfalt; //总装配提前提 + private String invqyqty; //入检取样消耗量 + private String checkhgl; //平均入检合格率 + private String selecthgl; //平均筛选合格率 + private String invshl; //平均库存损耗率 + private String invpyl; //排料利用率 + private String mtllyl; //平均材料下料利用率 + private String prtlprc; //计划价 + private String prtstdcst; //标准成本 + private String prtphlcst; //永续成本价 + private String prtothcst; //其它费用 + private String invttlavqty; //二级库总可用数量 + private String invttlqtqty; //总合格数量 + private String invttlresqty; //总限用数量 + private String invttlwcqty; //总待检数量 + private String invttlwsqty; //总报废数量 + private String invttlalqty; //已分配数量 + private String invttlelqty; //二级库已分配数量 + private String invttlbaqty; //缺件数量 + private String invttleaqty; //二级库缺件数量 + private String bas_prtlt; //装配周期 + private String prdpercent; //未用 + private String delaynum; //未用 + private String aimstock; //未用 + private String product; //生产商 + private String prtbaslt; //固定提前期 + private String prtlotlt; //可变提前期 + private String bas_prtbaslt; //计划固定提前期 + private String bas_prtlotlt; //计划可变提前期 + private String prtllc; //低位码 + private String calprtlt; //重新记算提前期标记 + private String prtcode; //图纸号 + private String prttech; //文档说明书编号 + private String releaseno; //版本号 + private String bomchksign; //bom审核标记 + private String sjflag; //散件标记:0-成批件,1-散件 + private String invttlchgqty; //工模具使用,总修理数量 + private String shflag; //''1''-涂色环 + private String prtdescr; //对零件的描述,十五车间用 + private String schemer; //生产计划员 + private String prtprodtim; //生产周期 + private String bomchkman; //bom审核人 + private String bomchkdate; //bom审核日期 + private String mdmchksign; //基础数据审核标记 + private String mdmchkman; //基础数据审核人 + private String mdmchkdate; //基础数据审核日期 + private String prtlotno; //物资质量等级 + private String noprtpqty; //是否取消材料定额,0-否,1-是 2007年2月28日lixin增加,mrpplang中用 + private String prtljclass; //零件分类 + private String cplb; //产品类别 + private String purcode; //物资采购员,2008/05/07 + private String jmaterfee; //军品材料费,十五车间用 + private String mmaterfee; //民品材料费,十五车间用 + private String zpcoef; //折批系数,十五车间用 + private String oldprtno; //erp旧物料号 + private String vmiflag; //vmi物料标记 + private String vmiprtssqty; //vmi安全库存 + private String vmiprtlz; //vmi采购批量 + private String processline; //pdm工艺路线 + private String drwpartno; //pdm图纸编码 + private String warctlr; //物资保管员 + private String wzbomchksign; //bom材料定额审核标记 + private String chgstrucflg; //结构调整标记:0-否,1-是 + private String mtnman; //线黄孔维护人 15a用 + private String mtndate; //线黄孔维护日期 15a用 + private String guke; //顾客(审签军代表姓名) + private String fddate; //首次订货日期(计算新品统计) + private String routremark; //工艺规程号 + private String priority; //优先等级 + private String confcode1; //第一配置码 + private String maxusetime; //工装最大使用次数 + private String parametera; //pdm参数a2010/09/24 + private String volume; //pdm体积2010/09/24 + private String routruledat; //工艺规程维护日期 + private String reroutruleno; //工艺规程变更单号 + private String reroutruledat; //工艺规程变更单维护日期 + private String typeflag; //打子件标识 0 :非打字件 1:打字件 + private String wzprttype; //物资物料标记a,b,c,d.... + private String chkcycle; //检验周期 + private String plndept; //计划部门 + private String part_link; //超级链接 + private String partview; //视图名称 + private String classpath; //分类路径名 + private String classpathid; //分类路径id + private String matsmallclassify; //小类(材料部件) + private String currentflag; //通用属性 + private String remark; //注释 + private String producedept; //制造部门 + private String groupcode; //集团公司编码 + private String cgzmark; //关重件标识 + private String checkreport; //是否出验收报告标记 0 :否 1:是 + private String simparts; //相似零件 + private String patternlev; //模具等级--分类属性 + private String rcdchgrsn; //发货限制原因备注 + private String prtlev; //零件分级,外协用 + private String color; //颜色 + private String length; //长度 + private String cladfilm; //镀层的最终镀种 + private String xdflag; //暂停下计划标记 + private String xddat; //暂停下计划时间 + private String xdopendat; //暂停下计划解限时间 + private String xdrsn; //暂停下计划原因 + private String xddoccode; //暂停下计划相关技术单号 + private String xdman; //暂停下计划人员 + private String newestpro; //全新产品 + private String yfitemno; //研发项目编号(零部件、工装部件) + private String dataflag; //pdm数据标记:0-erp,1-pdm + private String matbigclassify; //材料大类,从pdm发布 + private String materialtype; //材料类别 + private String standtype; //标准类型 + private String sparemodel; //备料型号 + private String projectlevel; //项目级别 + private String firstuserpp; //首用工艺号-材料部件 + private String prioritytype; //优选类型-材料部件 + private String metacognition; //对称件-零部件 + private String orignofmaterial; //材料原产地-材料部件 + private String modelremark; //模具备注(零部件) + private String moulddemand; //模具需求(零部件) + private String productapparea; //产品应用领域(零部件) + private String etlid; //guid,etl使用的唯一性索引列 + private String maturitygrade; //成熟度(零部件) } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtmsg.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtmsg.java index 2c6e9d57..e916b091 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtmsg.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Prtmsg.java @@ -7,4 +7,5 @@ package org.springblade.erpdata.pojo.dto.table; * @date 2026-01-16 17:32 */ public class Prtmsg { + } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java index 6949db7c..5fdd7ecb 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java @@ -1,10 +1,21 @@ package org.springblade.erpdata.pojo.dto.table; +import lombok.Data; + /** * 对应ERP中表 t_rbwoerptomes * * @author lqk * @date 2026-01-16 17:32 */ +@Data public class Rrbwoerptomes { + + private String wono; //工作订单号 + + private String process_line_desc; //工艺路线明细 + + private String readtime; //读取时间 + + private String read_content; //读取内容 } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbPk.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbPk.java index 1cda4ef6..6a99e3c1 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbPk.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbPk.java @@ -1,10 +1,42 @@ package org.springblade.erpdata.pojo.dto.view; +import lombok.Data; + /** * 对应ERP中视图 v_mes_rb_pk * * @author lqk * @date 2026-01-16 17:34 */ +@Data public class MesRbPk { + + private String wono; //车间订单号(外协订单号) + + private String splcode; //批次号 + + private String liverkey; //路线卡号(外协交件单号) + + private String prtno; //物料号 + private String prtlotno; //质量等级 + private String mtltmrk; //型号 + private String woporqty; //需求数量 + private String wopordat; //下达时间 + + private String yzdd; //工作订单 + private String yjgx; //一级工序(B号) + private String rtudept; //接收部门 + private String updatetime; //转出时间(检验状态改为合格的时间) + private String wdavlqty; //转出数量(实收数量) + private String plndept; //计划部门代码 + private String usedept; //使用部门代码 + private String hbm; //计划部门 + private String ybm; //使用部门 + private String WOREQDAT; //需求日期 + private String jhy; //计划员 + private String bgy; //保管员 + private String processlinedesc; //一级工艺路线 + private String kdofplat; //镀种 + private String prtmeterial; //材料 + private String rigidity; //硬度 } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSjso.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSjso.java index f90343db..a907b246 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSjso.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSjso.java @@ -1,10 +1,36 @@ package org.springblade.erpdata.pojo.dto.view; +import lombok.Data; + /** * 对应ERP中视图 v_mes_rb_sjso * * @author lqk * @date 2026-01-16 17:34 */ +@Data public class MesRbSjso { + + private String sono; //车间订单号 + private String fj_splcode; //批次号 + private String barcodeno; //路线卡号(配套单号) + private String prtno; //零件号 + private String prtlotno; //生产标识 + private String mtltmrk; //型号 + private String woporqty; //需求数量 + private String wopordat; //下达时间 + private String wono; //工作订单号 + private String prtmdept; //接收部门(主制部门) + private String fj_pkavqty; //转出数量(父件配套数量) + private String lewdeptcode; //转出部门代码 + private String plndept; //计划部门代码 + private String usedept; //使用部门代码 + private String woreqdat; //需求日期 + private String processlinedesc; //一级工艺路线 + private String kdofplat; //镀种 + private String prtmeterial; //材料 + private String rigidity; //硬度 + private String warctlr; + private String planner; + private String username; } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelrecwx.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelrecwx.java index cfcfcddb..736b5919 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelrecwx.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelrecwx.java @@ -1,10 +1,42 @@ package org.springblade.erpdata.pojo.dto.view; +import lombok.Data; + /** * 对应ERP中视图 v_mes_rb_sodelrecwx * * @author lqk * @date 2026-01-16 17:34 */ +@Data public class MesRbSodelrecwx { + + private String wono; //车间订单号(外协订单号) + + private String splcode; //批次号 + + private String liverkey; //路线卡号(外协交件单号) + + private String prtno; //物料号 + private String prtlotno; //质量等级 + private String mtltmrk; //型号 + private String woporqty; //需求数量 + private String wopordat; //下达时间 + + private String zdd; //工作订单 + private String jgx; //一级工序(B号) + private String rtudept; //接收部门 + private String updatetime; //转出时间(检验状态改为合格的时间) + private String wdavlqty; //转出数量(实收数量) + private String plndept; //计划部门代码 + private String usedept; //使用部门代码 + private String hbm; //计划部门 + private String ybm; //使用部门 + private String WOREQDAT; //需求日期 + private String hy; //计划员 + private String gy; //保管员 + private String processlinedesc; //一级工艺路线 + private String kdofplat; //镀种 + private String prtmeterial; //材料 + private String rigidity; //硬度 } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelreczg.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelreczg.java index 41894107..e3d26697 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelreczg.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbSodelreczg.java @@ -1,10 +1,42 @@ package org.springblade.erpdata.pojo.dto.view; +import lombok.Data; + /** * 对应ERP中视图 v_mes_rb_sodelreczg * * @author lqk * @date 2026-01-16 17:34 */ +@Data public class MesRbSodelreczg { + + private String wono; //车间订单号(外协订单号) + + private String splcode; //批次号 + + private String liverkey; //路线卡号(外协交件单号) + + private String prtno; //物料号 + private String prtlotno; //质量等级 + private String mtltmrk; //型号 + private String woporqty; //需求数量 + private String wopordat; //下达时间 + + private String zdd; //工作订单 + private String jgx; //一级工序(B号) + private String rtudept; //接收部门 + private String updatetime; //转出时间(检验状态改为合格的时间) + private String wdavlqty; //转出数量(实收数量) + private String plndept; //计划部门代码 + private String usedept; //使用部门代码 + private String hbm; //计划部门 + private String ybm; //使用部门 + private String WOREQDAT; //需求日期 + private String hy; //计划员 + private String gy; //保管员 + private String processlinedesc; //一级工艺路线 + private String kdofplat; //镀种 + private String prtmeterial; //材料 + private String rigidity; //硬度 } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWxpromotion.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWxpromotion.java index ff1263e1..5c26239b 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWxpromotion.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWxpromotion.java @@ -1,10 +1,42 @@ package org.springblade.erpdata.pojo.dto.view; +import lombok.Data; + /** * 对应ERP中视图 v_mes_rb_wxpromotion * * @author lqk * @date 2026-01-16 17:34 */ +@Data public class MesRbWxpromotion { + + private String wono; //车间订单号(外协订单号) + + private String splcode; //批次号 + + private String liverkey; //路线卡号(外协交件单号) + + private String prtno; //物料号 + private String prtlotno; //质量等级 + private String mtltmrk; //型号 + private String woporqty; //需求数量 + private String wopordat; //下达时间 + + private String zdd; //工作订单 + private String jgx; //一级工序(B号) + private String rtudept; //接收部门 + private String updatetime; //转出时间(检验状态改为合格的时间) + private String wdavlqty; //转出数量(实收数量) + private String plndept; //计划部门代码 + private String usedept; //使用部门代码 + private String hbm; //计划部门 + private String ybm; //使用部门 + private String WOREQDAT; //需求日期 + private String hy; //计划员 + private String gy; //保管员 + private String processlinedesc; //一级工艺路线 + private String kdofplat; //镀种 + private String prtmeterial; //材料 + private String rigidity; //硬度 } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.java new file mode 100644 index 00000000..26055cf9 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.springblade.erpdata.pojo.dto.view.MesRbSjso; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpMesRbSjsoMapper extends Mapper { + + /** + * 从ERP视图中获取要同步的推进计划转工单 + * + * @return + */ + List getMesRbSjsoErpList(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.xml new file mode 100644 index 00000000..de1cee7b --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.java new file mode 100644 index 00000000..c7803e2a --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.springblade.erpdata.pojo.dto.view.MesRbSodelrecwx; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpMesRbSodelrecwxMapper extends Mapper { + + /** + * 从ERP视图中获取要同步的推进计划转工单 + * + * @return + */ + List getMesRbSodelrecwxErpList(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.xml new file mode 100644 index 00000000..6ba44421 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.java new file mode 100644 index 00000000..d24fd4a9 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.java @@ -0,0 +1,22 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.springblade.erpdata.pojo.dto.view.MesRbSjso; +import org.springblade.erpdata.pojo.dto.view.MesRbWxpromotion; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpMesRbWxpromotionMapper extends Mapper { + + /** + * 从ERP视图中获取要同步的推进计划转工单 + * + * @return + */ + List getMesRbWxpromotionErpList(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.xml new file mode 100644 index 00000000..40451998 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSjsoService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSjsoService.java new file mode 100644 index 00000000..6d8b5797 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSjsoService.java @@ -0,0 +1,14 @@ +package org.springblade.erpdata.service; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpMesRbSjsoService { + + /** + * 同步推进计划转工单 + */ + void synMesRbSjso(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSodelrecwxService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSodelrecwxService.java new file mode 100644 index 00000000..3dec49ab --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSodelrecwxService.java @@ -0,0 +1,14 @@ +package org.springblade.erpdata.service; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpMesRbSodelrecwxService { + + /** + * 同步数据 + */ + void synMesRbSodelrecwx(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWxpromotionService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWxpromotionService.java new file mode 100644 index 00000000..3bbda291 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWxpromotionService.java @@ -0,0 +1,14 @@ +package org.springblade.erpdata.service; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpMesRbWxpromotionService { + + /** + * 同步数据 + */ + void synMesRbWxpromotion(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSjsoServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSjsoServiceImpl.java new file mode 100644 index 00000000..f745a897 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSjsoServiceImpl.java @@ -0,0 +1,28 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.order.feign.IApsClient; +import org.springblade.erpdata.mapper.ErpMesRbSjsoMapper; +import org.springblade.erpdata.service.IErpMesRbSjsoService; +import org.springframework.stereotype.Service; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpMesRbSjsoServiceImpl implements IErpMesRbSjsoService { + + private final ErpMesRbSjsoMapper mesRbSjsoMapper; + + private final IApsClient apsClient; + + + @Override + public void synMesRbSjso() { + + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSodelrecwxServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSodelrecwxServiceImpl.java new file mode 100644 index 00000000..21ccd291 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSodelrecwxServiceImpl.java @@ -0,0 +1,26 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.order.feign.IApsClient; +import org.springblade.erpdata.mapper.ErpMesRbSodelrecwxMapper; +import org.springblade.erpdata.service.IErpMesRbSodelrecwxService; +import org.springframework.stereotype.Service; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpMesRbSodelrecwxServiceImpl implements IErpMesRbSodelrecwxService { + + private final ErpMesRbSodelrecwxMapper mesRbSodelrecwxMapper; + + private final IApsClient apsClient; + @Override + public void synMesRbSodelrecwx() { + + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWxpromotionServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWxpromotionServiceImpl.java new file mode 100644 index 00000000..1481ade5 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWxpromotionServiceImpl.java @@ -0,0 +1,28 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.order.feign.IApsClient; +import org.springblade.erpdata.mapper.ErpMesRbWxpromotionMapper; +import org.springblade.erpdata.service.IErpMesRbWxpromotionService; +import org.springframework.stereotype.Service; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpMesRbWxpromotionServiceImpl implements IErpMesRbWxpromotionService { + + private final ErpMesRbWxpromotionMapper mesRbWxpromotionMapper; + + private final IApsClient apsClient; + + + @Override + public void synMesRbWxpromotion() { + + } +}