Browse Source

三期:商品实体类修改

huang 1 tháng trước cách đây
mục cha
commit
317c066645

+ 31 - 0
docs/new_sql.sql

@@ -249,6 +249,37 @@ ALTER TABLE material_batch
 -- 2025-05-21 编号表添加供应商编号
 INSERT INTO `jsh_sequence` (`seq_name`, `min_value`, `max_value`, `current_val`, `increment_val`, `remark`) VALUES ('supplier_number_seq', '1', '999999999999999999', '1', '1', '供应商编号sequence');
 
+-- 2025-05-22
+-- 商品价格拓展表 新增修改价格,库存类型
+ALTER TABLE jsh_material_extend
+  ADD COLUMN standard VARCHAR(100) DEFAULT NULL COMMENT '规格',
+  ADD COLUMN color VARCHAR(50) DEFAULT NULL COMMENT '颜色',
+  ADD COLUMN weight DECIMAL(24,2) DEFAULT NULL COMMENT '基础重量(kg)',
+  ADD COLUMN model VARCHAR(100) DEFAULT NULL COMMENT '型号',
+  ADD COLUMN enabled TINYINT DEFAULT 1 COMMENT '启用 0-禁用  1-启用';
+
+-- 商品UPC表
+DROP TABLE IF EXISTS `material_upc`;
+CREATE TABLE `material_upc` (
+  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `material_extend_id` BIGINT DEFAULT NULL COMMENT '商品拓展id',
+  `upc` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'upc值',
+  `default_flag` TINYINT DEFAULT NULL COMMENT '是否默认',
+  `delete_flag`  TINYINT DEFAULT 0 COMMENT '删除标记,0未删除,1删除',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='商品UPC表';
+
+-- 商品单位表
+DROP TABLE IF EXISTS `material_unit`;
+CREATE TABLE `material_unit` (
+  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `material_extend_id` BIGINT DEFAULT NULL COMMENT '商品拓展id',
+  `unit_id` BIGINT DEFAULT NULL COMMENT '单位id',
+  `ratio` INT DEFAULT 1 COMMENT '单位比例',
+  `name` varchar(50) DEFAULT NULL COMMENT '名称',
+  `delete_flag`  TINYINT DEFAULT 0 COMMENT '删除标记,0未删除,1删除',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='商品单位表';
 
 
 

+ 3 - 3
src/main/java/com/jsh/erp/controller/MaterialController.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.jsh.erp.base.BaseController;
 import com.jsh.erp.base.TableDataInfo;
-import com.jsh.erp.datasource.dto.MaterialDto;
+import com.jsh.erp.datasource.dto.MaterialDTO;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
 import com.jsh.erp.service.*;
@@ -100,7 +100,7 @@ public class MaterialController extends BaseController {
 
     @PostMapping(value = "/add")
     @ApiOperation(value = "新增")
-    public String addResource(@RequestBody MaterialDto obj, HttpServletRequest request)throws Exception {
+    public String addResource(@RequestBody MaterialDTO obj, HttpServletRequest request)throws Exception {
         Map<String, Object> objectMap = new HashMap<>();
         int insert = materialService.insertMaterial(obj, request);
         return returnStr(objectMap, insert);
@@ -108,7 +108,7 @@ public class MaterialController extends BaseController {
 
     @PutMapping(value = "/update")
     @ApiOperation(value = "修改")
-    public String updateResource(@RequestBody MaterialDto obj, HttpServletRequest request)throws Exception {
+    public String updateResource(@RequestBody MaterialDTO obj, HttpServletRequest request)throws Exception {
         Map<String, Object> objectMap = new HashMap<>();
         int update = materialService.updateMaterial(obj, request);
         return returnStr(objectMap, update);

+ 2 - 3
src/main/java/com/jsh/erp/datasource/dto/MaterialDto.java

@@ -2,7 +2,6 @@ package com.jsh.erp.datasource.dto;
 
 import com.alibaba.fastjson.JSONArray;
 import com.jsh.erp.datasource.entities.Material;
-import com.jsh.erp.datasource.entities.MaterialBatch;
 import com.jsh.erp.datasource.entities.MaterialExtend;
 import com.jsh.erp.datasource.entities.MaterialInitialStock;
 import io.swagger.annotations.ApiModelProperty;
@@ -14,12 +13,12 @@ import java.util.List;
  * 商品信息
  */
 @Data
-public class MaterialDto extends Material {
+public class MaterialDTO extends Material {
 
     @ApiModelProperty("商品条码信息")
     private List<MaterialExtend> mbList;
 
-    @ApiModelProperty("商品库存信息")
+    @ApiModelProperty("商品初始库存信息")
     private List<MaterialInitialStock> stock;
 
     private JSONArray sortList;

+ 23 - 0
src/main/java/com/jsh/erp/datasource/dto/MaterialExtendDTO.java

@@ -0,0 +1,23 @@
+package com.jsh.erp.datasource.dto;
+
+import com.jsh.erp.datasource.entities.MaterialExtend;
+import com.jsh.erp.datasource.entities.MaterialUnit;
+import com.jsh.erp.datasource.entities.MaterialUpc;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 商品拓展信息
+ */
+@Data
+public class MaterialExtendDTO extends MaterialExtend {
+
+    @ApiModelProperty("商品UPC集合")
+    private List<MaterialUpc> upcList;
+
+    @ApiModelProperty("商品单位集合")
+    private List<MaterialUnit> unitList;
+
+}

+ 22 - 22
src/main/java/com/jsh/erp/datasource/entities/Material.java

@@ -11,7 +11,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 产品表实体类(商品信息)
+ * 商品表实体类
  */
 @Data
 @Accessors(chain = true)
@@ -27,36 +27,18 @@ public class Material {
     @ApiModelProperty("产品名称")
     private String name;
 
-    @ApiModelProperty("型号")
-    private String model;
-
-    @ApiModelProperty("规格")
-    private String standard;
-
     @ApiModelProperty("品牌")
     private String brand;
 
     @ApiModelProperty("助记码")
     private String mnemonic;
 
-    @ApiModelProperty("颜色")
-    private String color;
-
-    @ApiModelProperty("单位-单个")
-    private String unit;
-
     @ApiModelProperty("备注")
     private String remark;
 
     @ApiModelProperty("图片名称")
     private String imgName;
 
-    @ApiModelProperty("计量单位Id")
-    private Long unitId;
-
-    @ApiModelProperty("基础重量(kg)")
-    private BigDecimal weight;
-
     @ApiModelProperty("启用 0-禁用  1-启用")
     private Boolean enabled;
 
@@ -72,9 +54,6 @@ public class Material {
     @ApiModelProperty("是否开启序列号,0否,1是")
     private String enableSerialNumber;
 
-    @ApiModelProperty("是否开启批号,0否,1是")
-    private String enableBatchNumber;
-
     @ApiModelProperty("租户id")
     private Long tenantId;
 
@@ -99,6 +78,27 @@ public class Material {
     @ApiModelProperty("商品提醒")
     private String reminder;
 
+    @ApiModelProperty("型号")
+    private String model;
+
+    @ApiModelProperty("规格")
+    private String standard;
+
+    @ApiModelProperty("颜色")
+    private String color;
+
+    @ApiModelProperty("单位-单个")
+    private String unit;
+
+    @ApiModelProperty("计量单位Id")
+    private Long unitId;
+
+    @ApiModelProperty("基础重量(kg)")
+    private BigDecimal weight;
+
+    @ApiModelProperty("是否开启批号,0否,1是")
+    private String enableBatchNumber;
+
     @TableField(exist = false)
     private List<MaterialExtend> list;
 

+ 37 - 21
src/main/java/com/jsh/erp/datasource/entities/MaterialExtend.java

@@ -26,21 +26,6 @@ public class MaterialExtend {
     @ApiModelProperty("商品单位")
     private String commodityUnit;
 
-    @ApiModelProperty("商品属性")
-    private String sku;
-
-    @ApiModelProperty("采购价格")
-    private BigDecimal purchaseDecimal;
-
-    @ApiModelProperty("零售价格")
-    private BigDecimal commodityDecimal;
-
-    @ApiModelProperty("销售价格")
-    private BigDecimal wholesaleDecimal;
-
-    @ApiModelProperty("最低售价")
-    private BigDecimal lowDecimal;
-
     @ApiModelProperty("是否为默认单位,1是,0否")
     private String defaultFlag;
 
@@ -63,6 +48,43 @@ public class MaterialExtend {
     @ApiModelProperty("删除标记,0未删除,1删除")
     private String deleteFlag;
 
+    @ApiModelProperty("商品条码")
+    private String barCode;
+
+    @ApiModelProperty("单位比例")
+    private Integer ratio;
+
+    @ApiModelProperty("规格")
+    private String standard;
+
+    @ApiModelProperty("颜色")
+    private String color;
+
+    @ApiModelProperty("基础重量(kg)")
+    private BigDecimal weight;
+
+    @ApiModelProperty("型号")
+    private String model;
+
+    @ApiModelProperty("启用 0-禁用  1-启用")
+    private Boolean enabled;
+
+
+    @ApiModelProperty("商品属性")
+    private String sku;
+
+    @ApiModelProperty("采购价格")
+    private BigDecimal purchaseDecimal;
+
+    @ApiModelProperty("零售价格")
+    private BigDecimal commodityDecimal;
+
+    @ApiModelProperty("销售价格")
+    private BigDecimal wholesaleDecimal;
+
+    @ApiModelProperty("最低售价")
+    private BigDecimal lowDecimal;
+
     @ApiModelProperty("生产日期")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date productionDate;
@@ -73,9 +95,6 @@ public class MaterialExtend {
     @ApiModelProperty("供应商id")
     private Long supplierId;
 
-    @ApiModelProperty("商品条码")
-    private String barCode;
-
     @ApiModelProperty("批次号")
     private String batchNumber;
 
@@ -88,9 +107,6 @@ public class MaterialExtend {
     @ApiModelProperty("仓位货架")
     private String position;
 
-    @ApiModelProperty("单位比例")
-    private Integer ratio;
-
     public void setBarCode(String barCode) {
         this.barCode = barCode == null ? null : barCode.trim();
     }

+ 33 - 0
src/main/java/com/jsh/erp/datasource/entities/MaterialUnit.java

@@ -0,0 +1,33 @@
+package com.jsh.erp.datasource.entities;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 商品单位
+ */
+@Data
+public class MaterialUnit {
+
+    @ApiModelProperty("主键id")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("商品扩展id")
+    private Long materialExtendId;
+
+    @ApiModelProperty("单位id")
+    private Long unitId;
+
+    @ApiModelProperty("单位比例")
+    private Integer ratio;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("删除标记,0未删除,1删除")
+    private Boolean deleteFlag;
+
+}

+ 32 - 0
src/main/java/com/jsh/erp/datasource/entities/MaterialUpc.java

@@ -0,0 +1,32 @@
+package com.jsh.erp.datasource.entities;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 商品UPC
+ */
+@Data
+public class MaterialUpc {
+
+    @ApiModelProperty("主键id")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("商品扩展id")
+    private Long materialExtendId;
+
+    @ApiModelProperty("upc值")
+    private String upc;
+
+    @ApiModelProperty("是否默认")
+    private Boolean defaultFlag;
+
+    @ApiModelProperty("删除标记,0未删除,1删除")
+    private Boolean deleteFlag;
+
+
+
+}

+ 9 - 0
src/main/java/com/jsh/erp/datasource/mappers/MaterialUnitMapper.java

@@ -0,0 +1,9 @@
+package com.jsh.erp.datasource.mappers;
+
+import com.jsh.erp.datasource.entities.MaterialUnit;
+
+public interface MaterialUnitMapper extends BaseMapperX<MaterialUnit> {
+
+
+
+}

+ 7 - 0
src/main/java/com/jsh/erp/datasource/mappers/MaterialUpcMapper.java

@@ -0,0 +1,7 @@
+package com.jsh.erp.datasource.mappers;
+
+import com.jsh.erp.datasource.entities.MaterialUpc;
+
+public interface MaterialUpcMapper extends BaseMapperX<MaterialUpc> {
+    
+}

+ 0 - 3
src/main/java/com/jsh/erp/service/MaterialExtendService.java

@@ -2,9 +2,6 @@ package com.jsh.erp.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.jsh.erp.datasource.dto.MaterialDto;
-import com.jsh.erp.datasource.entities.Log;
-import com.jsh.erp.datasource.entities.MaterialBatch;
 import com.jsh.erp.datasource.entities.MaterialExtend;
 import com.jsh.erp.datasource.vo.MaterialExtendVo4List;
 import org.springframework.transaction.annotation.Transactional;

+ 7 - 4
src/main/java/com/jsh/erp/service/MaterialService.java

@@ -4,14 +4,13 @@ package com.jsh.erp.service;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.jsh.erp.datasource.dto.MaterialDto;
+import com.jsh.erp.datasource.dto.MaterialDTO;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.pda.dto.PDAInventoryDTO;
 import com.jsh.erp.datasource.pda.vo.PDADepotItemVO;
 import com.jsh.erp.datasource.vo.MaterialCurrentStock4SystemSku;
 import com.jsh.erp.datasource.pda.vo.PDATypeTree;
 import com.jsh.erp.datasource.vo.MaterialWarnListVo;
-import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
 import com.jsh.erp.utils.BaseResponseInfo;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -42,14 +41,14 @@ public interface MaterialService extends IService<Material> {
      * @param obj
      */
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
-    int insertMaterial(MaterialDto obj, HttpServletRequest request)throws Exception;
+    int insertMaterial(MaterialDTO obj, HttpServletRequest request)throws Exception;
 
     /**
      * 修改商品
      * @param obj
      */
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
-    int updateMaterial(MaterialDto obj, HttpServletRequest request) throws Exception;
+    int updateMaterial(MaterialDTO obj, HttpServletRequest request) throws Exception;
 
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     int deleteMaterial(Long id, HttpServletRequest request)throws Exception;
@@ -149,6 +148,10 @@ public interface MaterialService extends IService<Material> {
 
     List<String> getMaterialNameList();
 
+    /**
+     * 根据条码查询商品信息
+     * @param barCode 商品条码
+     */
     List<MaterialVo4Unit> getMaterialByBarCode(String barCode);
 
     List<MaterialVo4Unit> getMaterialByBarCode(List<String> barCodeList);

+ 0 - 5
src/main/java/com/jsh/erp/service/impl/MaterialExtendServiceImpl.java

@@ -1,12 +1,9 @@
 package com.jsh.erp.service.impl;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jsh.erp.constants.BusinessConstants;
 import com.jsh.erp.constants.ExceptionConstants;
-import com.jsh.erp.datasource.dto.MaterialDto;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.mappers.MaterialCurrentStockMapper;
 import com.jsh.erp.datasource.mappers.MaterialExtendMapper;
@@ -22,8 +19,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;

+ 3 - 4
src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java

@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jsh.erp.constants.BusinessConstants;
 import com.jsh.erp.constants.ExceptionConstants;
-import com.jsh.erp.datasource.dto.MaterialDto;
+import com.jsh.erp.datasource.dto.MaterialDTO;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.mappers.*;
 import com.jsh.erp.datasource.pda.dto.PDAInventoryDTO;
@@ -17,7 +17,6 @@ import com.jsh.erp.datasource.vo.MaterialCurrentStock4SystemSku;
 import com.jsh.erp.datasource.pda.vo.PDATypeTree;
 import com.jsh.erp.datasource.vo.MaterialVoSearch;
 import com.jsh.erp.datasource.vo.MaterialWarnListVo;
-import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.exception.JshException;
 import com.jsh.erp.query.LambdaQueryWrapperX;
@@ -184,7 +183,7 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
      */
     @Override
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
-    public int insertMaterial(MaterialDto material, HttpServletRequest request)throws Exception {
+    public int insertMaterial(MaterialDTO material, HttpServletRequest request)throws Exception {
         //商品主表信息
         Material m = material;
         //设置状态
@@ -238,7 +237,7 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
      */
     @Override
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
-    public int updateMaterial(MaterialDto obj, HttpServletRequest request) throws Exception{
+    public int updateMaterial(MaterialDTO obj, HttpServletRequest request) throws Exception{
         Material material = obj;
         try{
             //修改商品属性