From 72e3e31c4a429584215479c1eca5ebea304861ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Fri, 29 Oct 2021 19:52:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=89=E5=85=A8=E5=BA=93?= =?UTF-8?q?=E5=AD=98=EF=BC=8C=E8=B0=83=E6=95=B4=E4=B8=BA=E6=AF=8F=E4=B8=AA?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=9A=84=E5=AE=89=E5=85=A8=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jshERP-boot/docs/jsh_erp.sql | 54 ++++---- .../docs/数据库更新记录-首次安装请勿使用.txt | 14 +- .../jsh/erp/controller/DepotController.java | 5 + .../erp/controller/MaterialController.java | 19 ++- .../jsh/erp/datasource/entities/DepotEx.java | 4 + .../jsh/erp/datasource/entities/Material.java | 20 +-- .../datasource/entities/MaterialExample.java | 120 +++++++++--------- .../entities/MaterialInitialStock.java | 20 +++ .../entities/MaterialInitialStockExample.java | 120 ++++++++++++++++++ .../erp/service/material/MaterialService.java | 54 +++++++- .../mapper_xml/DepotItemMapperEx.xml | 10 +- .../mapper_xml/MaterialInitialStockMapper.xml | 40 +++++- .../resources/mapper_xml/MaterialMapper.xml | 52 ++++---- 13 files changed, 383 insertions(+), 149 deletions(-) diff --git a/jshERP-boot/docs/jsh_erp.sql b/jshERP-boot/docs/jsh_erp.sql index d3e6d699..c0df8f29 100644 --- a/jshERP-boot/docs/jsh_erp.sql +++ b/jshERP-boot/docs/jsh_erp.sql @@ -10,7 +10,7 @@ Target Server Type : MYSQL Target Server Version : 50704 File Encoding : 65001 -Date: 2021-09-28 00:32:28 +Date: 2021-10-29 18:44:03 */ SET FOREIGN_KEY_CHECKS=0; @@ -386,7 +386,6 @@ CREATE TABLE `jsh_material` ( `category_id` bigint(20) DEFAULT NULL COMMENT '产品类型id', `name` varchar(50) DEFAULT NULL COMMENT '名称', `mfrs` varchar(50) DEFAULT NULL COMMENT '制造商', - `safety_stock` decimal(24,6) DEFAULT NULL COMMENT '安全存量(KG)', `model` varchar(50) DEFAULT NULL COMMENT '型号', `standard` varchar(50) DEFAULT NULL COMMENT '规格', `color` varchar(50) DEFAULT NULL COMMENT '颜色', @@ -395,6 +394,7 @@ CREATE TABLE `jsh_material` ( `img_name` varchar(500) DEFAULT NULL COMMENT '图片名称', `unit_id` bigint(20) DEFAULT NULL COMMENT '计量单位Id', `expiry_num` int(10) DEFAULT NULL COMMENT '保质期天数', + `weight` decimal(24,6) DEFAULT NULL COMMENT '基础重量(kg)', `enabled` bit(1) DEFAULT NULL COMMENT '启用 0-禁用 1-启用', `other_field1` varchar(50) DEFAULT NULL COMMENT '自定义1', `other_field2` varchar(50) DEFAULT NULL COMMENT '自定义2', @@ -411,15 +411,15 @@ CREATE TABLE `jsh_material` ( -- ---------------------------- -- Records of jsh_material -- ---------------------------- -INSERT INTO `jsh_material` VALUES ('568', '17', '商品1', '制1', '100.000000', 'sp1', '', '', '个', '', null, null, null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('569', '17', '商品2', '', '200.000000', 'sp2', '', '', '只', '', null, null, null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('570', '17', '商品3', '', '300.000000', 'sp3', '', '', '个', '', null, null, null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('577', null, '商品8', '', null, 'sp8', '', '', '', '', null, '15', null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('579', '21', '商品17', '', null, 'sp17', '', '', '', '', null, '15', null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('586', '17', '序列号商品测试', '', null, 'xlh123', '', '', '个', '', null, null, null, '', '', '', '', '1', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('587', '17', '商品test1', '南通中远', null, '', 'test1', '', '个', '', null, null, null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('588', '21', '商品200', 'fafda', '112.000000', 'weqwe', '300ml', '红色', '个', 'aaaabbbbb', null, null, null, '', '', '', '', '0', '0', '63', '0'); -INSERT INTO `jsh_material` VALUES ('619', null, '衣服', null, null, null, null, null, '件', null, '', null, null, '', null, null, null, '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('568', '17', '商品1', '制1', 'sp1', '', '', '个', '', null, null, null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('569', '17', '商品2', '', 'sp2', '', '', '只', '', null, null, null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('570', '17', '商品3', '', 'sp3', '', '', '个', '', null, null, null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('577', null, '商品8', '', 'sp8', '', '', '', '', null, '15', null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('579', '21', '商品17', '', 'sp17', '', '', '', '', null, '15', null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('586', '17', '序列号商品测试', '', 'xlh123', '', '', '个', '', null, null, null, null, '', '', '', '', '1', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('587', '17', '商品test1', '南通中远', '', 'test1', '', '个', '', null, null, null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('588', '21', '商品200', 'fafda', 'weqwe', '300ml', '红色', '个', 'aaaabbbbb', null, null, null, null, '', '', '', '', '0', '0', '63', '0'); +INSERT INTO `jsh_material` VALUES ('619', null, '衣服', null, null, null, null, '件', null, '', null, null, null, '', null, null, null, '0', '0', '63', '0'); -- ---------------------------- -- Table structure for jsh_material_attribute @@ -546,6 +546,8 @@ CREATE TABLE `jsh_material_initial_stock` ( `material_id` bigint(20) DEFAULT NULL COMMENT '产品id', `depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id', `number` decimal(24,6) DEFAULT NULL COMMENT '初始库存数量', + `low_safe_stock` decimal(24,6) DEFAULT NULL COMMENT '最低库存数量', + `high_safe_stock` decimal(24,6) DEFAULT NULL COMMENT '最高库存数量', `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', PRIMARY KEY (`id`) @@ -742,21 +744,21 @@ INSERT INTO `jsh_sequence` VALUES ('depot_number_seq', '1', '999999999999999999' -- ---------------------------- DROP TABLE IF EXISTS `jsh_serial_number`; CREATE TABLE `jsh_serial_number` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', - `material_id` bigint(20) DEFAULT NULL COMMENT '产品表id', - `depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id', - `serial_number` varchar(64) DEFAULT NULL COMMENT '序列号', - `is_sell` varchar(1) DEFAULT '0' COMMENT '是否卖出,0未卖出,1卖出', - `remark` varchar(1024) DEFAULT NULL COMMENT '备注', - `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `creator` bigint(20) DEFAULT NULL COMMENT '创建人', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `updater` bigint(20) DEFAULT NULL COMMENT '更新人', - `in_bill_no` varchar(50) DEFAULT NULL COMMENT '入库单号', - `out_bill_no` varchar(50) DEFAULT NULL COMMENT '出库单号', - `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', - PRIMARY KEY (`id`) + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `material_id` bigint(20) DEFAULT NULL COMMENT '产品表id', + `depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id', + `serial_number` varchar(64) DEFAULT NULL COMMENT '序列号', + `is_sell` varchar(1) DEFAULT '0' COMMENT '是否卖出,0未卖出,1卖出', + `remark` varchar(1024) DEFAULT NULL COMMENT '备注', + `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` bigint(20) DEFAULT NULL COMMENT '更新人', + `in_bill_no` varchar(50) DEFAULT NULL COMMENT '入库单号', + `out_bill_no` varchar(50) DEFAULT NULL COMMENT '出库单号', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', + PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8 COMMENT='序列号表'; -- ---------------------------- diff --git a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt index 7d0dd8fa..3dc4b7c3 100644 --- a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt +++ b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt @@ -1273,4 +1273,16 @@ delete from jsh_function where number='010104'; -- by jishenghua -- 给租户表增加备注字段 -- -------------------------------------------------------- -alter table jsh_tenant add remark varchar(500) DEFAULT NULL COMMENT '备注' after expire_time; \ No newline at end of file +alter table jsh_tenant add remark varchar(500) DEFAULT NULL COMMENT '备注' after expire_time; + +-- -------------------------------------------------------- +-- 时间 2021年10月29日 +-- by jishenghua +-- 给商品初始库存表增加最低库存数量、最高库存数量字段 +-- 给商品表增加基础重量字段 +-- 给商品表移除安全库存字段 +-- -------------------------------------------------------- +alter table jsh_material_initial_stock add low_safe_stock decimal(24,6) DEFAULT NULL COMMENT '最低库存数量' after number; +alter table jsh_material_initial_stock add high_safe_stock decimal(24,6) DEFAULT NULL COMMENT '最高库存数量' after low_safe_stock; +alter table jsh_material add weight decimal(24,6) DEFAULT NULL COMMENT '基础重量(kg)' after expiry_num; +alter table jsh_material drop column safety_stock; \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotController.java index 369d1245..d95a52e0 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotController.java @@ -6,6 +6,8 @@ import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Depot; import com.jsh.erp.datasource.entities.DepotEx; +import com.jsh.erp.datasource.entities.MaterialCurrentStock; +import com.jsh.erp.datasource.entities.MaterialInitialStock; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.material.MaterialService; @@ -153,6 +155,9 @@ public class DepotController { BigDecimal currentStock = materialService.getCurrentStock(mId, depot.getId()); de.setInitStock(initStock); de.setCurrentStock(currentStock); + MaterialInitialStock materialInitialStock = materialService.getSafeStock(mId, depot.getId()); + de.setLowSafeStock(materialInitialStock.getLowSafeStock()); + de.setHighSafeStock(materialInitialStock.getHighSafeStock()); } else { de.setInitStock(BigDecimal.ZERO); de.setCurrentStock(BigDecimal.ZERO); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java index 13d3f358..c977dc9d 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java @@ -327,23 +327,22 @@ public class MaterialController { try { List dataList = materialService.findByAll(StringUtil.toNull(barCode), StringUtil.toNull(name), StringUtil.toNull(standard), StringUtil.toNull(model), StringUtil.toNull(categoryId)); - String[] names = {"名称", "类型", "型号", "安全存量", "单位", "零售价", "最低售价", "采购价", "销售价", "备注", "状态"}; + String[] names = {"名称", "类型", "型号", "单位", "零售价", "最低售价", "采购价", "销售价", "备注", "状态"}; String title = "商品信息"; List objects = new ArrayList(); if (null != dataList) { for (MaterialVo4Unit m : dataList) { - String[] objs = new String[11]; + String[] objs = new String[10]; objs[0] = m.getName(); objs[1] = m.getCategoryName(); objs[2] = m.getModel(); - objs[3] = m.getSafetyStock() == null? "" : m.getSafetyStock().toString(); - objs[4] = m.getCommodityUnit(); - objs[5] = m.getCommodityDecimal() == null? "" : m.getCommodityDecimal().toString(); - objs[6] = m.getLowDecimal() == null? "" : m.getLowDecimal().toString(); - objs[7] = m.getPurchaseDecimal() == null? "" : m.getPurchaseDecimal().toString(); - objs[8] = m.getWholesaleDecimal() == null? "" : m.getWholesaleDecimal().toString(); - objs[9] = m.getRemark(); - objs[10] = m.getEnabled() ? "启用" : "禁用"; + objs[3] = m.getCommodityUnit(); + objs[4] = m.getCommodityDecimal() == null? "" : m.getCommodityDecimal().toString(); + objs[5] = m.getLowDecimal() == null? "" : m.getLowDecimal().toString(); + objs[6] = m.getPurchaseDecimal() == null? "" : m.getPurchaseDecimal().toString(); + objs[7] = m.getWholesaleDecimal() == null? "" : m.getWholesaleDecimal().toString(); + objs[8] = m.getRemark(); + objs[9] = m.getEnabled() ? "启用" : "禁用"; objects.add(objs); } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotEx.java index 42f4ab56..a7080619 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotEx.java @@ -19,4 +19,8 @@ public class DepotEx extends Depot{ private BigDecimal currentStock; + private BigDecimal lowSafeStock; + + private BigDecimal highSafeStock; + } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/Material.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/Material.java index 92b04c09..c80515fa 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/Material.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/Material.java @@ -11,8 +11,6 @@ public class Material { private String mfrs; - private BigDecimal safetyStock; - private String model; private String standard; @@ -29,6 +27,8 @@ public class Material { private Integer expiryNum; + private BigDecimal weight; + private Boolean enabled; private String otherField1; @@ -77,14 +77,6 @@ public class Material { this.mfrs = mfrs == null ? null : mfrs.trim(); } - public BigDecimal getSafetyStock() { - return safetyStock; - } - - public void setSafetyStock(BigDecimal safetyStock) { - this.safetyStock = safetyStock; - } - public String getModel() { return model; } @@ -149,6 +141,14 @@ public class Material { this.expiryNum = expiryNum; } + public BigDecimal getWeight() { + return weight; + } + + public void setWeight(BigDecimal weight) { + this.weight = weight; + } + public Boolean getEnabled() { return enabled; } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialExample.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialExample.java index aeb8dd1a..1e12f9de 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialExample.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialExample.java @@ -365,66 +365,6 @@ public class MaterialExample { return (Criteria) this; } - public Criteria andSafetyStockIsNull() { - addCriterion("safety_stock is null"); - return (Criteria) this; - } - - public Criteria andSafetyStockIsNotNull() { - addCriterion("safety_stock is not null"); - return (Criteria) this; - } - - public Criteria andSafetyStockEqualTo(BigDecimal value) { - addCriterion("safety_stock =", value, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockNotEqualTo(BigDecimal value) { - addCriterion("safety_stock <>", value, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockGreaterThan(BigDecimal value) { - addCriterion("safety_stock >", value, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockGreaterThanOrEqualTo(BigDecimal value) { - addCriterion("safety_stock >=", value, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockLessThan(BigDecimal value) { - addCriterion("safety_stock <", value, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockLessThanOrEqualTo(BigDecimal value) { - addCriterion("safety_stock <=", value, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockIn(List values) { - addCriterion("safety_stock in", values, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockNotIn(List values) { - addCriterion("safety_stock not in", values, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("safety_stock between", value1, value2, "safetyStock"); - return (Criteria) this; - } - - public Criteria andSafetyStockNotBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("safety_stock not between", value1, value2, "safetyStock"); - return (Criteria) this; - } - public Criteria andModelIsNull() { addCriterion("model is null"); return (Criteria) this; @@ -965,6 +905,66 @@ public class MaterialExample { return (Criteria) this; } + public Criteria andWeightIsNull() { + addCriterion("weight is null"); + return (Criteria) this; + } + + public Criteria andWeightIsNotNull() { + addCriterion("weight is not null"); + return (Criteria) this; + } + + public Criteria andWeightEqualTo(BigDecimal value) { + addCriterion("weight =", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightNotEqualTo(BigDecimal value) { + addCriterion("weight <>", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightGreaterThan(BigDecimal value) { + addCriterion("weight >", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("weight >=", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightLessThan(BigDecimal value) { + addCriterion("weight <", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightLessThanOrEqualTo(BigDecimal value) { + addCriterion("weight <=", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightIn(List values) { + addCriterion("weight in", values, "weight"); + return (Criteria) this; + } + + public Criteria andWeightNotIn(List values) { + addCriterion("weight not in", values, "weight"); + return (Criteria) this; + } + + public Criteria andWeightBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("weight between", value1, value2, "weight"); + return (Criteria) this; + } + + public Criteria andWeightNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("weight not between", value1, value2, "weight"); + return (Criteria) this; + } + public Criteria andEnabledIsNull() { addCriterion("enabled is null"); return (Criteria) this; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java index 3e40be9c..4c1203e7 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java @@ -11,6 +11,10 @@ public class MaterialInitialStock { private BigDecimal number; + private BigDecimal lowSafeStock; + + private BigDecimal highSafeStock; + private Long tenantId; private String deleteFlag; @@ -47,6 +51,22 @@ public class MaterialInitialStock { this.number = number; } + public BigDecimal getLowSafeStock() { + return lowSafeStock; + } + + public void setLowSafeStock(BigDecimal lowSafeStock) { + this.lowSafeStock = lowSafeStock; + } + + public BigDecimal getHighSafeStock() { + return highSafeStock; + } + + public void setHighSafeStock(BigDecimal highSafeStock) { + this.highSafeStock = highSafeStock; + } + public Long getTenantId() { return tenantId; } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java index ac206a0e..f1a2715f 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java @@ -345,6 +345,126 @@ public class MaterialInitialStockExample { return (Criteria) this; } + public Criteria andLowSafeStockIsNull() { + addCriterion("low_safe_stock is null"); + return (Criteria) this; + } + + public Criteria andLowSafeStockIsNotNull() { + addCriterion("low_safe_stock is not null"); + return (Criteria) this; + } + + public Criteria andLowSafeStockEqualTo(BigDecimal value) { + addCriterion("low_safe_stock =", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockNotEqualTo(BigDecimal value) { + addCriterion("low_safe_stock <>", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockGreaterThan(BigDecimal value) { + addCriterion("low_safe_stock >", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("low_safe_stock >=", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockLessThan(BigDecimal value) { + addCriterion("low_safe_stock <", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockLessThanOrEqualTo(BigDecimal value) { + addCriterion("low_safe_stock <=", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockIn(List values) { + addCriterion("low_safe_stock in", values, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockNotIn(List values) { + addCriterion("low_safe_stock not in", values, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("low_safe_stock between", value1, value2, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("low_safe_stock not between", value1, value2, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockIsNull() { + addCriterion("high_safe_stock is null"); + return (Criteria) this; + } + + public Criteria andHighSafeStockIsNotNull() { + addCriterion("high_safe_stock is not null"); + return (Criteria) this; + } + + public Criteria andHighSafeStockEqualTo(BigDecimal value) { + addCriterion("high_safe_stock =", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockNotEqualTo(BigDecimal value) { + addCriterion("high_safe_stock <>", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockGreaterThan(BigDecimal value) { + addCriterion("high_safe_stock >", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("high_safe_stock >=", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockLessThan(BigDecimal value) { + addCriterion("high_safe_stock <", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockLessThanOrEqualTo(BigDecimal value) { + addCriterion("high_safe_stock <=", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockIn(List values) { + addCriterion("high_safe_stock in", values, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockNotIn(List values) { + addCriterion("high_safe_stock not in", values, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("high_safe_stock between", value1, value2, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("high_safe_stock not between", value1, value2, "highSafeStock"); + return (Criteria) this; + } + public Criteria andTenantIdIsNull() { addCriterion("tenant_id is null"); return (Criteria) this; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java index 4b880e55..2c01ccc1 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -182,9 +182,17 @@ public class MaterialService { JSONObject jsonObj = stockArr.getJSONObject(i); if(jsonObj.get("id")!=null && jsonObj.get("initStock")!=null) { String number = jsonObj.getString("initStock"); + BigDecimal lowSafeStock = null; + BigDecimal highSafeStock = null; + if(jsonObj.get("lowSafeStock")!=null) { + lowSafeStock = jsonObj.getBigDecimal("lowSafeStock"); + } + if(jsonObj.get("highSafeStock")!=null) { + highSafeStock = jsonObj.getBigDecimal("highSafeStock"); + } Long depotId = jsonObj.getLong("id"); - if(StringUtil.isNotEmpty(number) && Double.valueOf(number)>0) { - insertInitialStockByMaterialAndDepot(depotId, mId, parseBigDecimalEx(number)); + if(StringUtil.isNotEmpty(number) && Double.valueOf(number)>0 || lowSafeStock!=null || highSafeStock!=null) { + insertInitialStockByMaterialAndDepot(depotId, mId, parseBigDecimalEx(number), lowSafeStock, highSafeStock); insertCurrentStockByMaterialAndDepot(depotId, mId, parseBigDecimalEx(number)); } } @@ -221,13 +229,21 @@ public class MaterialService { JSONObject jsonObj = stockArr.getJSONObject(i); if (jsonObj.get("id") != null && jsonObj.get("initStock") != null) { String number = jsonObj.getString("initStock"); + BigDecimal lowSafeStock = null; + BigDecimal highSafeStock = null; + if(jsonObj.get("lowSafeStock")!=null) { + lowSafeStock = jsonObj.getBigDecimal("lowSafeStock"); + } + if(jsonObj.get("highSafeStock")!=null) { + highSafeStock = jsonObj.getBigDecimal("highSafeStock"); + } Long depotId = jsonObj.getLong("id"); //初始库存-先清除再插入 MaterialInitialStockExample example = new MaterialInitialStockExample(); example.createCriteria().andMaterialIdEqualTo(material.getId()).andDepotIdEqualTo(depotId); materialInitialStockMapper.deleteByExample(example); - if (StringUtil.isNotEmpty(number) && Double.valueOf(number) > 0) { - insertInitialStockByMaterialAndDepot(depotId, material.getId(), parseBigDecimalEx(number)); + if (StringUtil.isNotEmpty(number) && Double.valueOf(number) > 0 || lowSafeStock!=null || highSafeStock!=null) { + insertInitialStockByMaterialAndDepot(depotId, material.getId(), parseBigDecimalEx(number), lowSafeStock, highSafeStock); } //更新当前库存 depotItemService.updateCurrentStockFun(material.getId(), depotId); @@ -468,7 +484,6 @@ public class MaterialService { if(null!=categoryId){ m.setCategoryId(categoryId); } - m.setSafetyStock(parseBigDecimalEx(safetyStock)); String manyUnit = ExcelUtils.getContent(src, i, 7); //副单位 String barCode = ExcelUtils.getContent(src, i, 8); //基础条码 String manyBarCode = ExcelUtils.getContent(src, i, 9); //副条码 @@ -598,7 +613,7 @@ public class MaterialService { materialInitialStockMapper.deleteByExample(example); if(stock!=null && stock.compareTo(BigDecimal.ZERO)!=0) { depotId = depot.getId(); - insertInitialStockByMaterialAndDepot(depotId, mId, stock); + insertInitialStockByMaterialAndDepot(depotId, mId, stock, null, null); //更新当前库存 depotItemService.updateCurrentStockFun(mId, depotId); } @@ -663,11 +678,18 @@ public class MaterialService { * @param stock */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void insertInitialStockByMaterialAndDepot(Long depotId, Long mId, BigDecimal stock){ + public void insertInitialStockByMaterialAndDepot(Long depotId, Long mId, BigDecimal stock, BigDecimal lowSafeStock, BigDecimal highSafeStock){ MaterialInitialStock materialInitialStock = new MaterialInitialStock(); materialInitialStock.setDepotId(depotId); materialInitialStock.setMaterialId(mId); + stock = stock == null? BigDecimal.ZERO: stock; materialInitialStock.setNumber(stock); + if(lowSafeStock!=null) { + materialInitialStock.setLowSafeStock(lowSafeStock); + } + if(highSafeStock!=null) { + materialInitialStock.setHighSafeStock(highSafeStock); + } materialInitialStockMapper.insertSelective(materialInitialStock); //存入初始库存 } @@ -788,6 +810,24 @@ public class MaterialService { return stock; } + /** + * 根据商品和仓库获取安全库存信息 + * @param materialId + * @param depotId + * @return + */ + public MaterialInitialStock getSafeStock(Long materialId, Long depotId) { + MaterialInitialStock materialInitialStock = new MaterialInitialStock(); + MaterialInitialStockExample example = new MaterialInitialStockExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdEqualTo(depotId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialInitialStockMapper.selectByExample(example); + if(list!=null && list.size()>0) { + materialInitialStock = list.get(0); + } + return materialInitialStock; + } + public List getMaterialByMeId(Long meId) { List result = new ArrayList(); try{ diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index f3c81294..a7d38651 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -421,10 +421,11 @@ select @@ -102,11 +104,11 @@ insert into jsh_material_initial_stock (id, material_id, depot_id, - number, tenant_id, delete_flag - ) + number, low_safe_stock, high_safe_stock, + tenant_id, delete_flag) values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, - #{number,jdbcType=DECIMAL}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR} - ) + #{number,jdbcType=DECIMAL}, #{lowSafeStock,jdbcType=DECIMAL}, #{highSafeStock,jdbcType=DECIMAL}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) insert into jsh_material_initial_stock @@ -123,6 +125,12 @@ number, + + low_safe_stock, + + + high_safe_stock, + tenant_id, @@ -143,6 +151,12 @@ #{number,jdbcType=DECIMAL}, + + #{lowSafeStock,jdbcType=DECIMAL}, + + + #{highSafeStock,jdbcType=DECIMAL}, + #{tenantId,jdbcType=BIGINT}, @@ -172,6 +186,12 @@ number = #{record.number,jdbcType=DECIMAL}, + + low_safe_stock = #{record.lowSafeStock,jdbcType=DECIMAL}, + + + high_safe_stock = #{record.highSafeStock,jdbcType=DECIMAL}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, @@ -189,6 +209,8 @@ material_id = #{record.materialId,jdbcType=BIGINT}, depot_id = #{record.depotId,jdbcType=BIGINT}, number = #{record.number,jdbcType=DECIMAL}, + low_safe_stock = #{record.lowSafeStock,jdbcType=DECIMAL}, + high_safe_stock = #{record.highSafeStock,jdbcType=DECIMAL}, tenant_id = #{record.tenantId,jdbcType=BIGINT}, delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} @@ -207,6 +229,12 @@ number = #{number,jdbcType=DECIMAL}, + + low_safe_stock = #{lowSafeStock,jdbcType=DECIMAL}, + + + high_safe_stock = #{highSafeStock,jdbcType=DECIMAL}, + tenant_id = #{tenantId,jdbcType=BIGINT}, @@ -221,6 +249,8 @@ set material_id = #{materialId,jdbcType=BIGINT}, depot_id = #{depotId,jdbcType=BIGINT}, number = #{number,jdbcType=DECIMAL}, + low_safe_stock = #{lowSafeStock,jdbcType=DECIMAL}, + high_safe_stock = #{highSafeStock,jdbcType=DECIMAL}, tenant_id = #{tenantId,jdbcType=BIGINT}, delete_flag = #{deleteFlag,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT} diff --git a/jshERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml b/jshERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml index 2eff790e..ecee2db6 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml @@ -6,7 +6,6 @@ - @@ -15,6 +14,7 @@ + @@ -83,9 +83,9 @@ - id, category_id, name, mfrs, safety_stock, model, standard, color, unit, remark, - img_name, unit_id, expiry_num, enabled, other_field1, other_field2, other_field3, - enable_serial_number, enable_batch_number, tenant_id, delete_flag + id, category_id, name, mfrs, model, standard, color, unit, remark, img_name, unit_id, + expiry_num, weight, enabled, other_field1, other_field2, other_field3, enable_serial_number, + enable_batch_number, tenant_id, delete_flag