From f759c0f980b3ccbd5913b8a6e1c7b46b597357f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Tue, 14 Jul 2020 00:18:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BD=93=E5=89=8D=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/jsh_erp.sql | 28 +- docs/数据库更新记录-方便升级.txt | 32 +- .../erp/controller/DepotHeadController.java | 8 +- .../entities/MaterialCurrentStock.java | 65 ++ .../entities/MaterialCurrentStockExample.java | 570 ++++++++++++++++++ .../entities/MaterialInitialStock.java | 65 ++ ....java => MaterialInitialStockExample.java} | 167 +---- .../datasource/entities/MaterialStock.java | 197 ------ .../mappers/MaterialCurrentStockMapper.java | 30 + .../mappers/MaterialInitialStockMapper.java | 30 + .../mappers/MaterialStockMapper.java | 96 --- .../service/depotHead/DepotHeadService.java | 17 +- .../service/depotItem/DepotItemService.java | 54 +- .../erp/service/material/MaterialService.java | 40 +- .../mapper_xml/MaterialCurrentStockMapper.xml | 228 +++++++ .../mapper_xml/MaterialInitialStockMapper.xml | 228 +++++++ .../mapper_xml/MaterialStockMapper.xml | 288 --------- src/test/resources/generatorConfig.xml | 5 +- 18 files changed, 1388 insertions(+), 760 deletions(-) create mode 100644 src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStock.java create mode 100644 src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStockExample.java create mode 100644 src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java rename src/main/java/com/jsh/erp/datasource/entities/{MaterialStockExample.java => MaterialInitialStockExample.java} (73%) delete mode 100644 src/main/java/com/jsh/erp/datasource/entities/MaterialStock.java create mode 100644 src/main/java/com/jsh/erp/datasource/mappers/MaterialCurrentStockMapper.java create mode 100644 src/main/java/com/jsh/erp/datasource/mappers/MaterialInitialStockMapper.java delete mode 100644 src/main/java/com/jsh/erp/datasource/mappers/MaterialStockMapper.java create mode 100644 src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml create mode 100644 src/main/resources/mapper_xml/MaterialInitialStockMapper.xml delete mode 100644 src/main/resources/mapper_xml/MaterialStockMapper.xml diff --git a/docs/jsh_erp.sql b/docs/jsh_erp.sql index cb0fa308..c558c2b9 100644 --- a/docs/jsh_erp.sql +++ b/docs/jsh_erp.sql @@ -721,21 +721,39 @@ INSERT INTO `jsh_material_extend` VALUES ('8', '579', '1007', '箱', '240.000000 INSERT INTO `jsh_material_extend` VALUES ('9', '586', '1008', '个', '12.000000', '15.000000', '15.000000', '15.000000', '1', '2020-02-20 23:47:23', 'jsh', 'jsh', '1582213643084', '63', '0'); -- ---------------------------- --- Table structure for jsh_material_stock +-- Table structure for jsh_material_initial_stock -- ---------------------------- -DROP TABLE IF EXISTS `jsh_material_stock`; -CREATE TABLE `jsh_material_stock` ( +DROP TABLE IF EXISTS `jsh_material_initial_stock`; +CREATE TABLE `jsh_material_initial_stock` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `material_id` bigint(20) DEFAULT NULL COMMENT '产品id', `depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id', `number` decimal(24,6) DEFAULT NULL COMMENT '初始库存数量', `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', - `delete_fag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='产品初始库存'; -- ---------------------------- --- Records of jsh_material_stock +-- Records of jsh_material_initial_stock +-- ---------------------------- + +-- ---------------------------- +-- Table structure for jsh_material_current_stock +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_material_current_stock`; +CREATE TABLE `jsh_material_current_stock` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `material_id` bigint(20) DEFAULT NULL COMMENT '产品id', + `depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id', + `current_number` 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`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='产品当前库存'; + +-- ---------------------------- +-- Records of jsh_material_current_stock -- ---------------------------- -- ---------------------------- diff --git a/docs/数据库更新记录-方便升级.txt b/docs/数据库更新记录-方便升级.txt index f50c8ca2..ebaf2817 100644 --- a/docs/数据库更新记录-方便升级.txt +++ b/docs/数据库更新记录-方便升级.txt @@ -790,4 +790,34 @@ alter table jsh_material drop PriceStrategy; -- 时间:2020年6月18日 -- 增加负库存的启用标记 -- ---------------------------- -alter table jsh_systemconfig add minus_stock_flag varchar(1) DEFAULT '0' COMMENT '负库存启用标记,0未启用,1启用' after customer_flag; \ No newline at end of file +alter table jsh_systemconfig add minus_stock_flag varchar(1) DEFAULT '0' COMMENT '负库存启用标记,0未启用,1启用' after customer_flag; + +-- ---------------------------- +-- 时间 2020年07月13日 +-- by jishenghua +-- 增加产品当前库存表 +-- ---------------------------- +CREATE TABLE `jsh_material_current_stock` ( +`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键' , +`material_id` bigint(20) NULL DEFAULT NULL COMMENT '产品id' , +`depot_id` bigint(20) NULL DEFAULT NULL COMMENT '仓库id' , +`current_number` decimal(24,6) NULL DEFAULT NULL COMMENT '当前库存数量' , +`tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' , +`delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除' , +PRIMARY KEY (`id`) +) +ENGINE=InnoDB +DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci +COMMENT='产品当前库存' +AUTO_INCREMENT=1 +ROW_FORMAT=COMPACT +; + +-- -------------------------------------------------------- +-- 时间 2020年07月13日 +-- by jishenghua +-- 修改jsh_material_stock的表名为jsh_material_initial_stock +-- 修改jsh_material_initial_stock表的删除字段 +-- -------------------------------------------------------- +alter table jsh_material_stock rename to jsh_material_initial_stock +alter table jsh_material_initial_stock change delete_fag delete_flag varchar(1) NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除'; \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/controller/DepotHeadController.java b/src/main/java/com/jsh/erp/controller/DepotHeadController.java index 5d689dc4..b6474aaa 100644 --- a/src/main/java/com/jsh/erp/controller/DepotHeadController.java +++ b/src/main/java/com/jsh/erp/controller/DepotHeadController.java @@ -406,9 +406,9 @@ public class DepotHeadController { * @throws Exception */ @PostMapping(value = "/deleteDepotHeadAndDetail") - public Object deleteDepotHeadAndDetail(@RequestParam("id") Long id) throws Exception{ + public Object deleteDepotHeadAndDetail(@RequestParam("id") Long id, HttpServletRequest request) throws Exception{ JSONObject result = ExceptionConstants.standardSuccess(); - depotHeadService.deleteDepotHeadAndDetail(id); + depotHeadService.deleteDepotHeadAndDetail(id, request); return result; } @@ -419,9 +419,9 @@ public class DepotHeadController { * @throws Exception */ @PostMapping(value = "/batchDeleteDepotHeadAndDetail") - public Object batchDeleteDepotHeadAndDetail(@RequestParam("ids") String ids) throws Exception{ + public Object batchDeleteDepotHeadAndDetail(@RequestParam("ids") String ids, HttpServletRequest request) throws Exception{ JSONObject result = ExceptionConstants.standardSuccess(); - depotHeadService.batchDeleteDepotHeadAndDetail(ids); + depotHeadService.batchDeleteDepotHeadAndDetail(ids, request); return result; } diff --git a/src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStock.java b/src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStock.java new file mode 100644 index 00000000..3402d516 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStock.java @@ -0,0 +1,65 @@ +package com.jsh.erp.datasource.entities; + +import java.math.BigDecimal; + +public class MaterialCurrentStock { + private Long id; + + private Long materialId; + + private Long depotId; + + private BigDecimal currentNumber; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public BigDecimal getCurrentNumber() { + return currentNumber; + } + + public void setCurrentNumber(BigDecimal currentNumber) { + this.currentNumber = currentNumber; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStockExample.java b/src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStockExample.java new file mode 100644 index 00000000..6ad310e2 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/entities/MaterialCurrentStockExample.java @@ -0,0 +1,570 @@ +package com.jsh.erp.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class MaterialCurrentStockExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialCurrentStockExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNull() { + addCriterion("material_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNotNull() { + addCriterion("material_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialIdEqualTo(Long value) { + addCriterion("material_id =", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotEqualTo(Long value) { + addCriterion("material_id <>", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThan(Long value) { + addCriterion("material_id >", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_id >=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThan(Long value) { + addCriterion("material_id <", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThanOrEqualTo(Long value) { + addCriterion("material_id <=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIn(List values) { + addCriterion("material_id in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotIn(List values) { + addCriterion("material_id not in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdBetween(Long value1, Long value2) { + addCriterion("material_id between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotBetween(Long value1, Long value2) { + addCriterion("material_id not between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNull() { + addCriterion("depot_id is null"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNotNull() { + addCriterion("depot_id is not null"); + return (Criteria) this; + } + + public Criteria andDepotIdEqualTo(Long value) { + addCriterion("depot_id =", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotEqualTo(Long value) { + addCriterion("depot_id <>", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThan(Long value) { + addCriterion("depot_id >", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThanOrEqualTo(Long value) { + addCriterion("depot_id >=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThan(Long value) { + addCriterion("depot_id <", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThanOrEqualTo(Long value) { + addCriterion("depot_id <=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdIn(List values) { + addCriterion("depot_id in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotIn(List values) { + addCriterion("depot_id not in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdBetween(Long value1, Long value2) { + addCriterion("depot_id between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotBetween(Long value1, Long value2) { + addCriterion("depot_id not between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andCurrentNumberIsNull() { + addCriterion("current_number is null"); + return (Criteria) this; + } + + public Criteria andCurrentNumberIsNotNull() { + addCriterion("current_number is not null"); + return (Criteria) this; + } + + public Criteria andCurrentNumberEqualTo(BigDecimal value) { + addCriterion("current_number =", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberNotEqualTo(BigDecimal value) { + addCriterion("current_number <>", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberGreaterThan(BigDecimal value) { + addCriterion("current_number >", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("current_number >=", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberLessThan(BigDecimal value) { + addCriterion("current_number <", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberLessThanOrEqualTo(BigDecimal value) { + addCriterion("current_number <=", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberIn(List values) { + addCriterion("current_number in", values, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberNotIn(List values) { + addCriterion("current_number not in", values, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_number between", value1, value2, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_number not between", value1, value2, "currentNumber"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java b/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java new file mode 100644 index 00000000..3e40be9c --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStock.java @@ -0,0 +1,65 @@ +package com.jsh.erp.datasource.entities; + +import java.math.BigDecimal; + +public class MaterialInitialStock { + private Long id; + + private Long materialId; + + private Long depotId; + + private BigDecimal number; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public BigDecimal getNumber() { + return number; + } + + public void setNumber(BigDecimal number) { + this.number = number; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/entities/MaterialStockExample.java b/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java similarity index 73% rename from src/main/java/com/jsh/erp/datasource/entities/MaterialStockExample.java rename to src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java index fe34f386..ac206a0e 100644 --- a/src/main/java/com/jsh/erp/datasource/entities/MaterialStockExample.java +++ b/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockExample.java @@ -4,119 +4,47 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -public class MaterialStockExample { - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ +public class MaterialInitialStockExample { protected String orderByClause; - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ protected boolean distinct; - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ protected List oredCriteria; - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - public MaterialStockExample() { - oredCriteria = new ArrayList(); + public MaterialInitialStockExample() { + oredCriteria = new ArrayList<>(); } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public void setOrderByClause(String orderByClause) { this.orderByClause = orderByClause; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public String getOrderByClause() { return orderByClause; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public void setDistinct(boolean distinct) { this.distinct = distinct; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public boolean isDistinct() { return distinct; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public List getOredCriteria() { return oredCriteria; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public void or(Criteria criteria) { oredCriteria.add(criteria); } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public Criteria or() { Criteria criteria = createCriteriaInternal(); oredCriteria.add(criteria); return criteria; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public Criteria createCriteria() { Criteria criteria = createCriteriaInternal(); if (oredCriteria.size() == 0) { @@ -125,41 +53,23 @@ public class MaterialStockExample { return criteria; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ protected Criteria createCriteriaInternal() { Criteria criteria = new Criteria(); return criteria; } - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public void clear() { oredCriteria.clear(); orderByClause = null; distinct = false; } - /** - * This class was generated by MyBatis Generator. - * This class corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ protected abstract static class GeneratedCriteria { protected List criteria; protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -495,96 +405,83 @@ public class MaterialStockExample { return (Criteria) this; } - public Criteria andDeleteFagIsNull() { - addCriterion("delete_fag is null"); + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); return (Criteria) this; } - public Criteria andDeleteFagIsNotNull() { - addCriterion("delete_fag is not null"); + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); return (Criteria) this; } - public Criteria andDeleteFagEqualTo(String value) { - addCriterion("delete_fag =", value, "deleteFag"); + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagNotEqualTo(String value) { - addCriterion("delete_fag <>", value, "deleteFag"); + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagGreaterThan(String value) { - addCriterion("delete_fag >", value, "deleteFag"); + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagGreaterThanOrEqualTo(String value) { - addCriterion("delete_fag >=", value, "deleteFag"); + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagLessThan(String value) { - addCriterion("delete_fag <", value, "deleteFag"); + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagLessThanOrEqualTo(String value) { - addCriterion("delete_fag <=", value, "deleteFag"); + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagLike(String value) { - addCriterion("delete_fag like", value, "deleteFag"); + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagNotLike(String value) { - addCriterion("delete_fag not like", value, "deleteFag"); + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagIn(List values) { - addCriterion("delete_fag in", values, "deleteFag"); + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagNotIn(List values) { - addCriterion("delete_fag not in", values, "deleteFag"); + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagBetween(String value1, String value2) { - addCriterion("delete_fag between", value1, value2, "deleteFag"); + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); return (Criteria) this; } - public Criteria andDeleteFagNotBetween(String value1, String value2) { - addCriterion("delete_fag not between", value1, value2, "deleteFag"); + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); return (Criteria) this; } } - /** - * This class was generated by MyBatis Generator. - * This class corresponds to the database table jsh_material_stock - * - * @mbggenerated do_not_delete_during_merge - */ public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } } - /** - * This class was generated by MyBatis Generator. - * This class corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ public static class Criterion { private String condition; diff --git a/src/main/java/com/jsh/erp/datasource/entities/MaterialStock.java b/src/main/java/com/jsh/erp/datasource/entities/MaterialStock.java deleted file mode 100644 index 19067781..00000000 --- a/src/main/java/com/jsh/erp/datasource/entities/MaterialStock.java +++ /dev/null @@ -1,197 +0,0 @@ -package com.jsh.erp.datasource.entities; - -import java.math.BigDecimal; - -public class MaterialStock { - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database column jsh_material_stock.id - * - * @mbggenerated - */ - private Long id; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database column jsh_material_stock.material_id - * - * @mbggenerated - */ - private Long materialId; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database column jsh_material_stock.depot_id - * - * @mbggenerated - */ - private Long depotId; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database column jsh_material_stock.number - * - * @mbggenerated - */ - private BigDecimal number; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database column jsh_material_stock.tenant_id - * - * @mbggenerated - */ - private Long tenantId; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database column jsh_material_stock.delete_fag - * - * @mbggenerated - */ - private String deleteFag; - - /** - * This method was generated by MyBatis Generator. - * This method returns the value of the database column jsh_material_stock.id - * - * @return the value of jsh_material_stock.id - * - * @mbggenerated - */ - public Long getId() { - return id; - } - - /** - * This method was generated by MyBatis Generator. - * This method sets the value of the database column jsh_material_stock.id - * - * @param id the value for jsh_material_stock.id - * - * @mbggenerated - */ - public void setId(Long id) { - this.id = id; - } - - /** - * This method was generated by MyBatis Generator. - * This method returns the value of the database column jsh_material_stock.material_id - * - * @return the value of jsh_material_stock.material_id - * - * @mbggenerated - */ - public Long getMaterialId() { - return materialId; - } - - /** - * This method was generated by MyBatis Generator. - * This method sets the value of the database column jsh_material_stock.material_id - * - * @param materialId the value for jsh_material_stock.material_id - * - * @mbggenerated - */ - public void setMaterialId(Long materialId) { - this.materialId = materialId; - } - - /** - * This method was generated by MyBatis Generator. - * This method returns the value of the database column jsh_material_stock.depot_id - * - * @return the value of jsh_material_stock.depot_id - * - * @mbggenerated - */ - public Long getDepotId() { - return depotId; - } - - /** - * This method was generated by MyBatis Generator. - * This method sets the value of the database column jsh_material_stock.depot_id - * - * @param depotId the value for jsh_material_stock.depot_id - * - * @mbggenerated - */ - public void setDepotId(Long depotId) { - this.depotId = depotId; - } - - /** - * This method was generated by MyBatis Generator. - * This method returns the value of the database column jsh_material_stock.number - * - * @return the value of jsh_material_stock.number - * - * @mbggenerated - */ - public BigDecimal getNumber() { - return number; - } - - /** - * This method was generated by MyBatis Generator. - * This method sets the value of the database column jsh_material_stock.number - * - * @param number the value for jsh_material_stock.number - * - * @mbggenerated - */ - public void setNumber(BigDecimal number) { - this.number = number; - } - - /** - * This method was generated by MyBatis Generator. - * This method returns the value of the database column jsh_material_stock.tenant_id - * - * @return the value of jsh_material_stock.tenant_id - * - * @mbggenerated - */ - public Long getTenantId() { - return tenantId; - } - - /** - * This method was generated by MyBatis Generator. - * This method sets the value of the database column jsh_material_stock.tenant_id - * - * @param tenantId the value for jsh_material_stock.tenant_id - * - * @mbggenerated - */ - public void setTenantId(Long tenantId) { - this.tenantId = tenantId; - } - - /** - * This method was generated by MyBatis Generator. - * This method returns the value of the database column jsh_material_stock.delete_fag - * - * @return the value of jsh_material_stock.delete_fag - * - * @mbggenerated - */ - public String getDeleteFag() { - return deleteFag; - } - - /** - * This method was generated by MyBatis Generator. - * This method sets the value of the database column jsh_material_stock.delete_fag - * - * @param deleteFag the value for jsh_material_stock.delete_fag - * - * @mbggenerated - */ - public void setDeleteFag(String deleteFag) { - this.deleteFag = deleteFag == null ? null : deleteFag.trim(); - } -} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialCurrentStockMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialCurrentStockMapper.java new file mode 100644 index 00000000..5f911a91 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialCurrentStockMapper.java @@ -0,0 +1,30 @@ +package com.jsh.erp.datasource.mappers; + +import com.jsh.erp.datasource.entities.MaterialCurrentStock; +import com.jsh.erp.datasource.entities.MaterialCurrentStockExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialCurrentStockMapper { + long countByExample(MaterialCurrentStockExample example); + + int deleteByExample(MaterialCurrentStockExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialCurrentStock record); + + int insertSelective(MaterialCurrentStock record); + + List selectByExample(MaterialCurrentStockExample example); + + MaterialCurrentStock selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialCurrentStock record, @Param("example") MaterialCurrentStockExample example); + + int updateByExample(@Param("record") MaterialCurrentStock record, @Param("example") MaterialCurrentStockExample example); + + int updateByPrimaryKeySelective(MaterialCurrentStock record); + + int updateByPrimaryKey(MaterialCurrentStock record); +} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialInitialStockMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialInitialStockMapper.java new file mode 100644 index 00000000..44c56c78 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialInitialStockMapper.java @@ -0,0 +1,30 @@ +package com.jsh.erp.datasource.mappers; + +import com.jsh.erp.datasource.entities.MaterialInitialStock; +import com.jsh.erp.datasource.entities.MaterialInitialStockExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialInitialStockMapper { + long countByExample(MaterialInitialStockExample example); + + int deleteByExample(MaterialInitialStockExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialInitialStock record); + + int insertSelective(MaterialInitialStock record); + + List selectByExample(MaterialInitialStockExample example); + + MaterialInitialStock selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialInitialStock record, @Param("example") MaterialInitialStockExample example); + + int updateByExample(@Param("record") MaterialInitialStock record, @Param("example") MaterialInitialStockExample example); + + int updateByPrimaryKeySelective(MaterialInitialStock record); + + int updateByPrimaryKey(MaterialInitialStock record); +} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialStockMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialStockMapper.java deleted file mode 100644 index 796825e0..00000000 --- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialStockMapper.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.jsh.erp.datasource.mappers; - -import com.jsh.erp.datasource.entities.MaterialStock; -import com.jsh.erp.datasource.entities.MaterialStockExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface MaterialStockMapper { - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int countByExample(MaterialStockExample example); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int deleteByExample(MaterialStockExample example); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int deleteByPrimaryKey(Long id); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int insert(MaterialStock record); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int insertSelective(MaterialStock record); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - List selectByExample(MaterialStockExample example); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - MaterialStock selectByPrimaryKey(Long id); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int updateByExampleSelective(@Param("record") MaterialStock record, @Param("example") MaterialStockExample example); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int updateByExample(@Param("record") MaterialStock record, @Param("example") MaterialStockExample example); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int updateByPrimaryKeySelective(MaterialStock record); - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table jsh_material_stock - * - * @mbggenerated - */ - int updateByPrimaryKey(MaterialStock record); -} \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index 7f89af86..40ec229b 100644 --- a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -3,10 +3,7 @@ package com.jsh.erp.service.depotHead; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; -import com.jsh.erp.datasource.entities.DepotHead; -import com.jsh.erp.datasource.entities.DepotHeadExample; -import com.jsh.erp.datasource.entities.DepotItem; -import com.jsh.erp.datasource.entities.User; +import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.mappers.DepotHeadMapper; import com.jsh.erp.datasource.mappers.DepotHeadMapperEx; import com.jsh.erp.datasource.mappers.DepotItemMapperEx; @@ -555,7 +552,7 @@ public class DepotHeadService { * @throws Exception */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void deleteDepotHeadAndDetail(Long id) throws Exception { + public void deleteDepotHeadAndDetail(Long id, HttpServletRequest request) throws Exception { //查询单据主表信息 DepotHead depotHead =getDepotHead(id); User userInfo=userService.getCurrentUser(); @@ -581,6 +578,12 @@ public class DepotHeadService { /**删除单据子表数据*/ try{ depotItemMapperEx.batchDeleteDepotItemByDepotHeadIds(new Long []{id}); + //更新当前库存 + List list = depotItemService.getListByHeaderId(id); + for(DepotItem depotItem: list){ + Long tenantId = Long.parseLong(request.getSession().getAttribute("tenantId").toString()); + depotItemService.updateCurrentStock(depotItem,tenantId); + } }catch(Exception e){ JshException.writeFail(logger, e); } @@ -598,11 +601,11 @@ public class DepotHeadService { * @throws Exception */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void batchDeleteDepotHeadAndDetail(String ids) throws Exception{ + public void batchDeleteDepotHeadAndDetail(String ids, HttpServletRequest request) throws Exception{ if(StringUtil.isNotEmpty(ids)){ String [] headIds=ids.split(","); for(int i=0;i getListByHeaderId(Long headerId)throws Exception { + List list =null; + try{ + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andHeaderidEqualTo(headerId); + list = depotItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + public List getDetailList(Long headerId)throws Exception { List list =null; try{ @@ -333,13 +344,18 @@ public class DepotItemService { userInfo); } } - this.deleteDepotItem(tempDeletedJson.getLong("Id"), request); bf.append(tempDeletedJson.getLong("Id")); if(i<(deletedJson.size()-1)){ bf.append(","); } } this.batchDeleteDepotItemByIds(bf.toString()); + //更新当前库存 + for (int i = 0; i < deletedJson.size(); i++) { + JSONObject tempDeletedJson = JSONObject.parseObject(deletedJson.getString(i)); + DepotItem depotItem = getDepotItem(tempDeletedJson.getLong("Id")); + updateCurrentStock(depotItem,tenantId); + } } if (null != insertedJson) { for (int i = 0; i < insertedJson.size(); i++) { @@ -449,6 +465,8 @@ public class DepotItemService { } } this.insertDepotItemWithObj(depotItem); + //更新当前库存 + updateCurrentStock(depotItem,tenantId); } } @@ -576,6 +594,8 @@ public class DepotItemService { } } this.updateDepotItemWithObj(depotItem); + //更新当前库存 + updateCurrentStock(depotItem,tenantId); } } return null; @@ -680,4 +700,28 @@ public class DepotItemService { DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime, tenantId); return stockObj.getOutNum(); } + + /** + * 根据单据明细来批量更新当前库存 + * @param depotItem + * @param tenantId + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateCurrentStock(DepotItem depotItem, Long tenantId){ + MaterialCurrentStockExample example = new MaterialCurrentStockExample(); + example.createCriteria().andMaterialIdEqualTo(depotItem.getMaterialid()).andDepotIdEqualTo(depotItem.getDepotid()) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialCurrentStockMapper.selectByExample(example); + MaterialCurrentStock materialCurrentStock = new MaterialCurrentStock(); + materialCurrentStock.setMaterialId(depotItem.getMaterialid()); + materialCurrentStock.setDepotId(depotItem.getDepotid()); + materialCurrentStock.setCurrentNumber(getStockByParam(depotItem.getDepotid(),depotItem.getMaterialid(),null,null,tenantId)); + if(list!=null && list.size()>0) { + Long mcsId = list.get(0).getId(); + materialCurrentStock.setId(mcsId); + materialCurrentStockMapper.updateByPrimaryKeySelective(materialCurrentStock); + } else { + materialCurrentStockMapper.insertSelective(materialCurrentStock); + } + } } diff --git a/src/main/java/com/jsh/erp/service/material/MaterialService.java b/src/main/java/com/jsh/erp/service/material/MaterialService.java index 722d6f7b..2cf73d98 100644 --- a/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -59,7 +59,7 @@ public class MaterialService { @Resource private UnitService unitService; @Resource - private MaterialStockMapper materialStockMapper; + private MaterialInitialStockMapper materialInitialStockMapper; @Resource private DepotService depotService; @Resource @@ -201,9 +201,9 @@ public class MaterialService { String number = jsonObj.getString("number"); Long depotId = jsonObj.getLong("depotId"); //先清除再插入 - MaterialStockExample example = new MaterialStockExample(); + MaterialInitialStockExample example = new MaterialInitialStockExample(); example.createCriteria().andMaterialIdEqualTo(id).andDepotIdEqualTo(depotId); - materialStockMapper.deleteByExample(example); + materialInitialStockMapper.deleteByExample(example); if (number != null && Double.valueOf(number) > 0) { insertStockByMaterialAndDepot(depotId, id, parseBigDecimalEx(number)); } @@ -490,7 +490,7 @@ public class MaterialService { basicMaterialExtend.setMaterialId(mId); basicMaterialExtend.setDefaultFlag("1"); basicMaterialExtend.setCreateTime(new Date()); - basicMaterialExtend.setUpdateTime(new Date().getTime()); + basicMaterialExtend.setUpdateTime(System.currentTimeMillis()); basicMaterialExtend.setCreateSerial(user.getLoginName()); basicMaterialExtend.setUpdateSerial(user.getLoginName()); materialExtendMapper.insertSelective(basicMaterialExtend); @@ -501,7 +501,7 @@ public class MaterialService { otherMaterialExtend.setMaterialId(mId); otherMaterialExtend.setDefaultFlag("0"); otherMaterialExtend.setCreateTime(new Date()); - otherMaterialExtend.setUpdateTime(new Date().getTime()); + otherMaterialExtend.setUpdateTime(System.currentTimeMillis()); otherMaterialExtend.setCreateSerial(user.getLoginName()); otherMaterialExtend.setUpdateSerial(user.getLoginName()); materialExtendMapper.insertSelective(otherMaterialExtend); @@ -512,9 +512,9 @@ public class MaterialService { for(Depot depot: depotList){ BigDecimal stock = stockMap.get(depot.getId()); //先清除再插入 - MaterialStockExample example = new MaterialStockExample(); + MaterialInitialStockExample example = new MaterialInitialStockExample(); example.createCriteria().andMaterialIdEqualTo(mId).andDepotIdEqualTo(depot.getId()); - materialStockMapper.deleteByExample(example); + materialInitialStockMapper.deleteByExample(example); if(stock!=null && stock.compareTo(BigDecimal.ZERO)!=0) { depotId = depot.getId(); insertStockByMaterialAndDepot(depotId, mId, stock); @@ -576,11 +576,11 @@ public class MaterialService { */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) public void insertStockByMaterialAndDepot(Long depotId, Long mId, BigDecimal stock){ - MaterialStock materialStock = new MaterialStock(); - materialStock.setDepotId(depotId); - materialStock.setMaterialId(mId); - materialStock.setNumber(stock); - materialStockMapper.insertSelective(materialStock); //存入初始库存 + MaterialInitialStock materialInitialStock = new MaterialInitialStock(); + materialInitialStock.setDepotId(depotId); + materialInitialStock.setMaterialId(mId); + materialInitialStock.setNumber(stock); + materialInitialStockMapper.insertSelective(materialInitialStock); //存入初始库存 } public List getMaterialEnableSerialNumberList(Map parameterMap)throws Exception { @@ -697,10 +697,10 @@ public class MaterialService { */ public BigDecimal getInitStock(Long materialId, Long depotId) { BigDecimal stock = BigDecimal.ZERO; - MaterialStockExample example = new MaterialStockExample(); + MaterialInitialStockExample example = new MaterialInitialStockExample(); example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdEqualTo(depotId) - .andDeleteFagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); - List list = materialStockMapper.selectByExample(example); + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialInitialStockMapper.selectByExample(example); if(list!=null && list.size()>0) { stock = list.get(0).getNumber(); } @@ -714,17 +714,17 @@ public class MaterialService { */ public BigDecimal getInitStockByMid(Long depotId, Long materialId) { BigDecimal stock = BigDecimal.ZERO; - MaterialStockExample example = new MaterialStockExample(); + MaterialInitialStockExample example = new MaterialInitialStockExample(); if(depotId!=null) { example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdEqualTo(depotId) - .andDeleteFagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); } else { example.createCriteria().andMaterialIdEqualTo(materialId) - .andDeleteFagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); } - List list = materialStockMapper.selectByExample(example); + List list = materialInitialStockMapper.selectByExample(example); if(list!=null && list.size()>0) { - for(MaterialStock ms: list) { + for(MaterialInitialStock ms: list) { if(ms!=null) { stock = stock.add(ms.getNumber()); } diff --git a/src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml b/src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml new file mode 100644 index 00000000..9d3ca693 --- /dev/null +++ b/src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, material_id, depot_id, current_number, tenant_id, delete_flag + + + + + delete from jsh_material_current_stock + where id = #{id,jdbcType=BIGINT} + + + delete from jsh_material_current_stock + + + + + + insert into jsh_material_current_stock (id, material_id, depot_id, + current_number, tenant_id, delete_flag + ) + values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, + #{currentNumber,jdbcType=DECIMAL}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR} + ) + + + insert into jsh_material_current_stock + + + id, + + + material_id, + + + depot_id, + + + current_number, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{depotId,jdbcType=BIGINT}, + + + #{currentNumber,jdbcType=DECIMAL}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update jsh_material_current_stock + + + id = #{record.id,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + depot_id = #{record.depotId,jdbcType=BIGINT}, + + + current_number = #{record.currentNumber,jdbcType=DECIMAL}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update jsh_material_current_stock + set id = #{record.id,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + depot_id = #{record.depotId,jdbcType=BIGINT}, + current_number = #{record.currentNumber,jdbcType=DECIMAL}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update jsh_material_current_stock + + + material_id = #{materialId,jdbcType=BIGINT}, + + + depot_id = #{depotId,jdbcType=BIGINT}, + + + current_number = #{currentNumber,jdbcType=DECIMAL}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update jsh_material_current_stock + set material_id = #{materialId,jdbcType=BIGINT}, + depot_id = #{depotId,jdbcType=BIGINT}, + current_number = #{currentNumber,jdbcType=DECIMAL}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/MaterialInitialStockMapper.xml b/src/main/resources/mapper_xml/MaterialInitialStockMapper.xml new file mode 100644 index 00000000..99a9dffa --- /dev/null +++ b/src/main/resources/mapper_xml/MaterialInitialStockMapper.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, material_id, depot_id, number, tenant_id, delete_flag + + + + + delete from jsh_material_initial_stock + where id = #{id,jdbcType=BIGINT} + + + delete from jsh_material_initial_stock + + + + + + insert into jsh_material_initial_stock (id, material_id, depot_id, + number, tenant_id, delete_flag + ) + values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, + #{number,jdbcType=DECIMAL}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR} + ) + + + insert into jsh_material_initial_stock + + + id, + + + material_id, + + + depot_id, + + + number, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{depotId,jdbcType=BIGINT}, + + + #{number,jdbcType=DECIMAL}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update jsh_material_initial_stock + + + id = #{record.id,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + depot_id = #{record.depotId,jdbcType=BIGINT}, + + + number = #{record.number,jdbcType=DECIMAL}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update jsh_material_initial_stock + set id = #{record.id,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + depot_id = #{record.depotId,jdbcType=BIGINT}, + number = #{record.number,jdbcType=DECIMAL}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update jsh_material_initial_stock + + + material_id = #{materialId,jdbcType=BIGINT}, + + + depot_id = #{depotId,jdbcType=BIGINT}, + + + number = #{number,jdbcType=DECIMAL}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update jsh_material_initial_stock + set material_id = #{materialId,jdbcType=BIGINT}, + depot_id = #{depotId,jdbcType=BIGINT}, + number = #{number,jdbcType=DECIMAL}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/MaterialStockMapper.xml b/src/main/resources/mapper_xml/MaterialStockMapper.xml deleted file mode 100644 index 9adad88c..00000000 --- a/src/main/resources/mapper_xml/MaterialStockMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - id, material_id, depot_id, number, tenant_id, delete_fag - - - - - - delete from jsh_material_stock - where id = #{id,jdbcType=BIGINT} - - - - delete from jsh_material_stock - - - - - - - insert into jsh_material_stock (id, material_id, depot_id, - number, tenant_id, delete_fag - ) - values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, - #{number,jdbcType=DECIMAL}, #{tenantId,jdbcType=BIGINT}, #{deleteFag,jdbcType=VARCHAR} - ) - - - - insert into jsh_material_stock - - - id, - - - material_id, - - - depot_id, - - - number, - - - tenant_id, - - - delete_fag, - - - - - #{id,jdbcType=BIGINT}, - - - #{materialId,jdbcType=BIGINT}, - - - #{depotId,jdbcType=BIGINT}, - - - #{number,jdbcType=DECIMAL}, - - - #{tenantId,jdbcType=BIGINT}, - - - #{deleteFag,jdbcType=VARCHAR}, - - - - - - - update jsh_material_stock - - - id = #{record.id,jdbcType=BIGINT}, - - - material_id = #{record.materialId,jdbcType=BIGINT}, - - - depot_id = #{record.depotId,jdbcType=BIGINT}, - - - number = #{record.number,jdbcType=DECIMAL}, - - - tenant_id = #{record.tenantId,jdbcType=BIGINT}, - - - delete_fag = #{record.deleteFag,jdbcType=VARCHAR}, - - - - - - - - - update jsh_material_stock - set id = #{record.id,jdbcType=BIGINT}, - material_id = #{record.materialId,jdbcType=BIGINT}, - depot_id = #{record.depotId,jdbcType=BIGINT}, - number = #{record.number,jdbcType=DECIMAL}, - tenant_id = #{record.tenantId,jdbcType=BIGINT}, - delete_fag = #{record.deleteFag,jdbcType=VARCHAR} - - - - - - - update jsh_material_stock - - - material_id = #{materialId,jdbcType=BIGINT}, - - - depot_id = #{depotId,jdbcType=BIGINT}, - - - number = #{number,jdbcType=DECIMAL}, - - - tenant_id = #{tenantId,jdbcType=BIGINT}, - - - delete_fag = #{deleteFag,jdbcType=VARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - - update jsh_material_stock - set material_id = #{materialId,jdbcType=BIGINT}, - depot_id = #{depotId,jdbcType=BIGINT}, - number = #{number,jdbcType=DECIMAL}, - tenant_id = #{tenantId,jdbcType=BIGINT}, - delete_fag = #{deleteFag,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/src/test/resources/generatorConfig.xml b/src/test/resources/generatorConfig.xml index 977b7b6b..cdcc331f 100644 --- a/src/test/resources/generatorConfig.xml +++ b/src/test/resources/generatorConfig.xml @@ -5,7 +5,7 @@ + location="E:\maven\maven-repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/> @@ -52,7 +52,8 @@
-
+
+