parent
3f7d4248ed
commit
dd8172de62
45 changed files with 2664 additions and 11 deletions
@ -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; |
||||||
|
} |
||||||
@ -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; |
||||||
|
|
||||||
|
} |
||||||
@ -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; |
||||||
|
|
||||||
|
} |
||||||
@ -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; |
||||||
|
|
||||||
|
} |
||||||
@ -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<Short, String> runStatusMap = new HashMap<>(11); |
||||||
|
public static Map<Short, String> priorityMap = new HashMap<Short, String>(5); |
||||||
|
public static Map<Short, String> approvalStatusMap = new HashMap<Short, String>(4); |
||||||
|
public static Map<Short, String> pickingStatusMap = new HashMap<Short, String>(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; |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -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<Short, String> 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; |
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkPlanItem> 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; |
||||||
|
|
||||||
|
} |
||||||
@ -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; |
||||||
|
|
||||||
|
} |
||||||
@ -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; |
||||||
|
|
||||||
|
} |
||||||
@ -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<IPage<WorkOrderVO>> page(WorkOrderDTO workOrder, Query query) { |
||||||
|
IPage<WorkOrderVO> 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<BatchPrepareVO> 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)); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -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<BsProcedureTeam> { |
||||||
|
|
||||||
|
List<BsProcedureTeam> findBsProcedureTeamByPpsId(Long id); |
||||||
|
} |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||||
|
<mapper namespace="org.springblade.desk.produce.mapper.BsProcedureTeamMapper"> |
||||||
|
|
||||||
|
<select id="findBsProcedureTeamByPpsId" resultType="org.springblade.desk.produce.pojo.entity.BsProcedureTeam"> |
||||||
|
select a.* from bs_procedure_team a |
||||||
|
inner join bs_procedure_set b on a.PPS_ID= b.PPS_ID |
||||||
|
inner join BS_TEAM_SET c on a.TS_ID = c.TS_ID |
||||||
|
where b.pps_id = #{id} and c.DELETED = 0 order by c.TS_ID |
||||||
|
</select> |
||||||
|
</mapper> |
||||||
@ -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<MacToolUse> { |
||||||
|
|
||||||
|
} |
||||||
@ -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<MakeRec> { |
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkOrder> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义分页 |
||||||
|
* |
||||||
|
* @param page 分页参数 |
||||||
|
* @param workOrder 查询参数 |
||||||
|
* @return List<WorkOrderVO> |
||||||
|
*/ |
||||||
|
List<WorkOrderVO> 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); |
||||||
|
} |
||||||
@ -0,0 +1,165 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||||
|
<mapper namespace="org.springblade.desk.produce.mapper.WorkOrderMapper"> |
||||||
|
|
||||||
|
<!-- 通用查询映射结果 --> |
||||||
|
<resultMap id="workOrderResultMap" type="org.springblade.desk.produce.pojo.entity.WorkOrder"> |
||||||
|
<result column="TS_ID" property="tsId"/> |
||||||
|
<result column="OC_ID" property="ocId"/> |
||||||
|
<result column="TEST_QTY" property="testQty"/> |
||||||
|
<result column="LOSS_QTY" property="lossQty"/> |
||||||
|
<result column="PLATE_SINGLE_QUOTA" property="plateSingleQuota"/> |
||||||
|
<result column="PUSH_FLAG" property="pushFlag"/> |
||||||
|
<result column="PLATE_GOODS_CODE" property="plateGoodsCode"/> |
||||||
|
<result column="PGR_ID" property="pgrId"/> |
||||||
|
<result column="QUOTA_EXCEPTIONAL" property="quotaExceptional"/> |
||||||
|
<result column="MES_CARD_NO" property="mesCardNo"/> |
||||||
|
<result column="RECEPTION_TIME" property="receptionTime"/> |
||||||
|
<result column="OUT_TIME" property="outTime"/> |
||||||
|
<result column="COLLABORATE" property="collaborate"/> |
||||||
|
<result column="LAST_INSTORE_TIME" property="lastInstoreTime"/> |
||||||
|
<result column="MEET_CYCLE" property="meetCycle"/> |
||||||
|
<result column="MEMO" property="memo"/> |
||||||
|
<result column="SCHED_STATUS" property="schedStatus"/> |
||||||
|
<result column="READ_STATUS" property="readStatus"/> |
||||||
|
<result column="QC_REWORK_CODE" property="qcReworkCode"/> |
||||||
|
<result column="OLD_RUN_STATUS" property="oldRunStatus"/> |
||||||
|
<result column="RE_IN_STORE" property="reInStore"/> |
||||||
|
<result column="CREATE_USER" property="createUser"/> |
||||||
|
<result column="CREATE_DEPT" property="createDept"/> |
||||||
|
<result column="CREATE_TIME" property="createTime"/> |
||||||
|
<result column="UPDATE_USER" property="updateUser"/> |
||||||
|
<result column="UPDATE_TIME" property="updateTime"/> |
||||||
|
<result column="STATUS" property="status"/> |
||||||
|
<result column="IS_DELETED" property="isDeleted"/> |
||||||
|
<result column="ID" property="id"/> |
||||||
|
<result column="YO_ID" property="yoId"/> |
||||||
|
<result column="CARD_NO" property="cardNo"/> |
||||||
|
<result column="BATCH_NO" property="batchNo"/> |
||||||
|
<result column="WO_CODE" property="woCode"/> |
||||||
|
<result column="MAKE_QTY" property="makeQty"/> |
||||||
|
<result column="PLAN_END_DATE" property="planEndDate"/> |
||||||
|
<result column="WP_ID" property="wpId"/> |
||||||
|
<result column="INVENTORY_QTY" property="inventoryQty"/> |
||||||
|
<result column="RUN_STATUS" property="runStatus"/> |
||||||
|
<result column="PICKING_STATUS" property="pickingStatus"/> |
||||||
|
<result column="OEM" property="oem"/> |
||||||
|
<result column="PRIORITY" property="priority"/> |
||||||
|
<result column="WOR_ID" property="worId"/> |
||||||
|
<result column="APPROVAL_STATUS" property="approvalStatus"/> |
||||||
|
<result column="SCRAP_QTY" property="scrapQty"/> |
||||||
|
<result column="OEM_OUT" property="oemOut"/> |
||||||
|
<result column="OEM_TYPE" property="oemType"/> |
||||||
|
<result column="REWORK_CODE" property="reworkCode"/> |
||||||
|
<result column="REWORK_NO" property="reworkNo"/> |
||||||
|
<result column="PLANNER" property="planner"/> |
||||||
|
<result column="DISPATCHER" property="dispatcher"/> |
||||||
|
<result column="PRINT_FLAG" property="printFlag"/> |
||||||
|
<result column="SEND_DOWN_TIME" property="sendDownTime"/> |
||||||
|
<result column="PRINT_MAN" property="printMan"/> |
||||||
|
<result column="PUT_STORE_TIME" property="putStoreTime"/> |
||||||
|
<result column="REWORK_MEMO" property="reworkMemo"/> |
||||||
|
<result column="DEMAND_DATE" property="demandDate"/> |
||||||
|
<result column="PRINT_TIME" property="printTime"/> |
||||||
|
<result column="PRINT_CODE" property="printCode"/> |
||||||
|
<result column="HANDOVER_TIME" property="handoverTime"/> |
||||||
|
<result column="CLOSE_TIME" property="closeTime"/> |
||||||
|
<result column="CLOSE_MAN" property="closeMan"/> |
||||||
|
</resultMap> |
||||||
|
|
||||||
|
<select id="selectWorkOrderPage" resultMap="workOrderResultMap"> |
||||||
|
SELECT |
||||||
|
mwo.TS_ID tsId, |
||||||
|
mwo.OC_ID ocId, |
||||||
|
mwp.MAKE_TEAM makeTeam, |
||||||
|
mwp.OC_ID ppsOcId, |
||||||
|
mwp.PPS_ID ppsId, |
||||||
|
mwo.SEND_DOWN_TIME sendDownTime, |
||||||
|
mwo.WO_CODE woCode, |
||||||
|
myo.YO_CODE yoCode, |
||||||
|
myo.YP_CODE ypCode, |
||||||
|
mwo.QC_REWORK_CODE qcReworkCode, |
||||||
|
myo.PART_CODE partCode, |
||||||
|
mwo.BATCH_NO batchNo, |
||||||
|
mwo.MAKE_QTY makeQty, |
||||||
|
mwo.RUN_STATUS runStatus, |
||||||
|
mwo.OEM oem, |
||||||
|
myo.PRODUCT_IDENT productIdent, |
||||||
|
myo.PART_NAME partName, |
||||||
|
mwo.CARD_NO cardNo, |
||||||
|
mwo.MES_CARD_NO mesCardNo, |
||||||
|
myo.PLATE plate, |
||||||
|
myo.PRODUCT_TYPE productType, |
||||||
|
mwo.PRIORITY priority, |
||||||
|
myo.USE_DEPT useDept, |
||||||
|
ROUND(myo.YP_AREA * mwo.MAKE_QTY,10) totalArea, |
||||||
|
myo.YP_AREA area, |
||||||
|
mwo.DEMAND_DATE demandDate, |
||||||
|
mwo.MEET_CYCLE meetCycle, |
||||||
|
mwo.dispatcher, |
||||||
|
mwo.PLAN_END_DATE planEndDate, |
||||||
|
mwo.PUT_STORE_TIME putStoreTime, |
||||||
|
mwo.INVENTORY_QTY inventoryQty, |
||||||
|
mwo.MAKE_QTY - mwo.INVENTORY_QTY notInQty, |
||||||
|
nmwp.PPS_ID ppsIdNext, |
||||||
|
nmwp.MAKE_TEAM makeTeamNext, |
||||||
|
mwo.PICKING_STATUS pickingStatus, |
||||||
|
myo.RECEIVE_USER receiveUser, |
||||||
|
mwo.COLLABORATE collaborate, |
||||||
|
mwo.MEMO memo |
||||||
|
FROM MES_WORK_ORDER mwo |
||||||
|
LEFT JOIN MES_YIELD_ORDER myo ON mwo.YO_ID = myo.ID |
||||||
|
LEFT JOIN MES_WORK_PLAN mwp ON mwo.WP_ID = mwp.ID |
||||||
|
LEFT JOIN MES_WORK_PLAN nmwp ON mwp.NEXT_WP_ID = nmwp.ID |
||||||
|
<where> |
||||||
|
is_deleted = 0 |
||||||
|
<if test="workOrder.runStatus != null and workOrder.runStatus != ''"> |
||||||
|
AND mwo.RUN_STATUS = #{workOrder.runStatus} |
||||||
|
</if> |
||||||
|
<if test="workOrder.cardNo != null and workOrder.cardNo != ''"> |
||||||
|
AND mwo.CARD_NO LIKE concat(concat('%', #{workOrder.cardNo}),'%') |
||||||
|
</if> |
||||||
|
<if test="workOrder.partCode != null and workOrder.partCode != ''"> |
||||||
|
AND myo.PART_CODE LIKE concat(concat('%', #{workOrder.partCode}),'%') |
||||||
|
</if> |
||||||
|
<if test="workOrder.batchNo != null and workOrder.batchNo != ''"> |
||||||
|
AND mwo.BATCH_NO LIKE concat(concat('%', #{workOrder.batchNo}),'%') |
||||||
|
</if> |
||||||
|
<if test="workOrder.woCode != null and workOrder.woCode != ''"> |
||||||
|
AND mwo.WO_CODE LIKE concat(concat('%', #{workOrder.woCode}),'%') |
||||||
|
</if> |
||||||
|
<if test="workOrder.yoCode != null and workOrder.yoCode != ''"> |
||||||
|
AND myo.YO_CODE LIKE concat(concat('%', #{workOrder.yoCode}),'%') |
||||||
|
</if> |
||||||
|
</where> |
||||||
|
ORDER BY mwo.CREATE_TIME DESC |
||||||
|
</select> |
||||||
|
<select id="getMaxByCodePattern" resultType="org.springblade.desk.produce.pojo.entity.WorkOrder"> |
||||||
|
SELECT * FROM (select * from MES_WORK_ORDER where WO_CODE like concat(#{codePattern},'%') order by WO_CODE desc) WHERE ROWNUM = 1 |
||||||
|
</select> |
||||||
|
<select id="getMaxByCardNo" resultType="org.springblade.desk.produce.pojo.entity.WorkOrder"> |
||||||
|
SELECT * FROM (select * from MES_WORK_ORDER where card_no like concat(#{cardNo},'%') |
||||||
|
<if test="ypCode != null and ypCode != ''"> |
||||||
|
AND YP_CODE LIKE concat(#{ypCode},'%') |
||||||
|
</if> |
||||||
|
order by card_no desc ) WHERE ROWNUM = 1 |
||||||
|
</select> |
||||||
|
<select id="getWorkOrderByCardNo" resultType="org.springblade.desk.produce.pojo.entity.WorkOrder"> |
||||||
|
SELECT * FROM (select * from MES_WORK_ORDER where card_no = #{code} |
||||||
|
<if test="i == -1"> |
||||||
|
and run_status = -1 |
||||||
|
</if> |
||||||
|
order by wo_id desc ) WHERE ROWNUM = 1 |
||||||
|
</select> |
||||||
|
<select id="getMaxByBatchNo" resultType="org.springblade.desk.produce.pojo.entity.WorkOrder"> |
||||||
|
SELECT * FROM (SELECT a.* |
||||||
|
FROM MES_WORK_ORDER a INNER JOIN MES_YIELD_ORDER b ON a.yo_id = b.id |
||||||
|
WHERE a.batch_no LIKE concat(#{codePattern},'%') AND LENGTH(a.batch_no) = LENGTH(#{codePattern}) + 2 |
||||||
|
AND b.po_code LIKE concat(#{ypCode},'%') |
||||||
|
ORDER BY a.batch_no DESC) WHERE ROWNUM = 1 |
||||||
|
</select> |
||||||
|
<select id="getMaxByMesCardNo" resultType="org.springblade.desk.produce.pojo.entity.WorkOrder"> |
||||||
|
SELECT * FROM (SELECT * FROM MES_WORK_ORDER WHERE mes_card_no LIKE concat(#{codePattern},'%') ORDER BY mes_card_no DESC) WHERE ROWNUM = 1 |
||||||
|
</select> |
||||||
|
|
||||||
|
</mapper> |
||||||
@ -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<WorkOrderRun> { |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,36 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||||
|
<mapper namespace="org.springblade.desk.produce.mapper.WorkOrderRunMapper"> |
||||||
|
|
||||||
|
<!-- 通用查询映射结果 --> |
||||||
|
<resultMap id="workOrderRunResultMap" type="org.springblade.desk.produce.pojo.entity.WorkOrderRun"> |
||||||
|
<result column="ID" property="id"/> |
||||||
|
<result column="WO_ID" property="woId"/> |
||||||
|
<result column="WO_CODE" property="woCode"/> |
||||||
|
<result column="RUN_TYPE" property="runType"/> |
||||||
|
<result column="OUT_TEAM" property="outTeam"/> |
||||||
|
<result column="IN_TEAM" property="inTeam"/> |
||||||
|
<result column="OUT_CUSTOMER" property="outCustomer"/> |
||||||
|
<result column="IN_CUSTOMER" property="inCustomer"/> |
||||||
|
<result column="MEMO" property="memo"/> |
||||||
|
<result column="APPROVAL_MAN" property="approvalMan"/> |
||||||
|
<result column="APPROVAL_MEMO" property="approvalMemo"/> |
||||||
|
<result column="PRINT_FLAG" property="printFlag"/> |
||||||
|
<result column="DELIVER_KEY" property="deliverKey"/> |
||||||
|
<result column="CLOSE_OR_NOT" property="closeOrNot"/> |
||||||
|
<result column="PRINT_MAN" property="printMan"/> |
||||||
|
<result column="RUN_STATUS" property="runStatus"/> |
||||||
|
<result column="SYSTEM_DATA" property="systemData"/> |
||||||
|
<result column="COLLABORATE" property="collaborate"/> |
||||||
|
<result column="APPROVAL_TIME" property="approvalTime"/> |
||||||
|
<result column="CREATE_USER" property="createUser"/> |
||||||
|
<result column="CREATE_DEPT" property="createDept"/> |
||||||
|
<result column="CREATE_TIME" property="createTime"/> |
||||||
|
<result column="UPDATE_USER" property="updateUser"/> |
||||||
|
<result column="UPDATE_TIME" property="updateTime"/> |
||||||
|
<result column="STATUS" property="status"/> |
||||||
|
<result column="IS_DELETED" property="isDeleted"/> |
||||||
|
</resultMap> |
||||||
|
|
||||||
|
|
||||||
|
</mapper> |
||||||
@ -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<WorkPlan> { |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,49 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||||
|
<mapper namespace="org.springblade.desk.produce.mapper.WorkPlanMapper"> |
||||||
|
|
||||||
|
<!-- 通用查询映射结果 --> |
||||||
|
<resultMap id="workPlanResultMap" type="org.springblade.desk.produce.pojo.entity.WorkPlan"> |
||||||
|
<result column="ID" property="id"/> |
||||||
|
<result column="WO_ID" property="woId"/> |
||||||
|
<result column="PPS_ID" property="ppsId"/> |
||||||
|
<result column="ORDERS" property="orders"/> |
||||||
|
<result column="MAKE_MEMO" property="makeMemo"/> |
||||||
|
<result column="HOUR_QUOTA" property="hourQuota"/> |
||||||
|
<result column="START_TIME" property="startTime"/> |
||||||
|
<result column="END_TIME" property="endTime"/> |
||||||
|
<result column="MAKE_TEAM" property="makeTeam"/> |
||||||
|
<result column="OEM" property="oem"/> |
||||||
|
<result column="OC_ID" property="ocId"/> |
||||||
|
<result column="FRONT_WP_ID" property="frontWpId"/> |
||||||
|
<result column="NEXT_WP_ID" property="nextWpId"/> |
||||||
|
<result column="TEST_QTY" property="testQty"/> |
||||||
|
<result column="QUALIFIED_QTY" property="qualifiedQty"/> |
||||||
|
<result column="SCRAP_QTY" property="scrapQty"/> |
||||||
|
<result column="UNQUALIFIED_QTY" property="unqualifiedQty"/> |
||||||
|
<result column="FACT_START_TIME" property="factStartTime"/> |
||||||
|
<result column="FACT_END_TIME" property="factEndTime"/> |
||||||
|
<result column="BIND_STATUS" property="bindStatus"/> |
||||||
|
<result column="WORK_QTY" property="workQty"/> |
||||||
|
<result column="RECEIVE_MAN" property="receiveMan"/> |
||||||
|
<result column="HOURS" property="hours"/> |
||||||
|
<result column="CA_ID" property="caId"/> |
||||||
|
<result column="PRINT_TYPE" property="printType"/> |
||||||
|
<result column="SUBSIDIARY_TEAM" property="subsidiaryTeam"/> |
||||||
|
<result column="SUB_TYPE" property="subType"/> |
||||||
|
<result column="CRUX_PROCESS" property="cruxProcess"/> |
||||||
|
<result column="LOSS_QTY" property="lossQty"/> |
||||||
|
<result column="WP_MONEY" property="wpMoney"/> |
||||||
|
<result column="PAPERS" property="papers"/> |
||||||
|
<result column="REFERENCE_FILE" property="referenceFile"/> |
||||||
|
<result column="WX_NO" property="wxNo"/> |
||||||
|
<result column="CREATE_USER" property="createUser"/> |
||||||
|
<result column="CREATE_DEPT" property="createDept"/> |
||||||
|
<result column="CREATE_TIME" property="createTime"/> |
||||||
|
<result column="UPDATE_USER" property="updateUser"/> |
||||||
|
<result column="UPDATE_TIME" property="updateTime"/> |
||||||
|
<result column="STATUS" property="status"/> |
||||||
|
<result column="IS_DELETED" property="isDeleted"/> |
||||||
|
</resultMap> |
||||||
|
|
||||||
|
</mapper> |
||||||
@ -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<BsProcedureTeam> { |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description: 指定工序已选班组 |
||||||
|
* @return List<BsProcedureTeam> |
||||||
|
*/ |
||||||
|
List<BsProcedureTeam> findBsProcedureTeamByPpsId(Long id); |
||||||
|
} |
||||||
@ -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<MacToolUse> { |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -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<MakeRec> { |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkOrderRun> { |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkOrder> { |
||||||
|
/** |
||||||
|
* 自定义分页 |
||||||
|
* |
||||||
|
* @param page 分页参数 |
||||||
|
* @param WorkOrder 查询参数 |
||||||
|
* @return IPage<WorkOrderVO> |
||||||
|
*/ |
||||||
|
IPage<WorkOrderVO> selectWorkOrderPage(IPage<WorkOrderVO> page, WorkOrderDTO WorkOrder); |
||||||
|
|
||||||
|
BatchPrepareVO batchesPrepare(Long woId); |
||||||
|
|
||||||
|
boolean inBatches(Long oldWoId, WorkOrder workOrder, Long userId); |
||||||
|
} |
||||||
@ -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<WorkPlan> { |
||||||
|
|
||||||
|
void addWorkPlan(WorkOrder wo, List<WorkPlan> wpList, List<Long> deleteIds); |
||||||
|
|
||||||
|
/** |
||||||
|
* <p>方法名: editPreviewNextWorkPlan </p> |
||||||
|
* <p>方法描述: 更新加工任务的上下级关系 </p> |
||||||
|
* |
||||||
|
* @param woId 生产车间 |
||||||
|
*/ |
||||||
|
void editPreviewNextWorkPlan(Long woId); |
||||||
|
} |
||||||
@ -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<BsProcedureTeamMapper, BsProcedureTeam> implements IBsProcedureTeamService { |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<BsProcedureTeam> findBsProcedureTeamByPpsId(Long id) { |
||||||
|
return baseMapper.findBsProcedureTeamByPpsId(id); |
||||||
|
} |
||||||
|
} |
||||||
@ -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<MacToolUseMapper, MacToolUse> implements IMacToolUseService { |
||||||
|
|
||||||
|
} |
||||||
@ -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<MakeRecMapper, MakeRec> implements IMakeRecService { |
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkOrderRunMapper, WorkOrderRun> implements IWorkOrderRunService { |
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkOrderMapper, WorkOrder> 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<WorkOrderVO> selectWorkOrderPage(IPage<WorkOrderVO> 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<WorkPlan> oldList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, oldWoId)); |
||||||
|
List<WorkPlan> 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<WorkPlan> wpList) { |
||||||
|
workPlanService.addWorkPlan(wo, wpList, null); |
||||||
|
//计算上下级关系
|
||||||
|
workPlanService.editPreviewNextWorkPlan(wo.getId()); |
||||||
|
//获取当前工序及最后一道工序完成日期
|
||||||
|
List<WorkPlan> 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<WorkPlan> list) { |
||||||
|
WorkPlan rtn = null; |
||||||
|
for (WorkPlan wp : list) { |
||||||
|
if (WorkPlan.STATUS_COMPLETE > wp.getStatus()) { |
||||||
|
rtn = wp; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
return rtn; |
||||||
|
} |
||||||
|
|
||||||
|
private void saveProcessMarkRec(List<WorkPlan> oldList, List<WorkPlan> 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<MakeRec> 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<MacToolUse> 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<PlanTest> 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; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -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<WorkPlanMapper, WorkPlan> 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<WorkPlan> wpList, List<Long> deleteIds) { |
||||||
|
if (wpList != null) { |
||||||
|
//特殊班组
|
||||||
|
BsTeamSetEntity st; |
||||||
|
List<BsProcedureTeam> 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<DsProcessProjectEntity> miList = dsProcessProjectService.list(Wrappers.lambdaQuery(DsProcessProjectEntity.class).eq(DsProcessProjectEntity::getProcessId, wp.getPid())); |
||||||
|
List<DsProcessMeasuringToolEntity> gaugeList = processMeasuringToolService.list(Wrappers.lambdaQuery(DsProcessMeasuringToolEntity.class).eq(DsProcessMeasuringToolEntity::getProcessId, wp.getPid())); |
||||||
|
if (!miList.isEmpty()) { |
||||||
|
Map<String, List<DsProcessMeasuringToolEntity>> miMap = null; |
||||||
|
if (gaugeList != null) { |
||||||
|
miMap = gaugeList.stream().collect(Collectors.groupingBy(DsProcessMeasuringToolEntity::getTrialNo)); |
||||||
|
} |
||||||
|
List<WorkPlanItem> 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<DsProcessMeasuringToolEntity> list = miMap.get(mi.getTrialNo()); |
||||||
|
if (list != null && !list.isEmpty()) { |
||||||
|
List<WorkPlanItemDetailVO> 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<PrPlateAround> 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<WorkPlan> 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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -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<WorkOrder, WorkOrderVO> { |
||||||
|
|
||||||
|
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<WorkOrderVO> listWorkOrderVO(IPage<WorkOrderVO> pages) { |
||||||
|
List<WorkOrderVO> workOrderVos = pages.getRecords(); |
||||||
|
pages.setRecords(workOrderVos); |
||||||
|
return pages; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue