ソースを参照

增加批次类,引起一些修改

zhuangdezheng 1 年間 前
コミット
5ee24c4bfe

+ 26 - 3
src/main/java/cn/ezhizao/project/business/controller/BizProductionPlanDetailSubDetailController.java

@@ -1,6 +1,5 @@
 package cn.ezhizao.project.business.controller;
 
-import cn.ezhizao.common.utils.SecurityUtils;
 import cn.ezhizao.common.utils.poi.ExcelUtil;
 import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
@@ -108,9 +107,33 @@ public class BizProductionPlanDetailSubDetailController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('business:planDetailSubDetail:add')")
     @Log(title = "生产子计划明细", businessType = BusinessType.INSERT)
-    @PostMapping
+    @PostMapping("/save")
     public AjaxResult add(@RequestBody BizProductionPlanDetailSubDetail bizProductionPlanDetailSubDetail) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizProductionPlanDetailSubDetail);
+
+        /**
+         * 德迈仕生产批号生成规则
+         * 数据表mrp10201关键字段
+         *
+         * cpart:产品编码字段
+         * prver:工艺版本字段(目前mrp10201表中没有该字段,需要德迈仕新增)
+         * zzqty:制造量(支),产品制造支数
+         * phsl:生成总批数
+         * phsl1:单个批次的产品支数
+         * phsl2:尾批次的产品支数
+         *
+         * 通过cpart、prver从产品工艺表sfc10401获取产品加工工艺后,根据phsl、phsl1、phsl2生成对应数量的批号。
+         * 验证公式:zzqty=phsl1 * (phsl - 1) + phsl2
+         *
+         * 举例:
+         * zzqty=15000
+         * phsl=273
+         * phsl1=55
+         * phsl2=40
+         * 生成272批 支数为55的批次,再生成1批 支数为40的批次
+         * 总计273个批次,15000产品支数
+         */
+
         return toAjax(bizProductionPlanDetailSubDetailService.saveOrUpdate(bizProductionPlanDetailSubDetail));
     }
 
@@ -119,7 +142,7 @@ public class BizProductionPlanDetailSubDetailController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('business:planDetailSubDetail:edit')")
     @Log(title = "生产子计划明细", businessType = BusinessType.UPDATE)
-    @PutMapping
+    @PutMapping("/save")
     public AjaxResult edit(@RequestBody BizProductionPlanDetailSubDetail bizProductionPlanDetailSubDetail) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizProductionPlanDetailSubDetail);
         return toAjax(bizProductionPlanDetailSubDetailService.updateById(bizProductionPlanDetailSubDetail));

+ 51 - 249
src/main/java/cn/ezhizao/project/business/domain/BizLot.java

@@ -1,291 +1,93 @@
 package cn.ezhizao.project.business.domain;
 
-import java.math.BigDecimal;
-import java.util.Date;
-
 import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.web.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
 
 /**
- * 生产计划明细对象 biz_production_plan_detail
+ * 生产计划明细对象 biz_lot
  *
- * @author ruoyi
+ * @author zhuangdezheng
  * @date 2023-11-13
  */
 @Data
-@TableName(value = "biz_production_plan_detail")
-public class BizProductionPlanDetail extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 租户(厂别)id */
-    @ApiModelProperty(value = "${comment}")
+@EqualsAndHashCode(callSuper = true)
+@TableName(value = "biz_lot")
+public class BizLot extends BaseEntity {
+    /**
+     * 租户(厂别)id
+     */
+    @ApiModelProperty(value = "租户(厂别)id")
     private Long tenantId;
 
-    /** 交易代码 */
-    @Excel(name = "交易代码")
-    @ApiModelProperty(value = "交易代码")
-    private String transactionCode;
+    /**
+     * 批次号
+     */
+    @Excel(name = "批次号")
+    @ApiModelProperty(value = "批次号")
+    private String lotCode;
 
-    /** 计划单id */
-    @ApiModelProperty(value = "交易代码")
+    /**
+     * 计划单id
+     */
+    @ApiModelProperty(value = "计划单id")
     private Long productionPlanId;
 
-    /** 投料/计划单号 */
-    @Excel(name = "投料/计划单号")
-    @ApiModelProperty(value = "投料/计划单号")
-    private String productionPlanNo;
-
-    /** 领料部门id */
-    @ApiModelProperty(value = "投料/计划单号")
-    private Long requisitionDepartmentId;
-
-    /** 领料部门编码 */
-    @Excel(name = "领料部门编码")
-    @ApiModelProperty(value = "领料部门编码")
-    private String requisitionDepartmentCode;
-
-    /** 客户id */
-    @ApiModelProperty(value = "领料部门编码")
-    private Long companyId;
+    /**
+     * 计划单明细id
+     */
+    @ApiModelProperty(value = "计划单明细id")
+    private Long productionPlanDetailId;
 
-    /** 客户编码 */
-    @Excel(name = "客户编码")
-    @ApiModelProperty(value = "客户编码")
-    private String companyCode;
+    /**
+     * 工艺id
+     */
+    @ApiModelProperty(value = "工艺id")
+    private Long technologicalProcessId;
 
-    /** 客户简称 */
-    @Excel(name = "客户简称")
-    @ApiModelProperty(value = "客户简称")
-    private String companyAlias;
+    /**
+     * 工艺版本
+     */
+    @ApiModelProperty(value = "工艺版本")
+    private String technologyVersion;
 
-    /** 产品id */
+    /**
+     * 产品id
+     */
     @ApiModelProperty(value = "客户编码")
     private Long productId;
 
-    /** 产品编码 */
+    /**
+     * 产品编码
+     */
     @Excel(name = "产品编码")
     @ApiModelProperty(value = "产品编码")
     private String productCode;
 
-    /** 产品规格 */
+    /**
+     * 产品规格
+     */
     @Excel(name = "产品规格")
     @ApiModelProperty(value = "产品规格")
     private String specification;
 
-    /** 产品图号 */
+    /**
+     * 产品图号
+     */
     @Excel(name = "产品图号")
     @ApiModelProperty(value = "产品图号")
     private String drawingNumber;
 
     /**
-     * 工艺id
-     */
-    @ApiModelProperty(value = "${comment}")
-    private Long technologicalProcessId;
-
-    /**
-     * 工艺版本
+     * 生产数量
      */
-    @ApiModelProperty(value = "${comment}")
-    private String technologyVersion;
-
-
-
-    /** 库位 */
-    @Excel(name = "库位")
-    @ApiModelProperty(value = "库位")
-    private String storageLocation;
-
-    /** 生产数量 */
     @Excel(name = "生产数量")
     @ApiModelProperty(value = "生产数量")
     private BigDecimal productionQuantity;
 
-    /** 限额领料量/投料数量 */
-    @Excel(name = "限额领料量/投料数量")
-    @ApiModelProperty(value = "限额领料量/投料数量")
-    private BigDecimal materialPickUpQuantity;
-
-    /** 状态id(对应数据字典id) */
-    @ApiModelProperty(value = "限额领料量/投料数量")
-    private Long statusDictCode;
-
-    /** NA:经营初始,FM:经营申请,JH:计划审核,OP:调度下单,YA:领料锁定,CL:全部领完,IN:部分领料 */
-    @Excel(name = "NA:经营初始,FM:经营申请,JH:计划审核,OP:调度下单,YA:领料锁定,CL:全部领完,IN:部分领料")
-    @ApiModelProperty(value = "NA:经营初始,FM:经营申请,JH:计划审核,OP:调度下单,YA:领料锁定,CL:全部领完,IN:部分领料")
-    private String statusCode;
-
-    /** 批号状态id(对应数据字典id) */
-    @ApiModelProperty(value = "NA:经营初始,FM:经营申请,JH:计划审核,OP:调度下单,YA:领料锁定,CL:全部领完,IN:部分领料")
-    private Long lotCodeStatusDictCode;
-
-    /** 批号状态:NA:未生成批号,OK:已生成批号,CL:批号已完工 */
-    @Excel(name = "批号状态:NA:未生成批号,OK:已生成批号,CL:批号已完工")
-    @ApiModelProperty(value = "批号状态:NA:未生成批号,OK:已生成批号,CL:批号已完工")
-    private String lotCodeStatusCode;
-
-    /** 批次类型id(对应数据字典id) */
-    @ApiModelProperty(value = "批号状态:NA:未生成批号,OK:已生成批号,CL:批号已完工")
-    private Long lotTypeDictCode;
-
-    /** 批次类型:Y:正常,新增批次;G:改料,不增批次;B:补料 */
-    @Excel(name = "批次类型:Y:正常,新增批次;G:改料,不增批次;B:补料")
-    @ApiModelProperty(value = "批次类型:Y:正常,新增批次;G:改料,不增批次;B:补料")
-    private String lotTypeCode;
-
-    /** 生产类型id */
-    @ApiModelProperty(value = "批次类型:Y:正常,新增批次;G:改料,不增批次;B:补料")
-    private Long productionTypeDictCode;
-
-    /** 生产类型(Y:量产、X:样品、试制S) */
-    @Excel(name = "生产类型", readConverterExp = "Y=:量产、X:样品、试制")
-    @ApiModelProperty(value = "生产类型")
-    private String productionTypeCode;
-
-    /** 领料人id(对应的是sys_user的id) */
-    @ApiModelProperty(value = "生产类型")
-    private Long materialPickUpPersonId;
-
-    /** 领料人编码 */
-    @Excel(name = "领料人编码")
-    @ApiModelProperty(value = "领料人编码")
-    private String materialPickUpPersonCode;
-
-    /** BOM用量 */
-    @Excel(name = "BOM用量")
-    @ApiModelProperty(value = "BOM用量")
-    private BigDecimal bomQuantity;
-
-    /** 调度员id(对应员工id) */
-    @ApiModelProperty(value = "BOM用量")
-    private Long dispatcherId;
-
-    /** 调度员编号(对应员工编码) */
-    @Excel(name = "调度员编号", readConverterExp = "对=应员工编码")
-    @ApiModelProperty(value = "调度员编号")
-    private String dispatcherCode;
-
-    /** 炉号 */
-    @Excel(name = "炉号")
-    @ApiModelProperty(value = "炉号")
-    private String furnaceNumber;
-
-    /** 销售员id */
-    @ApiModelProperty(value = "炉号")
-    private Long salesmanId;
-
-    /** 销售员编码 */
-    @Excel(name = "销售员编码")
-    @ApiModelProperty(value = "销售员编码")
-    private String salesmanCode;
-
-    /** 产品描述 */
-    @Excel(name = "产品描述")
-    @ApiModelProperty(value = "产品描述")
-    private String productDescription;
-
-    /** 轴类型id */
-    @ApiModelProperty(value = "轴类型id")
-    private Long shaftCategoryId;
-
-    /** 轴类型=基本上=SCLASS */
-    @Excel(name = "轴类型=基本上=SCLASS")
-    @ApiModelProperty(value = "轴类型=基本上=SCLASS")
-    private String shaftCategoryCode;
-
-    /** 轴类型(名称) */
-    @Excel(name = "轴类型", readConverterExp = "名=称")
-    @ApiModelProperty(value = "轴类型")
-    private String shaftCategoryName;
-
-    /** 预完工日 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "预完工日", width = 30, dateFormat = "yyyy-MM-dd")
-    @ApiModelProperty(value = "预完工日")
-    private Date expectedCompletionDate;
-
-    /** 保管员id(对应sys_user的id) */
-    @ApiModelProperty(value = "预完工日")
-    private Long stockKeeperId;
-
-    /** 保管员编码 */
-    @Excel(name = "保管员编码")
-    @ApiModelProperty(value = "保管员编码")
-    private String stockKeeperCode;
-
-    /** 投料日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "投料日期", width = 30, dateFormat = "yyyy-MM-dd")
-    @ApiModelProperty(value = "投料日期")
-    private Date feedDate;
-
-    /** 领料日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "领料日期", width = 30, dateFormat = "yyyy-MM-dd")
-    @ApiModelProperty(value = "领料日期")
-    private Date materialPickUpDate;
-
-    /** 总批数 */
-    @Excel(name = "总批数")
-    @ApiModelProperty(value = "总批数")
-    private Integer totalLotNumber;
-
-    /** 单批量 */
-    @Excel(name = "单批量")
-    @ApiModelProperty(value = "单批量")
-    private Long oneLotQuantity;
-
-    /** 尾批量 */
-    @Excel(name = "尾批量")
-    @ApiModelProperty(value = "尾批量")
-    private Long lastLotQuantity;
-
-    /** 主批号/投料单号/计划单号 */
-    @Excel(name = "主批号/投料单号/计划单号")
-    @ApiModelProperty(value = "主批号/投料单号/计划单号")
-    private String lotCode;
-
-    /** 订单编码 */
-    @Excel(name = "订单编码")
-    @ApiModelProperty(value = "订单编码")
-    private String saleOrderCode;
-
-    /** 序号 */
-    @Excel(name = "序号")
-    @ApiModelProperty(value = "序号")
-    private Integer lineNumber;
-
-    /** 是否外购生产 */
-    @Excel(name = "是否外购生产")
-    @ApiModelProperty(value = "是否外购生产")
-    private String isPurchasedProduction;
-
-    /** 尾批批号流水号 */
-    @Excel(name = "尾批批号流水号")
-    @ApiModelProperty(value = "尾批批号流水号")
-    private String lastLotSerialNumber;
-
-    /** 领料否? */
-    @Excel(name = "领料否?")
-    @ApiModelProperty(value = "领料否?")
-    private String isPeekedUp;
-
-    /** 有批号否? */
-    @Excel(name = "有批号否?")
-    @ApiModelProperty(value = "有批号否?")
-    private String hadLotCode;
-
-    /************************* 虚拟字段 ***********************/
-    @TableField(exist = false)
-    private Boolean pullP2PlanDetails;
-
-    @TableField(exist = false)
-    private String keywords;
-
 }

+ 2 - 2
src/main/java/cn/ezhizao/project/business/domain/BizProductionPlanDetail.java

@@ -33,7 +33,7 @@ public class BizProductionPlanDetail extends BaseEntity
     private String transactionCode;
 
     /** 计划单id */
-    @ApiModelProperty(value = "交易代码")
+    @ApiModelProperty(value = "计划单id")
     private Long productionPlanId;
 
     /** 投料/计划单号 */
@@ -42,7 +42,7 @@ public class BizProductionPlanDetail extends BaseEntity
     private String productionPlanNo;
 
     /** 领料部门id */
-    @ApiModelProperty(value = "投料/计划单号")
+    @ApiModelProperty(value = "领料部门id")
     private Long requisitionDepartmentId;
 
     /** 领料部门编码 */