diff --git a/jshERP-boot/docs/jsh_erp.sql b/jshERP-boot/docs/jsh_erp.sql index 5ed19df8..cb20ed26 100644 --- a/jshERP-boot/docs/jsh_erp.sql +++ b/jshERP-boot/docs/jsh_erp.sql @@ -743,27 +743,28 @@ 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', - `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 '更新人', - `depot_head_id` bigint(20) DEFAULT NULL COMMENT '单据主表id,用于跟踪序列号流向', - `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 '更新人', + `depot_head_id` bigint(20) DEFAULT NULL COMMENT '单据主表id,用于跟踪序列号流向', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', + PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8 COMMENT='序列号表'; -- ---------------------------- -- Records of jsh_serial_number -- ---------------------------- -INSERT INTO `jsh_serial_number` VALUES ('105', '586', '12312323423223', '0', 'abab', '0', '2019-12-28 12:14:39', '63', '2020-07-21 00:30:32', '63', null, '63'); -INSERT INTO `jsh_serial_number` VALUES ('108', '586', '3215952626621201', '0', '', '0', '2020-07-21 00:31:02', '63', '2020-07-21 00:31:02', '63', null, '63'); -INSERT INTO `jsh_serial_number` VALUES ('109', '586', '3215952626621202', '0', '', '0', '2020-07-21 00:31:02', '63', '2020-07-21 00:31:02', '63', null, '63'); +INSERT INTO `jsh_serial_number` VALUES ('105', '586', '14', '12312323423223', '0', 'abab', '0', '2019-12-28 12:14:39', '63', '2020-07-21 00:30:32', '63', null, '63'); +INSERT INTO `jsh_serial_number` VALUES ('108', '586', '14', '3215952626621201', '0', '', '0', '2020-07-21 00:31:02', '63', '2020-07-21 00:31:02', '63', null, '63'); +INSERT INTO `jsh_serial_number` VALUES ('109', '586', '14', '3215952626621202', '0', '', '0', '2020-07-21 00:31:02', '63', '2020-07-21 00:31:02', '63', null, '63'); -- ---------------------------- -- Table structure for jsh_supplier diff --git a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt index ecd5be99..3c227d33 100644 --- a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt +++ b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt @@ -1248,4 +1248,11 @@ alter table jsh_depot_item add expiration_date datetime DEFAULT NULL COMMENT ' -- by jishenghua -- 插入jsh_platform_config数据,配置租户续费地址 -- -------------------------------------------------------- -INSERT INTO `jsh_platform_config` (`platform_key`, `platform_key_info`, `platform_value`) VALUES ('pay_fee_url', '租户续费地址', ''); \ No newline at end of file +INSERT INTO `jsh_platform_config` (`platform_key`, `platform_key_info`, `platform_value`) VALUES ('pay_fee_url', '租户续费地址', ''); + +-- -------------------------------------------------------- +-- 时间 2021年9月28日 +-- by jishenghua +-- 给序列号表增加仓库id +-- -------------------------------------------------------- +alter table jsh_serial_number add depot_id bigint(20) DEFAULT NULL COMMENT '仓库id' after material_Id; \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java index 9aab0a31..747cce41 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -6,6 +6,7 @@ import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; +import com.jsh.erp.datasource.vo.DepotItemVoBatchNumberList; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.materialExtend.MaterialExtendService; import com.jsh.erp.service.depotItem.DepotItemService; @@ -608,4 +609,38 @@ public class DepotItemController { } return res; } + + /** + * 获取批次商品列表信息 + * @param request + * @return + */ + @GetMapping(value = "/getBatchNumberList") + public BaseResponseInfo getBatchNumberList(@RequestParam("name") String name, + @RequestParam("depotId") Long depotId, + @RequestParam("barCode") String barCode, + @RequestParam(value = "batchNumber", required = false) String batchNumber, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + List reslist = new ArrayList<>(); + List list = depotItemService.getBatchNumberList(name, depotId, barCode, batchNumber); + for(DepotItemVoBatchNumberList bn: list) { + if(bn.getTotalNum()!=null && bn.getTotalNum().compareTo(BigDecimal.ZERO)>0) { + reslist.add(bn); + } + bn.setExpirationDateStr(Tools.parseDateToStr(bn.getExpirationDate())); + } + map.put("rows", reslist); + map.put("total", reslist.size()); + res.code = 200; + res.data = map; + } catch (Exception e) { + e.printStackTrace(); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/SerialNumberController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/SerialNumberController.java index 046c5070..91d6a4f4 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/SerialNumberController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/SerialNumberController.java @@ -3,10 +3,13 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.datasource.entities.SerialNumber; import com.jsh.erp.datasource.entities.SerialNumberEx; import com.jsh.erp.exception.BusinessParamCheckingException; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.serialNumber.SerialNumberService; +import com.jsh.erp.utils.BaseResponseInfo; +import com.jsh.erp.utils.Constants; import com.jsh.erp.utils.ErpInfo; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; @@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; +import java.util.List; import java.util.Map; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; @@ -84,4 +88,39 @@ public class SerialNumberController { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } + + /** + * 获取序列号商品 + * @param name + * @param depotId + * @param materialId + * @param currentPage + * @param pageSize + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getEnableSerialNumberList") + public BaseResponseInfo getEnableSerialNumberList(@RequestParam("name") String name, + @RequestParam("depotId") Long depotId, + @RequestParam("materialId") Long materialId, + @RequestParam(value = Constants.CURRENT_PAGE, required = false) Integer currentPage, + @RequestParam(value = Constants.PAGE_SIZE, required = false) Integer pageSize, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + List list = serialNumberService.getEnableSerialNumberList(name, depotId, materialId, (currentPage-1)*pageSize, pageSize); + Long total = serialNumberService.getEnableSerialNumberCount(name, depotId, materialId); + map.put("rows", list); + map.put("total", total); + res.code = 200; + res.data = map; + } catch(Exception e){ + e.printStackTrace(); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java index 3a90195f..081259fa 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java @@ -7,6 +7,8 @@ public class SerialNumber { private Long materialId; + private Long depotId; + private String serialNumber; private String isSell; @@ -43,6 +45,14 @@ public class SerialNumber { this.materialId = materialId; } + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + public String getSerialNumber() { return serialNumber; } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java index c5792493..5750fad2 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java @@ -28,6 +28,8 @@ public class SerialNumberEx extends SerialNumber{ /**单据类型(出库入库)*/ private String depotHeadType; + private String depotName; + public String getMaterialCode() { return materialCode; } @@ -75,4 +77,12 @@ public class SerialNumberEx extends SerialNumber{ public void setDepotHeadType(String depotHeadType) { this.depotHeadType = depotHeadType; } + + public String getDepotName() { + return depotName; + } + + public void setDepotName(String depotName) { + this.depotName = depotName; + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java index 57976147..67ddaed3 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java @@ -225,6 +225,66 @@ public class SerialNumberExample { 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 andSerialNumberIsNull() { addCriterion("serial_number is null"); return (Criteria) this; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index b5f3b55b..b514b34f 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -3,6 +3,7 @@ package com.jsh.erp.datasource.mappers; import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.datasource.vo.DepotItemVo4Stock; +import com.jsh.erp.datasource.vo.DepotItemVoBatchNumberList; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; @@ -128,4 +129,11 @@ public interface DepotItemMapperEx { @Param("mId") Long mId, @Param("linkNumber") String linkNumber, @Param("goToType") String goToType); + + List getBatchNumberList( + @Param("name") String name, + @Param("depotId") Long depotId, + @Param("barCode") String barCode, + @Param("batchNumber") String batchNumber + ); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java index d43f383b..80783191 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java @@ -1,5 +1,6 @@ package com.jsh.erp.datasource.mappers; +import com.jsh.erp.datasource.entities.SerialNumber; import com.jsh.erp.datasource.entities.SerialNumberEx; import org.apache.ibatis.annotations.Param; @@ -62,4 +63,13 @@ public interface SerialNumberMapperEx { int batAddSerialNumber(@Param("list") List list); int batchDeleteSerialNumberByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + List getEnableSerialNumberList(@Param("name") String name, + @Param("depotId") Long depotId, + @Param("materialId") Long materialId, + @Param("offset") Integer offset, @Param("rows") Integer rows); + + Long getEnableSerialNumberCount(@Param("name") String name, + @Param("depotId") Long depotId, + @Param("materialId") Long materialId); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVoBatchNumberList.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVoBatchNumberList.java new file mode 100644 index 00000000..25a78e35 --- /dev/null +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVoBatchNumberList.java @@ -0,0 +1,90 @@ +package com.jsh.erp.datasource.vo; + + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotItemVoBatchNumberList { + + private String id; + private String barCode; + private String name; + private String standard; + private String model; + private String batchNumber; + private Date expirationDate; + private String expirationDateStr; + private BigDecimal totalNum; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(String batchNumber) { + this.batchNumber = batchNumber; + } + + public Date getExpirationDate() { + return expirationDate; + } + + public void setExpirationDate(Date expirationDate) { + this.expirationDate = expirationDate; + } + + public String getExpirationDateStr() { + return expirationDateStr; + } + + public void setExpirationDateStr(String expirationDateStr) { + this.expirationDateStr = expirationDateStr; + } + + public BigDecimal getTotalNum() { + return totalNum; + } + + public void setTotalNum(BigDecimal totalNum) { + this.totalNum = totalNum; + } +} diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index d65154d4..9690c1bd 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -8,6 +8,7 @@ import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.mappers.*; import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.datasource.vo.DepotItemVo4Stock; +import com.jsh.erp.datasource.vo.DepotItemVoBatchNumberList; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.exception.JshException; import com.jsh.erp.service.materialExtend.MaterialExtendService; @@ -661,4 +662,8 @@ public class DepotItemService { BigDecimal count = depotItemMapperEx.getFinishNumber(mId, linkNumber, goToType); return count; } + + public List getBatchNumberList(String name, Long depotId, String barCode, String batchNumber){ + return depotItemMapperEx.getBatchNumberList(name, depotId, barCode, batchNumber); + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java index a6b0c882..5b9fdae7 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java @@ -458,4 +458,24 @@ public class SerialNumberService { } return result; } + + public List getEnableSerialNumberList(String name, Long depotId, Long materialId, Integer offset, Integer rows)throws Exception { + List list =null; + try{ + list = serialNumberMapperEx.getEnableSerialNumberList(StringUtil.toNull(name), depotId, materialId, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Long getEnableSerialNumberCount(String name, Long depotId, Long materialId)throws Exception { + Long count = 0L; + try{ + count = serialNumberMapperEx.getEnableSerialNumberCount(StringUtil.toNull(name), depotId, materialId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return count; + } } diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index efb1a37f..8b0b510e 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -81,6 +81,17 @@ + + + + + + + + + + + + + diff --git a/jshERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml b/jshERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml index 870e537c..ab00cc94 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml @@ -4,6 +4,7 @@ + @@ -74,8 +75,8 @@ - id, material_id, serial_number, is_sell, remark, delete_flag, create_time, creator, - update_time, updater, depot_head_id, tenant_id + id, material_id, depot_id, serial_number, is_sell, remark, delete_flag, create_time, + creator, update_time, updater, depot_head_id, tenant_id select ser.id, ser.material_id, ser.serial_number, ser.is_sell, ser.remark, ser.delete_flag, ser.create_time, ser.update_time,me.bar_code as materialCode,mat.name as materialName,null as creator,null as updater,null as creatorName, - null as updaterName,ser.depot_head_id, dh.number as depotHeadNumber,concat(dh.sub_type,dh.type) as depotHeadType + null as updaterName,ser.depot_head_id, dh.number as depotHeadNumber,concat(dh.sub_type,dh.type) as depotHeadType, depot_id, d.name depotName FROM jsh_serial_number ser left join jsh_material mat on mat.id = ser.material_Id and ifnull(mat.delete_flag,'0') !='1' left join jsh_material_extend me on mat.id=me.material_id and ifnull(me.delete_Flag,'0') !='1' left join jsh_depot_head dh on dh.id= ser.depot_head_id and ifnull(dh.delete_flag,'0') !='1' + left join jsh_depot d on ser.depot_id=d.id and ifnull(d.delete_flag,'0') !='1' where 1=1 @@ -240,8 +242,44 @@ ) - - - - + + \ No newline at end of file