commit
b7485dc7c5
65 changed files with 3242 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; |
||||
|
||||
} |
||||
@ -1,10 +1,207 @@ |
||||
package org.springblade.erpdata.pojo.dto.table; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中表 t_prtbasdef |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:32 |
||||
*/ |
||||
@Data |
||||
public class Prtbasdef { |
||||
|
||||
|
||||
private String prtno; //物料号
|
||||
private String prteflag; //工程数据标记
|
||||
private String prtchgrsn; //更改原因
|
||||
private String prttype; //物料类型
|
||||
private String prtreqtype; //需求类型
|
||||
private String prtorplc; //订货策略码
|
||||
private String prtlzplc; //批量方针
|
||||
private String prtabc; //库存管理abc码
|
||||
private String prtinvprtct; //物料保管特征码
|
||||
private String prtsoflag; //物料加工路线通过车间数的标记
|
||||
private String prtcotype; //自制/外协类型
|
||||
private String prtchkflag; //物料检验标记
|
||||
private String prtageflag; //物料老化筛选标记
|
||||
private String gtroutflag; //采用成组工艺标记
|
||||
private String prtlottype; //批次合并标记
|
||||
private String prtcsttype; //限制发货标记
|
||||
private String prtum; //erp度量单位
|
||||
private String prtwtum; //重量计量单位
|
||||
private String prtui; //pdm度量单位
|
||||
private String prtpurity; //表面积
|
||||
private String prtwt; //重量(毛重), 图纸标明该件的重量
|
||||
private String prturat; //存储单位折算系数
|
||||
private String prtrevedit; //版本号
|
||||
private String prodline; //产品大类(产品系列)
|
||||
private String prtclass; //1 :线簧孔 0:无标识 2针孔 3 连帽线 4 花键线 5 ym线 6方盘线 7 异型壳体线 8 针孔线 9 复合线 10 压铸件 (3200) 11~18精益生产线a~h(3100) 20 注射件 21 橡胶件 22 热固件 23 jy 24 y50 25 xc 及派生 26 民品大批量 27 ct杂项 28 f/yf 29 装爪类 30 装针类 31 装孔类 32 灌胶粘结类 33 绞针类 34 铆接 35 同轴产品 36 滤波产品 37 绞针产品 38 线缆产品 39 普通跳线 40 多芯缆 41 圆形粘接部件 42
|
||||
private String prtdesc; //物料名称
|
||||
private String mtltmrk; //物料型号/材料牌号
|
||||
private String mtlspcf; //腔数
|
||||
private String prtstd; //技术条件
|
||||
private String mtlstat; //交货状态
|
||||
private String prtgtcc; //存储华为用户型号
|
||||
private String prtmdept; //主制车间
|
||||
private String splytype; //供应商认证类型
|
||||
private String splycode; //首选供应商码
|
||||
private String mtldmsw; //毛料宽度(内径)
|
||||
private String mtldmst; //毛料厚(高)度,外径
|
||||
private String mtldmsl; //毛料长度
|
||||
private String mtlsgrt; //材料密度(比重)
|
||||
private String prtqtyraw; //毛料物料数
|
||||
private String prtmaxtim; //最长存储时间
|
||||
private String prtovertim; //物料准许的积压期限
|
||||
private String prtrechktim; //物资复验间隔期或工模具复检周期
|
||||
private String prtoiltim; //油封间隔期
|
||||
private String mtlrcdchgdat; //材料数据更改日期
|
||||
private String rcdchgdatd; //设计数据记录更改日期
|
||||
private String rcdchgdatm; //物料存储数据记录更改日期
|
||||
private String rcdchgdatp; //设置发货限制时间
|
||||
private String rcdchgdatc; //取消发货限制时间
|
||||
private String rcdchgctrlerd; //设计数据更改人
|
||||
private String rcdchgctrlerm; //物料存储数据更改人
|
||||
private String mtlctrler; //材料数据更改人
|
||||
private String rcdchgctrlerp; //计划数据更改人
|
||||
private String rcdchgctrlerc; //限制发货更改人
|
||||
private String scheduler; //采购计划员
|
||||
private String planner; //生产调度员
|
||||
private String designer; //产品数据设计员
|
||||
private String prtmengr; //主管工艺员,十五车间作为调度员使用
|
||||
private String prtmint; //mps、mrp或pur计划重复投入的最小合并周期
|
||||
private String pkmaxcount; //配套允许最大批次数
|
||||
private String makespeed; //验证类型-材料部件
|
||||
private String prtlt; //提前期
|
||||
private String prtsflt; //安全提前期
|
||||
private String prtaclt; //备料提前期
|
||||
private String prtcmlt; //累计提前期
|
||||
private String bas_prtcmlt; //理论累计提前期
|
||||
private String prtscprt; //物料废品系数
|
||||
private String prtssqty; //安全库存
|
||||
private String prtavelz; //平均批量
|
||||
private String prtopnt; //订货点
|
||||
private String prtlz; //批量
|
||||
private String prtupqty; //最高库存量
|
||||
private String prtfalt; //总装配提前提
|
||||
private String invqyqty; //入检取样消耗量
|
||||
private String checkhgl; //平均入检合格率
|
||||
private String selecthgl; //平均筛选合格率
|
||||
private String invshl; //平均库存损耗率
|
||||
private String invpyl; //排料利用率
|
||||
private String mtllyl; //平均材料下料利用率
|
||||
private String prtlprc; //计划价
|
||||
private String prtstdcst; //标准成本
|
||||
private String prtphlcst; //永续成本价
|
||||
private String prtothcst; //其它费用
|
||||
private String invttlavqty; //二级库总可用数量
|
||||
private String invttlqtqty; //总合格数量
|
||||
private String invttlresqty; //总限用数量
|
||||
private String invttlwcqty; //总待检数量
|
||||
private String invttlwsqty; //总报废数量
|
||||
private String invttlalqty; //已分配数量
|
||||
private String invttlelqty; //二级库已分配数量
|
||||
private String invttlbaqty; //缺件数量
|
||||
private String invttleaqty; //二级库缺件数量
|
||||
private String bas_prtlt; //装配周期
|
||||
private String prdpercent; //未用
|
||||
private String delaynum; //未用
|
||||
private String aimstock; //未用
|
||||
private String product; //生产商
|
||||
private String prtbaslt; //固定提前期
|
||||
private String prtlotlt; //可变提前期
|
||||
private String bas_prtbaslt; //计划固定提前期
|
||||
private String bas_prtlotlt; //计划可变提前期
|
||||
private String prtllc; //低位码
|
||||
private String calprtlt; //重新记算提前期标记
|
||||
private String prtcode; //图纸号
|
||||
private String prttech; //文档说明书编号
|
||||
private String releaseno; //版本号
|
||||
private String bomchksign; //bom审核标记
|
||||
private String sjflag; //散件标记:0-成批件,1-散件
|
||||
private String invttlchgqty; //工模具使用,总修理数量
|
||||
private String shflag; //''1''-涂色环
|
||||
private String prtdescr; //对零件的描述,十五车间用
|
||||
private String schemer; //生产计划员
|
||||
private String prtprodtim; //生产周期
|
||||
private String bomchkman; //bom审核人
|
||||
private String bomchkdate; //bom审核日期
|
||||
private String mdmchksign; //基础数据审核标记
|
||||
private String mdmchkman; //基础数据审核人
|
||||
private String mdmchkdate; //基础数据审核日期
|
||||
private String prtlotno; //物资质量等级
|
||||
private String noprtpqty; //是否取消材料定额,0-否,1-是 2007年2月28日lixin增加,mrpplang中用
|
||||
private String prtljclass; //零件分类
|
||||
private String cplb; //产品类别
|
||||
private String purcode; //物资采购员,2008/05/07
|
||||
private String jmaterfee; //军品材料费,十五车间用
|
||||
private String mmaterfee; //民品材料费,十五车间用
|
||||
private String zpcoef; //折批系数,十五车间用
|
||||
private String oldprtno; //erp旧物料号
|
||||
private String vmiflag; //vmi物料标记
|
||||
private String vmiprtssqty; //vmi安全库存
|
||||
private String vmiprtlz; //vmi采购批量
|
||||
private String processline; //pdm工艺路线
|
||||
private String drwpartno; //pdm图纸编码
|
||||
private String warctlr; //物资保管员
|
||||
private String wzbomchksign; //bom材料定额审核标记
|
||||
private String chgstrucflg; //结构调整标记:0-否,1-是
|
||||
private String mtnman; //线黄孔维护人 15a用
|
||||
private String mtndate; //线黄孔维护日期 15a用
|
||||
private String guke; //顾客(审签军代表姓名)
|
||||
private String fddate; //首次订货日期(计算新品统计)
|
||||
private String routremark; //工艺规程号
|
||||
private String priority; //优先等级
|
||||
private String confcode1; //第一配置码
|
||||
private String maxusetime; //工装最大使用次数
|
||||
private String parametera; //pdm参数a2010/09/24
|
||||
private String volume; //pdm体积2010/09/24
|
||||
private String routruledat; //工艺规程维护日期
|
||||
private String reroutruleno; //工艺规程变更单号
|
||||
private String reroutruledat; //工艺规程变更单维护日期
|
||||
private String typeflag; //打子件标识 0 :非打字件 1:打字件
|
||||
private String wzprttype; //物资物料标记a,b,c,d....
|
||||
private String chkcycle; //检验周期
|
||||
private String plndept; //计划部门
|
||||
private String part_link; //超级链接
|
||||
private String partview; //视图名称
|
||||
private String classpath; //分类路径名
|
||||
private String classpathid; //分类路径id
|
||||
private String matsmallclassify; //小类(材料部件)
|
||||
private String currentflag; //通用属性
|
||||
private String remark; //注释
|
||||
private String producedept; //制造部门
|
||||
private String groupcode; //集团公司编码
|
||||
private String cgzmark; //关重件标识
|
||||
private String checkreport; //是否出验收报告标记 0 :否 1:是
|
||||
private String simparts; //相似零件
|
||||
private String patternlev; //模具等级--分类属性
|
||||
private String rcdchgrsn; //发货限制原因备注
|
||||
private String prtlev; //零件分级,外协用
|
||||
private String color; //颜色
|
||||
private String length; //长度
|
||||
private String cladfilm; //镀层的最终镀种
|
||||
private String xdflag; //暂停下计划标记
|
||||
private String xddat; //暂停下计划时间
|
||||
private String xdopendat; //暂停下计划解限时间
|
||||
private String xdrsn; //暂停下计划原因
|
||||
private String xddoccode; //暂停下计划相关技术单号
|
||||
private String xdman; //暂停下计划人员
|
||||
private String newestpro; //全新产品
|
||||
private String yfitemno; //研发项目编号(零部件、工装部件)
|
||||
private String dataflag; //pdm数据标记:0-erp,1-pdm
|
||||
private String matbigclassify; //材料大类,从pdm发布
|
||||
private String materialtype; //材料类别
|
||||
private String standtype; //标准类型
|
||||
private String sparemodel; //备料型号
|
||||
private String projectlevel; //项目级别
|
||||
private String firstuserpp; //首用工艺号-材料部件
|
||||
private String prioritytype; //优选类型-材料部件
|
||||
private String metacognition; //对称件-零部件
|
||||
private String orignofmaterial; //材料原产地-材料部件
|
||||
private String modelremark; //模具备注(零部件)
|
||||
private String moulddemand; //模具需求(零部件)
|
||||
private String productapparea; //产品应用领域(零部件)
|
||||
private String etlid; //guid,etl使用的唯一性索引列
|
||||
private String maturitygrade; //成熟度(零部件)
|
||||
} |
||||
|
||||
@ -1,10 +1,21 @@ |
||||
package org.springblade.erpdata.pojo.dto.table; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中表 t_rbwoerptomes |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:32 |
||||
*/ |
||||
@Data |
||||
public class Rrbwoerptomes { |
||||
|
||||
private String wono; //工作订单号
|
||||
|
||||
private String process_line_desc; //工艺路线明细
|
||||
|
||||
private String readtime; //读取时间
|
||||
|
||||
private String read_content; //读取内容
|
||||
} |
||||
|
||||
@ -1,10 +1,42 @@ |
||||
package org.springblade.erpdata.pojo.dto.view; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中视图 v_mes_rb_pk |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:34 |
||||
*/ |
||||
@Data |
||||
public class MesRbPk { |
||||
|
||||
private String wono; //车间订单号(外协订单号)
|
||||
|
||||
private String splcode; //批次号
|
||||
|
||||
private String liverkey; //路线卡号(外协交件单号)
|
||||
|
||||
private String prtno; //物料号
|
||||
private String prtlotno; //质量等级
|
||||
private String mtltmrk; //型号
|
||||
private String woporqty; //需求数量
|
||||
private String wopordat; //下达时间
|
||||
|
||||
private String yzdd; //工作订单
|
||||
private String yjgx; //一级工序(B号)
|
||||
private String rtudept; //接收部门
|
||||
private String updatetime; //转出时间(检验状态改为合格的时间)
|
||||
private String wdavlqty; //转出数量(实收数量)
|
||||
private String plndept; //计划部门代码
|
||||
private String usedept; //使用部门代码
|
||||
private String hbm; //计划部门
|
||||
private String ybm; //使用部门
|
||||
private String WOREQDAT; //需求日期
|
||||
private String jhy; //计划员
|
||||
private String bgy; //保管员
|
||||
private String processlinedesc; //一级工艺路线
|
||||
private String kdofplat; //镀种
|
||||
private String prtmeterial; //材料
|
||||
private String rigidity; //硬度
|
||||
} |
||||
|
||||
@ -1,10 +1,36 @@ |
||||
package org.springblade.erpdata.pojo.dto.view; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中视图 v_mes_rb_sjso |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:34 |
||||
*/ |
||||
@Data |
||||
public class MesRbSjso { |
||||
|
||||
private String sono; //车间订单号
|
||||
private String fj_splcode; //批次号
|
||||
private String barcodeno; //路线卡号(配套单号)
|
||||
private String prtno; //零件号
|
||||
private String prtlotno; //生产标识
|
||||
private String mtltmrk; //型号
|
||||
private String woporqty; //需求数量
|
||||
private String wopordat; //下达时间
|
||||
private String wono; //工作订单号
|
||||
private String prtmdept; //接收部门(主制部门)
|
||||
private String fj_pkavqty; //转出数量(父件配套数量)
|
||||
private String lewdeptcode; //转出部门代码
|
||||
private String plndept; //计划部门代码
|
||||
private String usedept; //使用部门代码
|
||||
private String woreqdat; //需求日期
|
||||
private String processlinedesc; //一级工艺路线
|
||||
private String kdofplat; //镀种
|
||||
private String prtmeterial; //材料
|
||||
private String rigidity; //硬度
|
||||
private String warctlr; |
||||
private String planner; |
||||
private String username; |
||||
} |
||||
|
||||
@ -1,10 +1,42 @@ |
||||
package org.springblade.erpdata.pojo.dto.view; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中视图 v_mes_rb_sodelrecwx |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:34 |
||||
*/ |
||||
@Data |
||||
public class MesRbSodelrecwx { |
||||
|
||||
private String wono; //车间订单号(外协订单号)
|
||||
|
||||
private String splcode; //批次号
|
||||
|
||||
private String liverkey; //路线卡号(外协交件单号)
|
||||
|
||||
private String prtno; //物料号
|
||||
private String prtlotno; //质量等级
|
||||
private String mtltmrk; //型号
|
||||
private String woporqty; //需求数量
|
||||
private String wopordat; //下达时间
|
||||
|
||||
private String zdd; //工作订单
|
||||
private String jgx; //一级工序(B号)
|
||||
private String rtudept; //接收部门
|
||||
private String updatetime; //转出时间(检验状态改为合格的时间)
|
||||
private String wdavlqty; //转出数量(实收数量)
|
||||
private String plndept; //计划部门代码
|
||||
private String usedept; //使用部门代码
|
||||
private String hbm; //计划部门
|
||||
private String ybm; //使用部门
|
||||
private String WOREQDAT; //需求日期
|
||||
private String hy; //计划员
|
||||
private String gy; //保管员
|
||||
private String processlinedesc; //一级工艺路线
|
||||
private String kdofplat; //镀种
|
||||
private String prtmeterial; //材料
|
||||
private String rigidity; //硬度
|
||||
} |
||||
|
||||
@ -1,10 +1,42 @@ |
||||
package org.springblade.erpdata.pojo.dto.view; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中视图 v_mes_rb_sodelreczg |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:34 |
||||
*/ |
||||
@Data |
||||
public class MesRbSodelreczg { |
||||
|
||||
private String wono; //车间订单号(外协订单号)
|
||||
|
||||
private String splcode; //批次号
|
||||
|
||||
private String liverkey; //路线卡号(外协交件单号)
|
||||
|
||||
private String prtno; //物料号
|
||||
private String prtlotno; //质量等级
|
||||
private String mtltmrk; //型号
|
||||
private String woporqty; //需求数量
|
||||
private String wopordat; //下达时间
|
||||
|
||||
private String zdd; //工作订单
|
||||
private String jgx; //一级工序(B号)
|
||||
private String rtudept; //接收部门
|
||||
private String updatetime; //转出时间(检验状态改为合格的时间)
|
||||
private String wdavlqty; //转出数量(实收数量)
|
||||
private String plndept; //计划部门代码
|
||||
private String usedept; //使用部门代码
|
||||
private String hbm; //计划部门
|
||||
private String ybm; //使用部门
|
||||
private String WOREQDAT; //需求日期
|
||||
private String hy; //计划员
|
||||
private String gy; //保管员
|
||||
private String processlinedesc; //一级工艺路线
|
||||
private String kdofplat; //镀种
|
||||
private String prtmeterial; //材料
|
||||
private String rigidity; //硬度
|
||||
} |
||||
|
||||
@ -1,10 +1,42 @@ |
||||
package org.springblade.erpdata.pojo.dto.view; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 对应ERP中视图 v_mes_rb_wxpromotion |
||||
* |
||||
* @author lqk |
||||
* @date 2026-01-16 17:34 |
||||
*/ |
||||
@Data |
||||
public class MesRbWxpromotion { |
||||
|
||||
private String wono; //车间订单号(外协订单号)
|
||||
|
||||
private String splcode; //批次号
|
||||
|
||||
private String liverkey; //路线卡号(外协交件单号)
|
||||
|
||||
private String prtno; //物料号
|
||||
private String prtlotno; //质量等级
|
||||
private String mtltmrk; //型号
|
||||
private String woporqty; //需求数量
|
||||
private String wopordat; //下达时间
|
||||
|
||||
private String zdd; //工作订单
|
||||
private String jgx; //一级工序(B号)
|
||||
private String rtudept; //接收部门
|
||||
private String updatetime; //转出时间(检验状态改为合格的时间)
|
||||
private String wdavlqty; //转出数量(实收数量)
|
||||
private String plndept; //计划部门代码
|
||||
private String usedept; //使用部门代码
|
||||
private String hbm; //计划部门
|
||||
private String ybm; //使用部门
|
||||
private String WOREQDAT; //需求日期
|
||||
private String hy; //计划员
|
||||
private String gy; //保管员
|
||||
private String processlinedesc; //一级工艺路线
|
||||
private String kdofplat; //镀种
|
||||
private String prtmeterial; //材料
|
||||
private String rigidity; //硬度
|
||||
} |
||||
|
||||
@ -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; |
||||
} |
||||
|
||||
|
||||
} |
||||
@ -0,0 +1,21 @@ |
||||
package org.springblade.erpdata.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.Mapper; |
||||
import org.springblade.erpdata.pojo.dto.view.MesRbSjso; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Mapper 接口 |
||||
* |
||||
* @author lqk |
||||
*/ |
||||
public interface ErpMesRbSjsoMapper extends Mapper { |
||||
|
||||
/** |
||||
* 从ERP视图中获取要同步的推进计划转工单 |
||||
* |
||||
* @return |
||||
*/ |
||||
List<MesRbSjso> getMesRbSjsoErpList(); |
||||
} |
||||
@ -0,0 +1,9 @@ |
||||
<?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.erpdata.mapper.ErpMesRbSjsoMapper"> |
||||
|
||||
<select id = "getMesRbSjsoErpList" resultType = "org.springblade.erpdata.pojo.dto.view.MesRbSjso"> |
||||
SELECT * FROM v_mes_rb_sjso WHERE is_deleted = 0 |
||||
</select> |
||||
|
||||
</mapper> |
||||
@ -0,0 +1,21 @@ |
||||
package org.springblade.erpdata.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.Mapper; |
||||
import org.springblade.erpdata.pojo.dto.view.MesRbSodelrecwx; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Mapper 接口 |
||||
* |
||||
* @author lqk |
||||
*/ |
||||
public interface ErpMesRbSodelrecwxMapper extends Mapper { |
||||
|
||||
/** |
||||
* 从ERP视图中获取要同步的推进计划转工单 |
||||
* |
||||
* @return |
||||
*/ |
||||
List<MesRbSodelrecwx> getMesRbSodelrecwxErpList(); |
||||
} |
||||
@ -0,0 +1,9 @@ |
||||
<?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.erpdata.mapper.ErpMesRbSodelrecwxMapper"> |
||||
|
||||
<select id = "getMesRbSodelrecwxErpList" resultType = "org.springblade.erpdata.pojo.dto.view.MesRbSodelrecwx"> |
||||
SELECT * FROM v_mes_rb_sodelrecwx WHERE is_deleted = 0 |
||||
</select> |
||||
|
||||
</mapper> |
||||
@ -0,0 +1,22 @@ |
||||
package org.springblade.erpdata.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.Mapper; |
||||
import org.springblade.erpdata.pojo.dto.view.MesRbSjso; |
||||
import org.springblade.erpdata.pojo.dto.view.MesRbWxpromotion; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Mapper 接口 |
||||
* |
||||
* @author lqk |
||||
*/ |
||||
public interface ErpMesRbWxpromotionMapper extends Mapper { |
||||
|
||||
/** |
||||
* 从ERP视图中获取要同步的推进计划转工单 |
||||
* |
||||
* @return |
||||
*/ |
||||
List<MesRbWxpromotion> getMesRbWxpromotionErpList(); |
||||
} |
||||
@ -0,0 +1,9 @@ |
||||
<?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.erpdata.mapper.ErpMesRbWxpromotionMapper"> |
||||
|
||||
<select id = "getMesRbWxpromotionErpList" resultType = "org.springblade.erpdata.pojo.dto.view.MesRbWxpromotion"> |
||||
SELECT * FROM v_mes_rb_wxpromotion WHERE is_deleted = 0 |
||||
</select> |
||||
|
||||
</mapper> |
||||
@ -0,0 +1,14 @@ |
||||
package org.springblade.erpdata.service; |
||||
|
||||
/** |
||||
* ERP数据查询service |
||||
* |
||||
* @author lqk |
||||
*/ |
||||
public interface IErpMesRbSjsoService { |
||||
|
||||
/** |
||||
* 同步推进计划转工单 |
||||
*/ |
||||
void synMesRbSjso(); |
||||
} |
||||
@ -0,0 +1,14 @@ |
||||
package org.springblade.erpdata.service; |
||||
|
||||
/** |
||||
* ERP数据查询service |
||||
* |
||||
* @author lqk |
||||
*/ |
||||
public interface IErpMesRbSodelrecwxService { |
||||
|
||||
/** |
||||
* 同步数据 |
||||
*/ |
||||
void synMesRbSodelrecwx(); |
||||
} |
||||
@ -0,0 +1,14 @@ |
||||
package org.springblade.erpdata.service; |
||||
|
||||
/** |
||||
* ERP数据查询service |
||||
* |
||||
* @author lqk |
||||
*/ |
||||
public interface IErpMesRbWxpromotionService { |
||||
|
||||
/** |
||||
* 同步数据 |
||||
*/ |
||||
void synMesRbWxpromotion(); |
||||
} |
||||
@ -0,0 +1,28 @@ |
||||
package org.springblade.erpdata.service.impl; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.desk.order.feign.IApsClient; |
||||
import org.springblade.erpdata.mapper.ErpMesRbSjsoMapper; |
||||
import org.springblade.erpdata.service.IErpMesRbSjsoService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @author lqk |
||||
* @date 2025-11-26 9:39 |
||||
*/ |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
@Service |
||||
public class ErpMesRbSjsoServiceImpl implements IErpMesRbSjsoService { |
||||
|
||||
private final ErpMesRbSjsoMapper mesRbSjsoMapper; |
||||
|
||||
private final IApsClient apsClient; |
||||
|
||||
|
||||
@Override |
||||
public void synMesRbSjso() { |
||||
|
||||
} |
||||
} |
||||
@ -0,0 +1,26 @@ |
||||
package org.springblade.erpdata.service.impl; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.desk.order.feign.IApsClient; |
||||
import org.springblade.erpdata.mapper.ErpMesRbSodelrecwxMapper; |
||||
import org.springblade.erpdata.service.IErpMesRbSodelrecwxService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @author lqk |
||||
* @date 2025-11-26 9:39 |
||||
*/ |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
@Service |
||||
public class ErpMesRbSodelrecwxServiceImpl implements IErpMesRbSodelrecwxService { |
||||
|
||||
private final ErpMesRbSodelrecwxMapper mesRbSodelrecwxMapper; |
||||
|
||||
private final IApsClient apsClient; |
||||
@Override |
||||
public void synMesRbSodelrecwx() { |
||||
|
||||
} |
||||
} |
||||
@ -0,0 +1,28 @@ |
||||
package org.springblade.erpdata.service.impl; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.desk.order.feign.IApsClient; |
||||
import org.springblade.erpdata.mapper.ErpMesRbWxpromotionMapper; |
||||
import org.springblade.erpdata.service.IErpMesRbWxpromotionService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @author lqk |
||||
* @date 2025-11-26 9:39 |
||||
*/ |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
@Service |
||||
public class ErpMesRbWxpromotionServiceImpl implements IErpMesRbWxpromotionService { |
||||
|
||||
private final ErpMesRbWxpromotionMapper mesRbWxpromotionMapper; |
||||
|
||||
private final IApsClient apsClient; |
||||
|
||||
|
||||
@Override |
||||
public void synMesRbWxpromotion() { |
||||
|
||||
} |
||||
} |
||||
Loading…
Reference in new issue