diff --git a/erp_web/pages/manage/serialNumber.html b/erp_web/pages/manage/serialNumber.html
new file mode 100644
index 00000000..5082dde6
--- /dev/null
+++ b/erp_web/pages/manage/serialNumber.html
@@ -0,0 +1,487 @@
+
+
+
+
| 备注 |
@@ -611,7 +621,7 @@
+ 'AaBb' + rec.lowprice + 'AaBb' + rec.presetpriceone + 'AaBb' + rec.presetpricetwo + 'AaBb' + rec.remark + 'AaBb' + rec.standard
+ 'AaBb' + rec.color + 'AaBb' + rec.packing + 'AaBb' + rec.safetystock + 'AaBb' + rec.categoryid + 'AaBb' + rec.categoryName
+ 'AaBb' + rec.unitid + 'AaBb' + rec.unitName + 'AaBb' + rec.firstoutunit + 'AaBb' + rec.firstinunit
- + 'AaBb' + rec.mfrs + 'AaBb' + rec.otherfield1 + 'AaBb' + rec.otherfield2 + 'AaBb' + rec.otherfield3;
+ + 'AaBb' + rec.mfrs + 'AaBb' + rec.otherfield1 + 'AaBb' + rec.otherfield2 + 'AaBb' + rec.otherfield3+ 'AaBb' + rec.enableSerialNumber;
str += ' ';
str += ' ';
return str;
@@ -671,6 +681,11 @@
title: '状态', field: 'enabled', width: 50, align: "center", formatter: function (value) {
return value ? "启用" : "禁用";
}
+ },
+ {
+ title: '序列号', field: 'enableSerialNumber', width: 70, align: "center", formatter: function (value) {
+ return value ? "启用" : "禁用";
+ }
}
]],
toolbar: [
@@ -1145,6 +1160,8 @@
$('#materialFM input').val(""); //将输入框全部清空
bindMProperty(); //根据商品属性绑定
+ // $("#enableSerialNumber").combobox('setValue','0');
+ $("#enableSerialNumber").val('0');
$('#materialDlg').dialog('open').dialog('setTitle', ' 增加商品信息');
$(".window-mask").css({width: webW, height: webH});
@@ -1271,11 +1288,13 @@
basicList.LowPrice = $("#basicLowPrice").val();
basicList.PresetPriceOne = $("#basicPresetPriceOne").val();
basicList.PresetPriceTwo = $("#basicPresetPriceTwo").val();
+ basicList.enableSerialNumber=$("#enableSerialNumber").val();
otherList.Unit = $("#otherUnit").text();
otherList.RetailPrice = $("#otherRetailPrice").val();
otherList.LowPrice = $("#otherLowPrice").val();
otherList.PresetPriceOne = $("#otherPresetPriceOne").val();
otherList.PresetPriceTwo = $("#otherPresetPriceTwo").val();
+
var basic = {};
var other = {};
basic.basic = basicList;
@@ -1341,6 +1360,11 @@
$("#Name").focus().val(materialInfo[1]);
$("#Color").focus().val(materialInfo[11]);
+ // console.log("enableSerialNumber:"+(materialInfo[24]=='true'?'1':'0'));
+ // console.log("enableSerialNumber:"+materialInfo[24]);
+ // $("#enableSerialNumber").combobox('setValue',materialInfo[24]=='true'?'1':'0');
+ $("#enableSerialNumber").val(materialInfo[24]=='true'?'1':'0');
+ // console.log($("#enableSerialNumber").val());
var categoryName = ""; //类型名称
mId = materialInfo[14];
diff --git a/pom.xml b/pom.xml
index 829f3b70..7f1e9547 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,6 +101,12 @@
jxl
2.6.3
+
+
+ org.projectlombok
+ lombok
+ 1.16.12
+
diff --git a/sql/jsh_erp.sql b/sql/jsh_erp.sql
index 88922e6e..d57a9b96 100644
--- a/sql/jsh_erp.sql
+++ b/sql/jsh_erp.sql
@@ -5179,3 +5179,23 @@ INSERT INTO `jsh_userbusiness` VALUES ('24', 'UserDepot', '65', '[1]', null);
INSERT INTO `jsh_userbusiness` VALUES ('25', 'UserCustomer', '64', '[5][2]', null);
INSERT INTO `jsh_userbusiness` VALUES ('26', 'UserCustomer', '65', '[6]', null);
INSERT INTO `jsh_userbusiness` VALUES ('27', 'UserCustomer', '63', '[5][2]', null);
+
+--添加序列号表
+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` bit(1) DEFAULT 0 COMMENT '是否卖出,0未卖出,1卖出',
+ `remark` varchar(1024) DEFAULT NULL COMMENT '备注',
+ `delete_Flag` bit(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 '更新人',
+ PRIMARY KEY (`Id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='序列号表';
+
+--产品表新增字段是否启用序列号
+alter table jsh_material add enableSerialNumber bit(1) DEFAULT 0 COMMENT '是否开启序列号,0否,1是';
+
diff --git a/sql/华夏ERP数据库设计汇总.xlsx b/sql/华夏ERP数据库设计汇总.xlsx
index 848bffae..f13a512e 100644
Binary files a/sql/华夏ERP数据库设计汇总.xlsx and b/sql/华夏ERP数据库设计汇总.xlsx differ
diff --git a/src/main/java/com/jsh/erp/ErpApplication.java b/src/main/java/com/jsh/erp/ErpApplication.java
index f519e836..6e92d3fb 100644
--- a/src/main/java/com/jsh/erp/ErpApplication.java
+++ b/src/main/java/com/jsh/erp/ErpApplication.java
@@ -1,9 +1,13 @@
package com.jsh.erp;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.servlet.DispatcherServlet;
@SpringBootApplication
@MapperScan(basePackages = {"com.jsh.erp.datasource.mappers"})
@@ -15,4 +19,5 @@ public class ErpApplication{
+
}
diff --git a/src/main/java/com/jsh/erp/constants/BusinessConstants.java b/src/main/java/com/jsh/erp/constants/BusinessConstants.java
new file mode 100644
index 00000000..f72c6c64
--- /dev/null
+++ b/src/main/java/com/jsh/erp/constants/BusinessConstants.java
@@ -0,0 +1,29 @@
+package com.jsh.erp.constants;
+
+/**
+ * @ClassName:BusinessConstants
+ * @Description 业务字典类
+ * @Author linshengming
+ * @Date 2018-9-15 17:58
+ * @Version 1.0
+ **/
+public class BusinessConstants {
+
+ /**
+ * 默认的日期格式
+ */
+ public static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
+ /**
+ * 默认的分页起始页页码
+ */
+ public static final String DEFAULT_PAGINATION_PAGE_NUMBER = "1";
+ /**
+ * 默认的分页页数
+ */
+ public static final String DEFAULT_PAGINATION_PAGE_SIZE = "10";
+
+
+
+
+
+}
diff --git a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java
new file mode 100644
index 00000000..cd11f548
--- /dev/null
+++ b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java
@@ -0,0 +1,61 @@
+package com.jsh.erp.constants;
+
+import com.alibaba.fastjson.JSONObject;
+
+public class ExceptionConstants {
+ /**
+ * code 格式 type+五位数字,例如3500000
+ * ResourceInfo(value = "inOutItem", type = 35)
+ *
+ * */
+
+ public static final String GLOBAL_RETURNS_CODE = "code";
+ public static final String GLOBAL_RETURNS_MESSAGE = "msg";
+ public static final String GLOBAL_RETURNS_DATA = "data";
+
+ /**
+ * 正常返回/操作成功
+ **/
+ public static final int SERVICE_SUCCESS_CODE = 200;
+ public static final String SERVICE_SUCCESS_MSG = "操作成功";
+ /**
+ * 系统运行时未知错误
+ **/
+ public static final int SERVICE_SYSTEM_ERROR_CODE = 500;
+ public static final String SERVICE_SYSTEM_ERROR_MSG = "未知异常";
+
+ /**
+ * 序列号
+ * type = 105
+ * */
+ /**序列号已存在*/
+ public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000;
+ public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号已存在";
+ /**序列号不能为为空*/
+ public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500000;
+ public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空";
+
+
+
+ /**
+ * 商品信息
+ * type = 80
+ * */
+ //商品信息不存在
+ public static final int MATERIAL_NOT_EXISTS_CODE = 8000000;
+ public static final String MATERIAL_NOT_EXISTS__MSG = "商品信息不存在";
+ //商品信息不唯一
+ public static final int MATERIAL_NOT_ONLY_CODE = 8000001;
+ public static final String MATERIAL_NOT_ONLY__MSG = "商品信息不唯一";
+
+ /**
+ * 标准正常返回/操作成功返回
+ * @return
+ */
+ public static JSONObject standardSuccess () {
+ JSONObject success = new JSONObject();
+ success.put(GLOBAL_RETURNS_CODE, SERVICE_SUCCESS_CODE);
+ success.put(GLOBAL_RETURNS_MESSAGE, SERVICE_SUCCESS_MSG);
+ return success;
+ }
+}
diff --git a/src/main/java/com/jsh/erp/controller/SerialNumberController.java b/src/main/java/com/jsh/erp/controller/SerialNumberController.java
new file mode 100644
index 00000000..a75d434c
--- /dev/null
+++ b/src/main/java/com/jsh/erp/controller/SerialNumberController.java
@@ -0,0 +1,106 @@
+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.SerialNumberEx;
+import com.jsh.erp.exception.BusinessParamCheckingException;
+import com.jsh.erp.service.serialNumber.SerialNumberService;
+import com.jsh.erp.utils.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/22 10:29
+ */
+@RestController
+public class SerialNumberController {
+ private Logger logger = LoggerFactory.getLogger(SerialNumberController.class);
+
+ @Resource
+ private SerialNumberService serialNumberService;
+ /**
+ * create by: cjl
+ * description:
+ * 检查序列号是否存在
+ * create time: 2019/1/22 11:02
+ * @Param: id
+ * @Param: materialName
+ * @Param: serialNumber
+ * @Param: request
+ * @return java.lang.Object
+ */
+ @PostMapping("/serialNumber/checkIsExist")
+ @ResponseBody
+ public Object checkIsExist(@RequestParam("id") Long id, @RequestParam("materialName") String materialName,
+ @RequestParam("serialNumber") String serialNumber, HttpServletRequest request) throws Exception{
+ JSONObject result = ExceptionConstants.standardSuccess();
+ if(StringUtil.isEmpty(serialNumber)){
+ throw new BusinessParamCheckingException(ExceptionConstants.SERIAL_NUMBERE_NOT_BE_EMPTY_CODE,
+ ExceptionConstants.SERIAL_NUMBERE_NOT_BE_EMPTY_MSG);
+ }
+ serialNumberService.checkIsExist(id, materialName, serialNumber);
+ return result;
+ }
+ /**
+ * create by: cjl
+ * description:
+ * 新增序列号信息
+ * create time: 2019/1/22 17:10
+ * @Param: beanJson
+ * @Param: request
+ * @return java.lang.Object
+ */
+ @PostMapping("/serialNumber/addSerialNumber")
+ @ResponseBody
+ public Object addSerialNumber(@RequestParam("info") String beanJson){
+ JSONObject result = ExceptionConstants.standardSuccess();
+ SerialNumberEx sne= JSON.parseObject(beanJson, SerialNumberEx.class);
+ serialNumberService.addSerialNumber(sne);
+ return result;
+
+ }
+ /**
+ * create by: cjl
+ * description:
+ * 修改序列号信息
+ * create time: 2019/1/23 13:56
+ * @Param: beanJson
+ * @return java.lang.Object
+ */
+ @PostMapping("/serialNumber/updateSerialNumber")
+ @ResponseBody
+ public Object updateSerialNumber(@RequestParam("info") String beanJson){
+
+ JSONObject result = ExceptionConstants.standardSuccess();
+ SerialNumberEx sne= JSON.parseObject(beanJson, SerialNumberEx.class);
+ serialNumberService.updateSerialNumber(sne);
+ return result;
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/jsh/erp/datasource/entities/Material.java b/src/main/java/com/jsh/erp/datasource/entities/Material.java
index 4834817f..f21c6adf 100644
--- a/src/main/java/com/jsh/erp/datasource/entities/Material.java
+++ b/src/main/java/com/jsh/erp/datasource/entities/Material.java
@@ -186,6 +186,11 @@ public class Material {
* @mbggenerated
*/
private String otherfield3;
+ /**
+ * 2019-01-21新增字段enableSerialNumber
+ *是否开启序列号
+ * */
+ private Boolean enableSerialNumber;
/**
* This method was generated by MyBatis Generator.
@@ -738,4 +743,12 @@ public class Material {
public void setOtherfield3(String otherfield3) {
this.otherfield3 = otherfield3 == null ? null : otherfield3.trim();
}
+
+ public Boolean getEnableSerialNumber() {
+ return enableSerialNumber;
+ }
+
+ public void setEnableSerialNumber(Boolean enableSerialNumber) {
+ this.enableSerialNumber = enableSerialNumber;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java b/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java
index bc7514d6..521442a7 100644
--- a/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java
+++ b/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java
@@ -55,6 +55,11 @@ public class MaterialVo4Unit {
private String categoryName;
private String materialOther;
+ /**
+ * 2019-01-21新增字段enableSerialNumber
+ *是否开启序列号
+ * */
+ private Boolean enableSerialNumber;
public Long getId() {
return id;
@@ -263,4 +268,12 @@ public class MaterialVo4Unit {
public void setMaterialOther(String materialOther) {
this.materialOther = materialOther;
}
+
+ public Boolean getEnableSerialNumber() {
+ return enableSerialNumber;
+ }
+
+ public void setEnableSerialNumber(Boolean enableSerialNumber) {
+ this.enableSerialNumber = enableSerialNumber;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java b/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java
new file mode 100644
index 00000000..63b14de6
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/entities/SerialNumber.java
@@ -0,0 +1,325 @@
+package com.jsh.erp.datasource.entities;
+
+import java.util.Date;
+
+public class SerialNumber {
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.id
+ *
+ * @mbggenerated
+ */
+ private Long id;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.material_Id
+ *
+ * @mbggenerated
+ */
+ private Long materialId;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.serial_Number
+ *
+ * @mbggenerated
+ */
+ private String serialNumber;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.is_Sell
+ *
+ * @mbggenerated
+ */
+ private Boolean isSell;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.remark
+ *
+ * @mbggenerated
+ */
+ private String remark;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.delete_Flag
+ *
+ * @mbggenerated
+ */
+ private Boolean deleteFlag;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.create_Time
+ *
+ * @mbggenerated
+ */
+ private Date createTime;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.creator
+ *
+ * @mbggenerated
+ */
+ private Long creator;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.update_Time
+ *
+ * @mbggenerated
+ */
+ private Date updateTime;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column jsh_serial_number.updater
+ *
+ * @mbggenerated
+ */
+ private Long updater;
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.id
+ *
+ * @return the value of jsh_serial_number.id
+ *
+ * @mbggenerated
+ */
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.id
+ *
+ * @param id the value for jsh_serial_number.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_serial_number.material_Id
+ *
+ * @return the value of jsh_serial_number.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_serial_number.material_Id
+ *
+ * @param materialId the value for jsh_serial_number.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_serial_number.serial_Number
+ *
+ * @return the value of jsh_serial_number.serial_Number
+ *
+ * @mbggenerated
+ */
+ public String getSerialNumber() {
+ return serialNumber;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.serial_Number
+ *
+ * @param serialNumber the value for jsh_serial_number.serial_Number
+ *
+ * @mbggenerated
+ */
+ public void setSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber == null ? null : serialNumber.trim();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.is_Sell
+ *
+ * @return the value of jsh_serial_number.is_Sell
+ *
+ * @mbggenerated
+ */
+ public Boolean getIsSell() {
+ return isSell;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.is_Sell
+ *
+ * @param isSell the value for jsh_serial_number.is_Sell
+ *
+ * @mbggenerated
+ */
+ public void setIsSell(Boolean isSell) {
+ this.isSell = isSell;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.remark
+ *
+ * @return the value of jsh_serial_number.remark
+ *
+ * @mbggenerated
+ */
+ public String getRemark() {
+ return remark;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.remark
+ *
+ * @param remark the value for jsh_serial_number.remark
+ *
+ * @mbggenerated
+ */
+ public void setRemark(String remark) {
+ this.remark = remark == null ? null : remark.trim();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.delete_Flag
+ *
+ * @return the value of jsh_serial_number.delete_Flag
+ *
+ * @mbggenerated
+ */
+ public Boolean getDeleteFlag() {
+ return deleteFlag;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.delete_Flag
+ *
+ * @param deleteFlag the value for jsh_serial_number.delete_Flag
+ *
+ * @mbggenerated
+ */
+ public void setDeleteFlag(Boolean deleteFlag) {
+ this.deleteFlag = deleteFlag;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.create_Time
+ *
+ * @return the value of jsh_serial_number.create_Time
+ *
+ * @mbggenerated
+ */
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.create_Time
+ *
+ * @param createTime the value for jsh_serial_number.create_Time
+ *
+ * @mbggenerated
+ */
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.creator
+ *
+ * @return the value of jsh_serial_number.creator
+ *
+ * @mbggenerated
+ */
+ public Long getCreator() {
+ return creator;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.creator
+ *
+ * @param creator the value for jsh_serial_number.creator
+ *
+ * @mbggenerated
+ */
+ public void setCreator(Long creator) {
+ this.creator = creator;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.update_Time
+ *
+ * @return the value of jsh_serial_number.update_Time
+ *
+ * @mbggenerated
+ */
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.update_Time
+ *
+ * @param updateTime the value for jsh_serial_number.update_Time
+ *
+ * @mbggenerated
+ */
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column jsh_serial_number.updater
+ *
+ * @return the value of jsh_serial_number.updater
+ *
+ * @mbggenerated
+ */
+ public Long getUpdater() {
+ return updater;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column jsh_serial_number.updater
+ *
+ * @param updater the value for jsh_serial_number.updater
+ *
+ * @mbggenerated
+ */
+ public void setUpdater(Long updater) {
+ this.updater = updater;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java b/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java
new file mode 100644
index 00000000..bd29dff4
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/entities/SerialNumberEx.java
@@ -0,0 +1,46 @@
+package com.jsh.erp.datasource.entities;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/21 17:32
+ */
+public class SerialNumberEx extends SerialNumber{
+ /**
+ * 商品名称
+ * */
+ private String materialName;
+ /**
+ * 创建者名称
+ * */
+ private String creatorName;
+ /**
+ * 更新者名称
+ * */
+ private String updaterName;
+
+ public String getMaterialName() {
+ return materialName;
+ }
+
+ public void setMaterialName(String materialName) {
+ this.materialName = materialName;
+ }
+
+ public String getCreatorName() {
+ return creatorName;
+ }
+
+ public void setCreatorName(String creatorName) {
+ this.creatorName = creatorName;
+ }
+
+ public String getUpdaterName() {
+ return updaterName;
+ }
+
+ public void setUpdaterName(String updaterName) {
+ this.updaterName = updaterName;
+ }
+}
diff --git a/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java b/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java
new file mode 100644
index 00000000..10abeed2
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/entities/SerialNumberExample.java
@@ -0,0 +1,923 @@
+package com.jsh.erp.datasource.entities;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SerialNumberExample {
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ protected String orderByClause;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ protected boolean distinct;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ protected List oredCriteria;
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public SerialNumberExample() {
+ oredCriteria = new ArrayList();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public void setOrderByClause(String orderByClause) {
+ this.orderByClause = orderByClause;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public String getOrderByClause() {
+ return orderByClause;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public void setDistinct(boolean distinct) {
+ this.distinct = distinct;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public boolean isDistinct() {
+ return distinct;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public List getOredCriteria() {
+ return oredCriteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ public void or(Criteria criteria) {
+ oredCriteria.add(criteria);
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @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_serial_number
+ *
+ * @mbggenerated
+ */
+ public Criteria createCriteria() {
+ Criteria criteria = createCriteriaInternal();
+ if (oredCriteria.size() == 0) {
+ oredCriteria.add(criteria);
+ }
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @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_serial_number
+ *
+ * @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_serial_number
+ *
+ * @mbggenerated
+ */
+ 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 andSerialNumberIsNull() {
+ addCriterion("serial_Number is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberIsNotNull() {
+ addCriterion("serial_Number is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberEqualTo(String value) {
+ addCriterion("serial_Number =", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberNotEqualTo(String value) {
+ addCriterion("serial_Number <>", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberGreaterThan(String value) {
+ addCriterion("serial_Number >", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberGreaterThanOrEqualTo(String value) {
+ addCriterion("serial_Number >=", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberLessThan(String value) {
+ addCriterion("serial_Number <", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberLessThanOrEqualTo(String value) {
+ addCriterion("serial_Number <=", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberLike(String value) {
+ addCriterion("serial_Number like", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberNotLike(String value) {
+ addCriterion("serial_Number not like", value, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberIn(List values) {
+ addCriterion("serial_Number in", values, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberNotIn(List values) {
+ addCriterion("serial_Number not in", values, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberBetween(String value1, String value2) {
+ addCriterion("serial_Number between", value1, value2, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andSerialNumberNotBetween(String value1, String value2) {
+ addCriterion("serial_Number not between", value1, value2, "serialNumber");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellIsNull() {
+ addCriterion("is_Sell is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellIsNotNull() {
+ addCriterion("is_Sell is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellEqualTo(Boolean value) {
+ addCriterion("is_Sell =", value, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellNotEqualTo(Boolean value) {
+ addCriterion("is_Sell <>", value, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellGreaterThan(Boolean value) {
+ addCriterion("is_Sell >", value, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellGreaterThanOrEqualTo(Boolean value) {
+ addCriterion("is_Sell >=", value, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellLessThan(Boolean value) {
+ addCriterion("is_Sell <", value, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellLessThanOrEqualTo(Boolean value) {
+ addCriterion("is_Sell <=", value, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellIn(List values) {
+ addCriterion("is_Sell in", values, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellNotIn(List values) {
+ addCriterion("is_Sell not in", values, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellBetween(Boolean value1, Boolean value2) {
+ addCriterion("is_Sell between", value1, value2, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsSellNotBetween(Boolean value1, Boolean value2) {
+ addCriterion("is_Sell not between", value1, value2, "isSell");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkIsNull() {
+ addCriterion("remark is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkIsNotNull() {
+ addCriterion("remark is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkEqualTo(String value) {
+ addCriterion("remark =", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkNotEqualTo(String value) {
+ addCriterion("remark <>", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkGreaterThan(String value) {
+ addCriterion("remark >", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkGreaterThanOrEqualTo(String value) {
+ addCriterion("remark >=", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkLessThan(String value) {
+ addCriterion("remark <", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkLessThanOrEqualTo(String value) {
+ addCriterion("remark <=", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkLike(String value) {
+ addCriterion("remark like", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkNotLike(String value) {
+ addCriterion("remark not like", value, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkIn(List values) {
+ addCriterion("remark in", values, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkNotIn(List values) {
+ addCriterion("remark not in", values, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkBetween(String value1, String value2) {
+ addCriterion("remark between", value1, value2, "remark");
+ return (Criteria) this;
+ }
+
+ public Criteria andRemarkNotBetween(String value1, String value2) {
+ addCriterion("remark not between", value1, value2, "remark");
+ 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(Boolean value) {
+ addCriterion("delete_Flag =", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagNotEqualTo(Boolean value) {
+ addCriterion("delete_Flag <>", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagGreaterThan(Boolean value) {
+ addCriterion("delete_Flag >", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagGreaterThanOrEqualTo(Boolean value) {
+ addCriterion("delete_Flag >=", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagLessThan(Boolean value) {
+ addCriterion("delete_Flag <", value, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagLessThanOrEqualTo(Boolean value) {
+ addCriterion("delete_Flag <=", 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(Boolean value1, Boolean value2) {
+ addCriterion("delete_Flag between", value1, value2, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andDeleteFlagNotBetween(Boolean value1, Boolean value2) {
+ addCriterion("delete_Flag not between", value1, value2, "deleteFlag");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIsNull() {
+ addCriterion("create_Time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIsNotNull() {
+ addCriterion("create_Time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeEqualTo(Date value) {
+ addCriterion("create_Time =", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotEqualTo(Date value) {
+ addCriterion("create_Time <>", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeGreaterThan(Date value) {
+ addCriterion("create_Time >", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("create_Time >=", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeLessThan(Date value) {
+ addCriterion("create_Time <", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+ addCriterion("create_Time <=", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIn(List values) {
+ addCriterion("create_Time in", values, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotIn(List values) {
+ addCriterion("create_Time not in", values, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeBetween(Date value1, Date value2) {
+ addCriterion("create_Time between", value1, value2, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+ addCriterion("create_Time not between", value1, value2, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorIsNull() {
+ addCriterion("creator is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorIsNotNull() {
+ addCriterion("creator is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorEqualTo(Long value) {
+ addCriterion("creator =", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorNotEqualTo(Long value) {
+ addCriterion("creator <>", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorGreaterThan(Long value) {
+ addCriterion("creator >", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorGreaterThanOrEqualTo(Long value) {
+ addCriterion("creator >=", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorLessThan(Long value) {
+ addCriterion("creator <", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorLessThanOrEqualTo(Long value) {
+ addCriterion("creator <=", value, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorIn(List values) {
+ addCriterion("creator in", values, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorNotIn(List values) {
+ addCriterion("creator not in", values, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorBetween(Long value1, Long value2) {
+ addCriterion("creator between", value1, value2, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatorNotBetween(Long value1, Long value2) {
+ addCriterion("creator not between", value1, value2, "creator");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNull() {
+ addCriterion("update_Time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNotNull() {
+ addCriterion("update_Time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeEqualTo(Date value) {
+ addCriterion("update_Time =", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotEqualTo(Date value) {
+ addCriterion("update_Time <>", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThan(Date value) {
+ addCriterion("update_Time >", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("update_Time >=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThan(Date value) {
+ addCriterion("update_Time <", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+ addCriterion("update_Time <=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIn(List values) {
+ addCriterion("update_Time in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotIn(List values) {
+ addCriterion("update_Time not in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+ addCriterion("update_Time between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+ addCriterion("update_Time not between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterIsNull() {
+ addCriterion("updater is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterIsNotNull() {
+ addCriterion("updater is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterEqualTo(Long value) {
+ addCriterion("updater =", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterNotEqualTo(Long value) {
+ addCriterion("updater <>", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterGreaterThan(Long value) {
+ addCriterion("updater >", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterGreaterThanOrEqualTo(Long value) {
+ addCriterion("updater >=", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterLessThan(Long value) {
+ addCriterion("updater <", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterLessThanOrEqualTo(Long value) {
+ addCriterion("updater <=", value, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterIn(List values) {
+ addCriterion("updater in", values, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterNotIn(List values) {
+ addCriterion("updater not in", values, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterBetween(Long value1, Long value2) {
+ addCriterion("updater between", value1, value2, "updater");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdaterNotBetween(Long value1, Long value2) {
+ addCriterion("updater not between", value1, value2, "updater");
+ return (Criteria) this;
+ }
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table jsh_serial_number
+ *
+ * @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_serial_number
+ *
+ * @mbggenerated
+ */
+ 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/mappers/MaterialMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java
index e2097309..3f0176c1 100644
--- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java
+++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java
@@ -96,35 +96,5 @@ public interface MaterialMapper {
*/
int updateByPrimaryKey(Material record);
- List selectByConditionMaterial(
- @Param("name") String name,
- @Param("model") String model,
- @Param("categoryId") Long categoryId,
- @Param("categoryIds") String categoryIds,
- @Param("mpList") String mpList,
- @Param("offset") Integer offset,
- @Param("rows") Integer rows);
- int countsByMaterial(
- @Param("name") String name,
- @Param("model") String model,
- @Param("categoryId") Long categoryId,
- @Param("categoryIds") String categoryIds,
- @Param("mpList") String mpList);
-
- String findUnitName(@Param("mId") Long mId);
-
- List findById(@Param("id") Long id);
-
- List findBySelect();
-
- int updatePriceNullByPrimaryKey(Long id);
-
- int updateUnitIdNullByPrimaryKey(Long id);
-
- List findByAll(
- @Param("name") String name,
- @Param("model") String model,
- @Param("categoryId") Long categoryId,
- @Param("categoryIds") String categoryIds);
}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java
new file mode 100644
index 00000000..eae6bf8d
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java
@@ -0,0 +1,53 @@
+package com.jsh.erp.datasource.mappers;
+
+import com.jsh.erp.datasource.entities.Material;
+import com.jsh.erp.datasource.entities.MaterialVo4Unit;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/22 14:54
+ */
+public interface MaterialMapperEx {
+
+ List selectByConditionMaterial(
+ @Param("name") String name,
+ @Param("model") String model,
+ @Param("categoryId") Long categoryId,
+ @Param("categoryIds") String categoryIds,
+ @Param("mpList") String mpList,
+ @Param("offset") Integer offset,
+ @Param("rows") Integer rows);
+
+ int countsByMaterial(
+ @Param("name") String name,
+ @Param("model") String model,
+ @Param("categoryId") Long categoryId,
+ @Param("categoryIds") String categoryIds,
+ @Param("mpList") String mpList);
+
+ String findUnitName(@Param("mId") Long mId);
+
+ List findById(@Param("id") Long id);
+
+ List findBySelect();
+
+ int updatePriceNullByPrimaryKey(Long id);
+
+ int updateUnitIdNullByPrimaryKey(Long id);
+
+ List findByAll(
+ @Param("name") String name,
+ @Param("model") String model,
+ @Param("categoryId") Long categoryId,
+ @Param("categoryIds") String categoryIds);
+ /**
+ * 通过商品名称查询商品信息
+ * */
+ List findByMaterialName(@Param("name") String name);
+
+}
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapper.java
new file mode 100644
index 00000000..2fee8176
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapper.java
@@ -0,0 +1,97 @@
+package com.jsh.erp.datasource.mappers;
+
+import com.jsh.erp.datasource.entities.SerialNumber;
+import com.jsh.erp.datasource.entities.SerialNumberExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface SerialNumberMapper {
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int countByExample(SerialNumberExample example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int deleteByExample(SerialNumberExample example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int deleteByPrimaryKey(Long id);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int insert(SerialNumber record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int insertSelective(SerialNumber record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ List selectByExample(SerialNumberExample example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ SerialNumber selectByPrimaryKey(Long id);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int updateByExampleSelective(@Param("record") SerialNumber record, @Param("example") SerialNumberExample example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int updateByExample(@Param("record") SerialNumber record, @Param("example") SerialNumberExample example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int updateByPrimaryKeySelective(SerialNumber record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table jsh_serial_number
+ *
+ * @mbggenerated
+ */
+ int updateByPrimaryKey(SerialNumber record);
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java
new file mode 100644
index 00000000..686970eb
--- /dev/null
+++ b/src/main/java/com/jsh/erp/datasource/mappers/SerialNumberMapperEx.java
@@ -0,0 +1,40 @@
+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;
+
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/21 17:09
+ */
+public interface SerialNumberMapperEx {
+ /**
+ * 根据条件查询序列号列表
+ * */
+ List selectByConditionSerialNumber(@Param("serialNumber") String serialNumber, @Param("materialName") String materialName,@Param("offset") Integer offset,@Param("rows") Integer rows);
+ /**
+ * 根据条件查询序列号数量
+ * */
+ int countSerialNumber(@Param("serialNumber")String serialNumber,@Param("materialName")String materialName);
+ /**
+ * 通过id查询序列号复合信息
+ * */
+ List findById(Long id);
+ /**
+ * 通过序列号查询序列号实体信息
+ * */
+ List findBySerialNumber(@Param("serialNumber") String serialNumber);
+ /**
+ * 新增序列号信息
+ * */
+ int addSerialNumber(SerialNumberEx serialNumberEx);
+ /**
+ * 修改序列号信息
+ * */
+ int updateSerialNumber(SerialNumberEx serialNumberEx);
+}
diff --git a/src/main/java/com/jsh/erp/exception/BusinessParamCheckingException.java b/src/main/java/com/jsh/erp/exception/BusinessParamCheckingException.java
new file mode 100644
index 00000000..ac5ebdc3
--- /dev/null
+++ b/src/main/java/com/jsh/erp/exception/BusinessParamCheckingException.java
@@ -0,0 +1,25 @@
+package com.jsh.erp.exception;
+
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Getter
+public class BusinessParamCheckingException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+ private int code;
+ private String reason;
+
+ public BusinessParamCheckingException(int code, String reason) {
+ super(reason);
+ this.code = code;
+ this.reason = reason;
+ }
+
+ public BusinessParamCheckingException(int code, String reason, Throwable throwable) {
+ super(reason, throwable);
+ this.code = code;
+ this.reason = reason;
+ }
+}
diff --git a/src/main/java/com/jsh/erp/exception/BusinessRunTimeException.java b/src/main/java/com/jsh/erp/exception/BusinessRunTimeException.java
new file mode 100644
index 00000000..efd81282
--- /dev/null
+++ b/src/main/java/com/jsh/erp/exception/BusinessRunTimeException.java
@@ -0,0 +1,25 @@
+package com.jsh.erp.exception;
+
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Getter
+public class BusinessRunTimeException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+ private int code;
+ private String reason;
+
+ public BusinessRunTimeException(int code, String reason) {
+ super(reason);
+ this.code = code;
+ this.reason = reason;
+ }
+
+ public BusinessRunTimeException(int code, String reason, Throwable throwable) {
+ super(reason, throwable);
+ this.code = code;
+ this.reason = reason;
+ }
+}
diff --git a/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java b/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java
new file mode 100644
index 00000000..46765fe6
--- /dev/null
+++ b/src/main/java/com/jsh/erp/exception/GlobalExceptionHandler.java
@@ -0,0 +1,41 @@
+package com.jsh.erp.exception;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jsh.erp.constants.ExceptionConstants;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Slf4j
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler(value = Exception.class)
+ @ResponseBody
+ public Object handleException(Exception e, HttpServletRequest request) {
+ JSONObject status = new JSONObject();
+
+ // 针对业务参数异常的处理
+ if (e instanceof BusinessParamCheckingException) {
+ status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ((BusinessParamCheckingException) e).getCode());
+ status.put(ExceptionConstants.GLOBAL_RETURNS_MESSAGE, ((BusinessParamCheckingException) e).getReason());
+ return status;
+ }
+
+ //针对业务运行时异常的处理
+ if (e instanceof BusinessRunTimeException) {
+ status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ((BusinessRunTimeException) e).getCode());
+ status.put(ExceptionConstants.GLOBAL_RETURNS_MESSAGE, ((BusinessRunTimeException) e).getReason());
+ return status;
+ }
+
+ status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ExceptionConstants.SERVICE_SYSTEM_ERROR_CODE);
+ status.put(ExceptionConstants.GLOBAL_RETURNS_MESSAGE, ExceptionConstants.SERVICE_SYSTEM_ERROR_MSG);
+ log.error("Global Exception Occured => url : {}, msg : {}", request.getRequestURL(), e.getMessage());
+ e.printStackTrace();
+ return status;
+ }
+}
\ No newline at end of file
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 45c8f4b8..ab9e44a3 100644
--- a/src/main/java/com/jsh/erp/service/material/MaterialService.java
+++ b/src/main/java/com/jsh/erp/service/material/MaterialService.java
@@ -5,6 +5,7 @@ import com.jsh.erp.datasource.entities.Material;
import com.jsh.erp.datasource.entities.MaterialExample;
import com.jsh.erp.datasource.entities.MaterialVo4Unit;
import com.jsh.erp.datasource.mappers.MaterialMapper;
+import com.jsh.erp.datasource.mappers.MaterialMapperEx;
import com.jsh.erp.utils.BaseResponseInfo;
import com.jsh.erp.utils.StringUtil;
import org.slf4j.Logger;
@@ -25,6 +26,8 @@ public class MaterialService {
@Resource
private MaterialMapper materialMapper;
+ @Resource
+ private MaterialMapperEx materialMapperEx;
public Material getMaterial(long id) {
return materialMapper.selectByPrimaryKey(id);
@@ -38,7 +41,7 @@ public class MaterialService {
public List select(String name, String model,Long categoryId, String categoryIds,String mpList, int offset, int rows) {
String[] mpArr = mpList.split(",");
List resList = new ArrayList();
- List list = materialMapper.selectByConditionMaterial(name, model,categoryId,categoryIds,mpList, offset, rows);
+ List list = materialMapperEx.selectByConditionMaterial(name, model,categoryId,categoryIds,mpList, offset, rows);
if (null != list) {
for (MaterialVo4Unit m : list) {
//扩展信息
@@ -71,7 +74,7 @@ public class MaterialService {
}
public int countMaterial(String name, String model,Long categoryId, String categoryIds,String mpList) {
- return materialMapper.countsByMaterial(name, model,categoryId,categoryIds,mpList);
+ return materialMapperEx.countsByMaterial(name, model,categoryId,categoryIds,mpList);
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
@@ -88,9 +91,9 @@ public class MaterialService {
int res = materialMapper.updateByPrimaryKeySelective(material);
Long unitId = material.getUnitid();
if(unitId != null) {
- materialMapper.updatePriceNullByPrimaryKey(id); //将价格置空
+ materialMapperEx.updatePriceNullByPrimaryKey(id); //将价格置空
} else {
- materialMapper.updateUnitIdNullByPrimaryKey(id); //将多单位置空
+ materialMapperEx.updateUnitIdNullByPrimaryKey(id); //将多单位置空
}
return res;
}
@@ -146,15 +149,15 @@ public class MaterialService {
}
public String findUnitName(Long mId){
- return materialMapper.findUnitName(mId);
+ return materialMapperEx.findUnitName(mId);
}
public List findById(Long id){
- return materialMapper.findById(id);
+ return materialMapperEx.findById(id);
}
public List findBySelect(){
- return materialMapper.findBySelect();
+ return materialMapperEx.findBySelect();
}
public List findByOrder(){
@@ -165,7 +168,7 @@ public class MaterialService {
public List findByAll(String name, String model, Long categoryId, String categoryIds) {
List resList = new ArrayList();
- List list = materialMapper.findByAll(name, model, categoryId, categoryIds);
+ List list = materialMapperEx.findByAll(name, model, categoryId, categoryIds);
if (null != list) {
for (MaterialVo4Unit m : list) {
resList.add(m);
diff --git a/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberComponent.java b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberComponent.java
new file mode 100644
index 00000000..a3176e0e
--- /dev/null
+++ b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberComponent.java
@@ -0,0 +1,77 @@
+package com.jsh.erp.service.serialNumber;
+
+import com.jsh.erp.service.ICommonQuery;
+import com.jsh.erp.service.material.MaterialResource;
+import com.jsh.erp.service.material.MaterialService;
+import com.jsh.erp.utils.Constants;
+import com.jsh.erp.utils.QueryUtils;
+import com.jsh.erp.utils.StringUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/21 16:33
+ */
+@Service(value = "serialNumber_component")
+@SerialNumberResource
+public class SerialNumberComponent implements ICommonQuery {
+ @Resource
+ private SerialNumberService serialNumberService;
+
+ @Override
+ public Object selectOne(String condition) {
+ return null;
+ }
+
+ @Override
+ public List> select(Map map) {
+ return getSerialNumberList(map);
+ }
+
+ private List> getSerialNumberList(Map map) {
+ String search = map.get(Constants.SEARCH);
+ String serialNumber = StringUtil.getInfo(search, "serialNumber");
+ String materialName = StringUtil.getInfo(search, "materialName");
+ return serialNumberService.select(serialNumber,materialName,QueryUtils.offset(map), QueryUtils.rows(map));
+ }
+
+ @Override
+ public int counts(Map map) {
+ String search = map.get(Constants.SEARCH);
+ String serialNumber = StringUtil.getInfo(search, "serialNumber");
+ String materialName = StringUtil.getInfo(search, "materialName");
+ return serialNumberService.countSerialNumber(serialNumber, materialName);
+ }
+
+ @Override
+ public int insert(String beanJson, HttpServletRequest request) {
+ return serialNumberService.insertSerialNumber(beanJson, request);
+ }
+
+ @Override
+ public int update(String beanJson, Long id) {
+ return serialNumberService.updateSerialNumber(beanJson, id);
+ }
+
+ @Override
+ public int delete(Long id) {
+ return serialNumberService.deleteSerialNumber(id);
+ }
+
+ @Override
+ public int batchDelete(String ids) {
+ return serialNumberService.batchDeleteSerialNumber(ids);
+ }
+
+ @Override
+ public int checkIsNameExist(Long id, String serialNumber) {
+ return serialNumberService.checkIsNameExist(id, serialNumber);
+ }
+}
diff --git a/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberResource.java b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberResource.java
new file mode 100644
index 00000000..6da53819
--- /dev/null
+++ b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberResource.java
@@ -0,0 +1,18 @@
+package com.jsh.erp.service.serialNumber;
+
+import com.jsh.erp.service.ResourceInfo;
+
+import java.lang.annotation.*;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/21 16:33
+ */
+@ResourceInfo(value = "serialNumber", type = 105)
+@Inherited
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface SerialNumberResource {
+}
diff --git a/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java
new file mode 100644
index 00000000..e893c08e
--- /dev/null
+++ b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java
@@ -0,0 +1,235 @@
+package com.jsh.erp.service.serialNumber;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jsh.erp.constants.ExceptionConstants;
+import com.jsh.erp.datasource.entities.*;
+import com.jsh.erp.datasource.mappers.MaterialMapperEx;
+import com.jsh.erp.datasource.mappers.SerialNumberMapper;
+import com.jsh.erp.datasource.mappers.SerialNumberMapperEx;
+import com.jsh.erp.exception.BusinessRunTimeException;
+import com.jsh.erp.service.material.MaterialService;
+import com.jsh.erp.utils.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Description
+ *
+ * @Author: cjl
+ * @Date: 2019/1/21 16:33
+ */
+@Service
+public class SerialNumberService {
+ private Logger logger = LoggerFactory.getLogger(MaterialService.class);
+
+ @Resource
+ private SerialNumberMapper serialNumberMapper;
+ @Resource
+ private SerialNumberMapperEx serialNumberMapperEx;
+ @Resource
+ private MaterialMapperEx materialMapperEx;
+
+
+ public SerialNumber getSerialNumber(long id) {
+ return serialNumberMapper.selectByPrimaryKey(id);
+ }
+
+ public List getSerialNumber() {
+ SerialNumberExample example = new SerialNumberExample();
+ return serialNumberMapper.selectByExample(example);
+ }
+
+ public List select(String serialNumber, String materialName, Integer offset, Integer rows) {
+ return serialNumberMapperEx.selectByConditionSerialNumber(serialNumber, materialName,offset, rows);
+
+ }
+
+ public int countSerialNumber(String serialNumber,String materialName) {
+ return serialNumberMapperEx.countSerialNumber(serialNumber, materialName);
+ }
+
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int insertSerialNumber(String beanJson, HttpServletRequest request) {
+ SerialNumber serialNumber = JSONObject.parseObject(beanJson, SerialNumber.class);
+ return serialNumberMapper.insertSelective(serialNumber);
+ }
+
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int updateSerialNumber(String beanJson, Long id) {
+ SerialNumber serialNumber = JSONObject.parseObject(beanJson, SerialNumber.class);
+ serialNumber.setId(id);
+ int res = serialNumberMapper.updateByPrimaryKeySelective(serialNumber);
+ return res;
+ }
+
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int deleteSerialNumber(Long id) {
+ return serialNumberMapper.deleteByPrimaryKey(id);
+ }
+
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int batchDeleteSerialNumber(String ids) {
+ List idList = StringUtil.strToLongList(ids);
+ SerialNumberExample example = new SerialNumberExample();
+ example.createCriteria().andIdIn(idList);
+ return serialNumberMapper.deleteByExample(example);
+ }
+
+ public int checkIsNameExist(Long id, String serialNumber) {
+ SerialNumberExample example = new SerialNumberExample();
+ example.createCriteria().andIdNotEqualTo(id).andSerialNumberEqualTo(serialNumber);
+ List list = serialNumberMapper.selectByExample(example);
+ return list.size();
+ }
+
+
+
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int batchSetEnable(Boolean enabled, String materialIDs) {
+ List ids = StringUtil.strToLongList(materialIDs);
+ SerialNumber serialNumber = new SerialNumber();
+ SerialNumberExample example = new SerialNumberExample();
+ example.createCriteria().andIdIn(ids);
+ return serialNumberMapper.updateByExampleSelective(serialNumber, example);
+ }
+
+
+ public List findById(Long id){
+ return serialNumberMapperEx.findById(id);
+ }
+
+
+
+
+ public void checkIsExist(Long id, String materialName, String serialNumber) {
+ /**
+ * 商品名称不为空时,检查商品名称是否存在
+ * */
+ if(StringUtil.isNotEmpty(materialName)){
+ List mlist = materialMapperEx.findByMaterialName(materialName);
+ if(mlist==null||mlist.size()<1){
+ //商品名称不存在
+ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_EXISTS_CODE,
+ ExceptionConstants.MATERIAL_NOT_EXISTS__MSG);
+ }else if(mlist.size()>1){
+ //商品信息不唯一
+ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_ONLY_CODE,
+ ExceptionConstants.MATERIAL_NOT_ONLY__MSG);
+
+ }
+ }
+ /***
+ * 判断序列号是否已存在
+ * */
+ List list = serialNumberMapperEx.findBySerialNumber(serialNumber);
+ if(list!=null&&list.size()>0){
+ if(list.size()>1){
+ //存在多个同名序列号
+ throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE,
+ ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG);
+ }else{
+ //存在一个序列号
+ if(id==null){
+ //新增,存在要添加的序列号
+ throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE,
+ ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG);
+ }
+ if(id.equals(list.get(0).getId())){
+ //修改的是同一条数据
+ }else{
+ //存在一条不同的序列号信息
+ throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE,
+ ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG);
+ }
+ }
+
+ }
+ }
+
+ /**
+ * 新增序列号信息
+ * */
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public SerialNumberEx addSerialNumber(SerialNumberEx serialNumberEx) {
+ if(serialNumberEx==null){
+ return null;
+ }
+ /**处理商品id*/
+ if(serialNumberEx.getMaterialId()==null){
+ if(StringUtil.isNotEmpty(serialNumberEx.getMaterialName())){
+ List mlist = materialMapperEx.findByMaterialName(serialNumberEx.getMaterialName());
+ if(mlist==null||mlist.size()<1){
+ //商品名称不存在
+ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_EXISTS_CODE,
+ ExceptionConstants.MATERIAL_NOT_EXISTS__MSG);
+ }else if(mlist.size()>1){
+ //商品信息不唯一
+ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_ONLY_CODE,
+ ExceptionConstants.MATERIAL_NOT_ONLY__MSG);
+
+ }else{
+ serialNumberEx.setMaterialId(mlist.get(0).getId());
+ }
+ }
+ }
+ //删除标记,默认未删除
+ serialNumberEx.setDeleteFlag(false);
+ //已卖出,默认未否
+ serialNumberEx.setIsSell(false);
+ Date date=new Date();
+ serialNumberEx.setCreateTime(date);
+ serialNumberEx.setUpdateTime(date);
+ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+ User userInfo=(User)request.getSession().getAttribute("user");
+ serialNumberEx.setCreator(userInfo==null?null:userInfo.getId());
+ serialNumberEx.setUpdater(userInfo==null?null:userInfo.getId());
+ int result=serialNumberMapperEx.addSerialNumber(serialNumberEx);
+ if(result==1){
+ return serialNumberEx;
+ }
+ return null;
+ }
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public SerialNumberEx updateSerialNumber(SerialNumberEx serialNumberEx) {
+ if(serialNumberEx==null){
+ return null;
+ }
+ /**处理商品id*/
+ if(StringUtil.isNotEmpty(serialNumberEx.getMaterialName())){
+ List mlist = materialMapperEx.findByMaterialName(serialNumberEx.getMaterialName());
+ if(mlist==null||mlist.size()<1){
+ //商品名称不存在
+ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_EXISTS_CODE,
+ ExceptionConstants.MATERIAL_NOT_EXISTS__MSG);
+ }else if(mlist.size()>1){
+ //商品信息不唯一
+ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_ONLY_CODE,
+ ExceptionConstants.MATERIAL_NOT_ONLY__MSG);
+
+ }else{
+ serialNumberEx.setMaterialId(mlist.get(0).getId());
+ }
+ }
+ Date date=new Date();
+ serialNumberEx.setUpdateTime(date);
+ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+ User userInfo=(User)request.getSession().getAttribute("user");
+ serialNumberEx.setUpdater(userInfo==null?null:userInfo.getId());
+ int result = serialNumberMapperEx.updateSerialNumber(serialNumberEx);
+ if(result==1){
+ return serialNumberEx;
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/jsh/erp/utils/JsonUtils.java b/src/main/java/com/jsh/erp/utils/JsonUtils.java
index d990ccb2..131684cf 100644
--- a/src/main/java/com/jsh/erp/utils/JsonUtils.java
+++ b/src/main/java/com/jsh/erp/utils/JsonUtils.java
@@ -1,21 +1,22 @@
-package com.jsh.erp.utils;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-/**
- * Created by jishenghua 2018-5-11 09:48:08
- *
- * @author jishenghua
- */
-public class JsonUtils {
-
- public static JSONObject ok(){
- JSONObject obj = new JSONObject();
- JSONObject tmp = new JSONObject();
- tmp.put("message", "成功");
- obj.put("code", 200);
- obj.put("data", tmp);
- return obj;
- }
-}
+package com.jsh.erp.utils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * Created by jishenghua 2018-5-11 09:48:08
+ *
+ * @author jishenghua
+ */
+public class JsonUtils {
+
+ public static JSONObject ok(){
+ JSONObject obj = new JSONObject();
+ JSONObject tmp = new JSONObject();
+ tmp.put("message", "成功");
+ obj.put("code", 200);
+ obj.put("data", tmp);
+ return obj;
+ }
+
+}
diff --git a/src/main/java/com/jsh/erp/utils/ResponseJsonUtil.java b/src/main/java/com/jsh/erp/utils/ResponseJsonUtil.java
index 953cc8d6..2f7fee30 100644
--- a/src/main/java/com/jsh/erp/utils/ResponseJsonUtil.java
+++ b/src/main/java/com/jsh/erp/utils/ResponseJsonUtil.java
@@ -1,83 +1,83 @@
-package com.jsh.erp.utils;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.alibaba.fastjson.serializer.ValueFilter;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TimeZone;
-
-public class ResponseJsonUtil {
- public static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd");
-
- static {
- FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+8"));
- }
-
- /**
- * 响应过滤器
- */
- public static final class ResponseFilter extends ExtJsonUtils.ExtFilter implements ValueFilter {
- @Override
- public Object process(Object object, String name, Object value) {
- if (name.equals("createTime") || name.equals("modifyTime")) {
- return value;
- } else if (value instanceof Date) {
- return FORMAT.format(value);
- } else {
- return value;
- }
- }
- }
-
- /**
- *
- * @param responseCode
- * @return
- */
- public static String backJson4HttpApi(ResponseCode responseCode) {
- if (responseCode != null) {
- String result = JSON.toJSONString(responseCode, new ResponseFilter(),
- SerializerFeature.DisableCircularReferenceDetect,
- SerializerFeature.WriteNonStringKeyAsString);
- result = result.replaceFirst("\"data\":\\{", "");
- return result.substring(0, result.length() - 1);
- }
- return null;
- }
-
- /**
- * 验证失败的json串
- * @param code
- * @return
- */
- public static String backJson4VerifyFailure(int code) {
- Map map = new HashMap();
- map.put("message", "未通过验证");
- return JSON.toJSONString(new ResponseCode(code, map), new ResponseFilter(),
- SerializerFeature.DisableCircularReferenceDetect,
- SerializerFeature.WriteNonStringKeyAsString);
- }
-
- /**
- * 成功的json串
- * @param responseCode
- * @return
- */
- public static String backJson(ResponseCode responseCode) {
- if (responseCode != null) {
- return JSON.toJSONString(responseCode, new ResponseFilter(),
- SerializerFeature.DisableCircularReferenceDetect,
- SerializerFeature.WriteNonStringKeyAsString);
- }
- return null;
- }
-
- public static String returnJson(Map map, String message, int code) {
- map.put("message", message);
- return backJson(new ResponseCode(code, map));
- }
-}
+package com.jsh.erp.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.alibaba.fastjson.serializer.ValueFilter;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TimeZone;
+
+public class ResponseJsonUtil {
+ public static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+
+ static {
+ FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+8"));
+ }
+
+ /**
+ * 响应过滤器
+ */
+ public static final class ResponseFilter extends ExtJsonUtils.ExtFilter implements ValueFilter {
+ @Override
+ public Object process(Object object, String name, Object value) {
+ if (name.equals("createTime") || name.equals("modifyTime")||name.equals("updateTime")) {
+ return value;
+ } else if (value instanceof Date) {
+ return FORMAT.format(value);
+ } else {
+ return value;
+ }
+ }
+ }
+
+ /**
+ *
+ * @param responseCode
+ * @return
+ */
+ public static String backJson4HttpApi(ResponseCode responseCode) {
+ if (responseCode != null) {
+ String result = JSON.toJSONString(responseCode, new ResponseFilter(),
+ SerializerFeature.DisableCircularReferenceDetect,
+ SerializerFeature.WriteNonStringKeyAsString);
+ result = result.replaceFirst("\"data\":\\{", "");
+ return result.substring(0, result.length() - 1);
+ }
+ return null;
+ }
+
+ /**
+ * 验证失败的json串
+ * @param code
+ * @return
+ */
+ public static String backJson4VerifyFailure(int code) {
+ Map map = new HashMap();
+ map.put("message", "未通过验证");
+ return JSON.toJSONString(new ResponseCode(code, map), new ResponseFilter(),
+ SerializerFeature.DisableCircularReferenceDetect,
+ SerializerFeature.WriteNonStringKeyAsString);
+ }
+
+ /**
+ * 成功的json串
+ * @param responseCode
+ * @return
+ */
+ public static String backJson(ResponseCode responseCode) {
+ if (responseCode != null) {
+ return JSON.toJSONString(responseCode, new ResponseFilter(),
+ SerializerFeature.DisableCircularReferenceDetect,
+ SerializerFeature.WriteNonStringKeyAsString);
+ }
+ return null;
+ }
+
+ public static String returnJson(Map map, String message, int code) {
+ map.put("message", message);
+ return backJson(new ResponseCode(code, map));
+ }
+}
diff --git a/src/main/java/com/jsh/erp/utils/StringUtil.java b/src/main/java/com/jsh/erp/utils/StringUtil.java
index 7321449f..6c44e68a 100644
--- a/src/main/java/com/jsh/erp/utils/StringUtil.java
+++ b/src/main/java/com/jsh/erp/utils/StringUtil.java
@@ -1,214 +1,218 @@
-package com.jsh.erp.utils;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * @author jishenghua qq752718920 2018-10-7 15:26:27
- */
-public class StringUtil {
-
- private StringUtil() {
-
- }
-
- private static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
-
- public static String filterNull(String str) {
- if (str == null) {
- return "";
- } else {
- return str.trim();
- }
- }
-
- public static boolean stringEquels(String source,String target) {
- if(isEmpty(source)||isEmpty(target)){
- return false;
- }else{
- return source.equals(target);
- }
- }
-
- public static boolean isEmpty(String str) {
- return str == null || "".equals(str.trim());
- }
-
- public static boolean isNotEmpty(String str) {
- return !isEmpty(str);
- }
-
- public static String getSysDate(String format) {
- if (StringUtil.isEmpty(format)) {
- format = DEFAULT_FORMAT;
- }
- SimpleDateFormat df = new SimpleDateFormat(format);
- return df.format(new Date());
- }
-
- public static Date getDateByString(String date, String format) {
- if (StringUtil.isEmpty(format)) {
- format = DEFAULT_FORMAT;
- }
- if (StringUtil.isNotEmpty(date)) {
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- try {
- return sdf.parse(date);
- } catch (ParseException e) {
- throw new RuntimeException("转换为日期类型错误:DATE:" + date + " FORMAT:" + format);
- }
- } else {
- return null;
- }
- }
-
- public static Date getDateByLongDate(Long millis) {
- if (millis == null) {
- return new Date();
- }
- Calendar cal = Calendar.getInstance();
- cal.setTimeInMillis(millis);
- return cal.getTime();
-
- }
-
- public static UUID stringToUUID(String id) {
- if (StringUtil.isNotEmpty(id)) {
- return UUID.fromString(id);
- } else {
- return null;
- }
- }
-
- public static Integer parseInteger(String str) {
- if (StringUtil.isNotEmpty(str)) {
- return Integer.parseInt(str);
- } else {
- return null;
- }
- }
-
- public static List listToUUID(List listStrs) {
- if (listStrs != null && listStrs.size() > 0) {
- List uuidList = new ArrayList();
- for (String str : listStrs) {
- uuidList.add(UUID.fromString(str));
- }
- return uuidList;
- } else {
- return null;
- }
- }
-
- public static List arrayToUUIDList(String[] uuids) {
- if (uuids != null && uuids.length > 0) {
- List uuidList = new ArrayList();
- for (String str : uuids) {
- uuidList.add(UUID.fromString(str));
- }
- return uuidList;
- } else {
- return null;
- }
- }
-
- //是否是JSON
- public static boolean containsAny(String str, String... flag) {
- if (str != null) {
- if (flag == null || flag.length == 0) {
- flag = "[-{-}-]-,".split("-");
- }
- for (String s : flag) {
- if (str.contains(s)) {
- return true;
- }
- }
- }
- return false;
- }
-
- public static String getModifyOrgOperateData(UUID resourceId, UUID orgId) {
- if (resourceId != null && orgId != null) {
- Map map = new HashMap();
- map.put(resourceId, orgId);
- return JSON.toJSONString(map);
- }
- return "";
- }
-
- public static String[] listToStringArray(List list) {
- if (list != null && !list.isEmpty()) {
- return list.toArray(new String[list.size()]);
- }
- return new String[0];
- }
-
- public static List stringToListArray(String[] strings) {
- if (strings != null && strings.length > 0) {
- return Arrays.asList(strings);
- }
- return new ArrayList();
- }
-
- /**
- * String字符串转成List数据格式
- * String str = "1,2,3,4,5,6" -> List listLong [1,2,3,4,5,6];
- *
- * @param strArr
- * @return
- */
- public static List strToLongList(String strArr) {
- List idList=new ArrayList();
- String[] d=strArr.split(",");
- for (int i = 0, size = d.length; i < size; i++) {
- if(d[i]!=null) {
- idList.add(Long.parseLong(d[i]));
- }
- }
- return idList;
- }
-
- /**
- * String字符串转成List数据格式
- * String str = "1,2,3,4,5,6" -> List listLong [1,2,3,4,5,6];
- *
- * @param strArr
- * @return
- */
- public static List strToStringList(String strArr) {
- List idList=new ArrayList();
- String[] d=strArr.split(",");
- for (int i = 0, size = d.length; i < size; i++) {
- if(d[i]!=null) {
- idList.add(d[i].toString());
- }
- }
- return idList;
- }
-
- public static List searchCondition(String search) {
- if (isEmpty(search)) {
- return new ArrayList();
- }else{
- //String[] split = search.split(" ");
- String[] split = search.split("#");
- return stringToListArray(split);
- }
- }
-
- public static String getInfo(String search, String key){
- String value = "";
- if(search!=null) {
- JSONObject obj = JSONObject.parseObject(search);
- value = obj.getString(key);
- if(value.equals("")) {
- value = null;
- }
- }
- return value;
- }
-}
+package com.jsh.erp.utils;
+
+import com.alibaba.druid.util.StringUtils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author jishenghua qq752718920 2018-10-7 15:26:27
+ */
+public class StringUtil {
+
+ private StringUtil() {
+
+ }
+
+ private static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+ public static String filterNull(String str) {
+ if (str == null) {
+ return "";
+ } else {
+ return str.trim();
+ }
+ }
+
+ public static boolean stringEquels(String source,String target) {
+ if(isEmpty(source)||isEmpty(target)){
+ return false;
+ }else{
+ return source.equals(target);
+ }
+ }
+
+ public static boolean isEmpty(String str) {
+ return str == null || "".equals(str.trim());
+ }
+
+ public static boolean isNotEmpty(String str) {
+ return !isEmpty(str);
+ }
+
+ public static String getSysDate(String format) {
+ if (StringUtil.isEmpty(format)) {
+ format = DEFAULT_FORMAT;
+ }
+ SimpleDateFormat df = new SimpleDateFormat(format);
+ return df.format(new Date());
+ }
+
+ public static Date getDateByString(String date, String format) {
+ if (StringUtil.isEmpty(format)) {
+ format = DEFAULT_FORMAT;
+ }
+ if (StringUtil.isNotEmpty(date)) {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ try {
+ return sdf.parse(date);
+ } catch (ParseException e) {
+ throw new RuntimeException("转换为日期类型错误:DATE:" + date + " FORMAT:" + format);
+ }
+ } else {
+ return null;
+ }
+ }
+
+ public static Date getDateByLongDate(Long millis) {
+ if (millis == null) {
+ return new Date();
+ }
+ Calendar cal = Calendar.getInstance();
+ cal.setTimeInMillis(millis);
+ return cal.getTime();
+
+ }
+
+ public static UUID stringToUUID(String id) {
+ if (StringUtil.isNotEmpty(id)) {
+ return UUID.fromString(id);
+ } else {
+ return null;
+ }
+ }
+
+ public static Integer parseInteger(String str) {
+ if (StringUtil.isNotEmpty(str)) {
+ return Integer.parseInt(str);
+ } else {
+ return null;
+ }
+ }
+
+ public static List listToUUID(List listStrs) {
+ if (listStrs != null && listStrs.size() > 0) {
+ List uuidList = new ArrayList();
+ for (String str : listStrs) {
+ uuidList.add(UUID.fromString(str));
+ }
+ return uuidList;
+ } else {
+ return null;
+ }
+ }
+
+ public static List arrayToUUIDList(String[] uuids) {
+ if (uuids != null && uuids.length > 0) {
+ List uuidList = new ArrayList();
+ for (String str : uuids) {
+ uuidList.add(UUID.fromString(str));
+ }
+ return uuidList;
+ } else {
+ return null;
+ }
+ }
+
+ //是否是JSON
+ public static boolean containsAny(String str, String... flag) {
+ if (str != null) {
+ if (flag == null || flag.length == 0) {
+ flag = "[-{-}-]-,".split("-");
+ }
+ for (String s : flag) {
+ if (str.contains(s)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public static String getModifyOrgOperateData(UUID resourceId, UUID orgId) {
+ if (resourceId != null && orgId != null) {
+ Map map = new HashMap();
+ map.put(resourceId, orgId);
+ return JSON.toJSONString(map);
+ }
+ return "";
+ }
+
+ public static String[] listToStringArray(List list) {
+ if (list != null && !list.isEmpty()) {
+ return list.toArray(new String[list.size()]);
+ }
+ return new String[0];
+ }
+
+ public static List stringToListArray(String[] strings) {
+ if (strings != null && strings.length > 0) {
+ return Arrays.asList(strings);
+ }
+ return new ArrayList();
+ }
+
+ /**
+ * String字符串转成List数据格式
+ * String str = "1,2,3,4,5,6" -> List listLong [1,2,3,4,5,6];
+ *
+ * @param strArr
+ * @return
+ */
+ public static List strToLongList(String strArr) {
+ List idList=new ArrayList();
+ String[] d=strArr.split(",");
+ for (int i = 0, size = d.length; i < size; i++) {
+ if(d[i]!=null) {
+ idList.add(Long.parseLong(d[i]));
+ }
+ }
+ return idList;
+ }
+
+ /**
+ * String字符串转成List数据格式
+ * String str = "1,2,3,4,5,6" -> List listLong [1,2,3,4,5,6];
+ *
+ * @param strArr
+ * @return
+ */
+ public static List strToStringList(String strArr) {
+ if(StringUtils.isEmpty(strArr)){
+ return null;
+ }
+ List idList=new ArrayList();
+ String[] d=strArr.split(",");
+ for (int i = 0, size = d.length; i < size; i++) {
+ if(d[i]!=null) {
+ idList.add(d[i].toString());
+ }
+ }
+ return idList;
+ }
+
+ public static List searchCondition(String search) {
+ if (isEmpty(search)) {
+ return new ArrayList();
+ }else{
+ //String[] split = search.split(" ");
+ String[] split = search.split("#");
+ return stringToListArray(split);
+ }
+ }
+
+ public static String getInfo(String search, String key){
+ String value = "";
+ if(search!=null) {
+ JSONObject obj = JSONObject.parseObject(search);
+ value = obj.getString(key);
+ if(value.equals("")) {
+ value = null;
+ }
+ }
+ return value;
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index d6ebbd16..f3b627ad 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -6,6 +6,8 @@ resource=src/main/resources
web.front.baseDir=erp_web
mybatis.type-aliases-package=com.chinamobile.model.*
mybatis.mapper-locations=classpath:./mapper_xml/*.xml
+#开启sql打印
+logging.level.com.jsh.erp.datasource.mappers=DEBUG
diff --git a/src/main/resources/mapper_xml/MaterialMapper.xml b/src/main/resources/mapper_xml/MaterialMapper.xml
index a5fe4075..da08d931 100644
--- a/src/main/resources/mapper_xml/MaterialMapper.xml
+++ b/src/main/resources/mapper_xml/MaterialMapper.xml
@@ -29,6 +29,7 @@
+
Id, CategoryId, Name, Mfrs, Packing, SafetyStock, Model, Standard, Color, Unit, Remark,
RetailPrice, LowPrice, PresetPriceOne, PresetPriceTwo, UnitId, FirstOutUnit, FirstInUnit,
- PriceStrategy, Enabled, OtherField1, OtherField2, OtherField3
+ PriceStrategy, Enabled, OtherField1, OtherField2, OtherField3,enableSerialNumber
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper_xml/SerialNumberMapper.xml b/src/main/resources/mapper_xml/SerialNumberMapper.xml
new file mode 100644
index 00000000..ea0d1c84
--- /dev/null
+++ b/src/main/resources/mapper_xml/SerialNumberMapper.xml
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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, serial_Number, is_Sell, remark, delete_Flag, create_Time, creator,
+ update_Time, updater
+
+
+
+
+
+ delete from jsh_serial_number
+ where id = #{id,jdbcType=BIGINT}
+
+
+
+ delete from jsh_serial_number
+
+
+
+
+
+
+ insert into jsh_serial_number (id, material_Id, serial_Number,
+ is_Sell, remark, delete_Flag,
+ create_Time, creator, update_Time,
+ updater)
+ values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{serialNumber,jdbcType=VARCHAR},
+ #{isSell,jdbcType=BIT}, #{remark,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=BIT},
+ #{createTime,jdbcType=TIMESTAMP}, #{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP},
+ #{updater,jdbcType=BIGINT})
+
+
+
+ insert into jsh_serial_number
+
+
+ id,
+
+
+ material_Id,
+
+
+ serial_Number,
+
+
+ is_Sell,
+
+
+ remark,
+
+
+ delete_Flag,
+
+
+ create_Time,
+
+
+ creator,
+
+
+ update_Time,
+
+
+ updater,
+
+
+
+
+ #{id,jdbcType=BIGINT},
+
+
+ #{materialId,jdbcType=BIGINT},
+
+
+ #{serialNumber,jdbcType=VARCHAR},
+
+
+ #{isSell,jdbcType=BIT},
+
+
+ #{remark,jdbcType=VARCHAR},
+
+
+ #{deleteFlag,jdbcType=BIT},
+
+
+ #{createTime,jdbcType=TIMESTAMP},
+
+
+ #{creator,jdbcType=BIGINT},
+
+
+ #{updateTime,jdbcType=TIMESTAMP},
+
+
+ #{updater,jdbcType=BIGINT},
+
+
+
+
+
+
+ update jsh_serial_number
+
+
+ id = #{record.id,jdbcType=BIGINT},
+
+
+ material_Id = #{record.materialId,jdbcType=BIGINT},
+
+
+ serial_Number = #{record.serialNumber,jdbcType=VARCHAR},
+
+
+ is_Sell = #{record.isSell,jdbcType=BIT},
+
+
+ remark = #{record.remark,jdbcType=VARCHAR},
+
+
+ delete_Flag = #{record.deleteFlag,jdbcType=BIT},
+
+
+ create_Time = #{record.createTime,jdbcType=TIMESTAMP},
+
+
+ creator = #{record.creator,jdbcType=BIGINT},
+
+
+ update_Time = #{record.updateTime,jdbcType=TIMESTAMP},
+
+
+ updater = #{record.updater,jdbcType=BIGINT},
+
+
+
+
+
+
+
+
+ update jsh_serial_number
+ set id = #{record.id,jdbcType=BIGINT},
+ material_Id = #{record.materialId,jdbcType=BIGINT},
+ serial_Number = #{record.serialNumber,jdbcType=VARCHAR},
+ is_Sell = #{record.isSell,jdbcType=BIT},
+ remark = #{record.remark,jdbcType=VARCHAR},
+ delete_Flag = #{record.deleteFlag,jdbcType=BIT},
+ create_Time = #{record.createTime,jdbcType=TIMESTAMP},
+ creator = #{record.creator,jdbcType=BIGINT},
+ update_Time = #{record.updateTime,jdbcType=TIMESTAMP},
+ updater = #{record.updater,jdbcType=BIGINT}
+
+
+
+
+
+
+ update jsh_serial_number
+
+
+ material_Id = #{materialId,jdbcType=BIGINT},
+
+
+ serial_Number = #{serialNumber,jdbcType=VARCHAR},
+
+
+ is_Sell = #{isSell,jdbcType=BIT},
+
+
+ remark = #{remark,jdbcType=VARCHAR},
+
+
+ delete_Flag = #{deleteFlag,jdbcType=BIT},
+
+
+ create_Time = #{createTime,jdbcType=TIMESTAMP},
+
+
+ creator = #{creator,jdbcType=BIGINT},
+
+
+ update_Time = #{updateTime,jdbcType=TIMESTAMP},
+
+
+ updater = #{updater,jdbcType=BIGINT},
+
+
+ where id = #{id,jdbcType=BIGINT}
+
+
+
+ update jsh_serial_number
+ set material_Id = #{materialId,jdbcType=BIGINT},
+ serial_Number = #{serialNumber,jdbcType=VARCHAR},
+ is_Sell = #{isSell,jdbcType=BIT},
+ remark = #{remark,jdbcType=VARCHAR},
+ delete_Flag = #{deleteFlag,jdbcType=BIT},
+ create_Time = #{createTime,jdbcType=TIMESTAMP},
+ creator = #{creator,jdbcType=BIGINT},
+ update_Time = #{updateTime,jdbcType=TIMESTAMP},
+ updater = #{updater,jdbcType=BIGINT}
+ where id = #{id,jdbcType=BIGINT}
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper_xml/SerialNumberMapperEx.xml b/src/main/resources/mapper_xml/SerialNumberMapperEx.xml
new file mode 100644
index 00000000..31fc202d
--- /dev/null
+++ b/src/main/resources/mapper_xml/SerialNumberMapperEx.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into jsh_serial_number
+ (material_Id, serial_Number, is_Sell, remark,delete_Flag,
+ create_Time, creator,update_Time, updater)
+ values
+ (#{materialId},#{serialNumber},#{isSell},#{remark},#{deleteFlag},
+ #{createTime},#{creator},#{updateTime},#{updater}
+ )
+
+
+ update jsh_serial_number
+
+
+ material_Id = #{materialId,jdbcType=BIGINT},
+
+
+ serial_Number = #{serialNumber,jdbcType=VARCHAR},
+
+
+ is_Sell = #{isSell,jdbcType=BIT},
+
+
+ remark = #{remark,jdbcType=VARCHAR},
+
+
+ delete_Flag = #{deleteFlag,jdbcType=BIT},
+
+
+ update_Time = #{updateTime,jdbcType=TIMESTAMP},
+
+
+ updater = #{updater,jdbcType=BIGINT},
+
+
+ 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 b4b30c31..6f27c364 100644
--- a/src/test/resources/generatorConfig.xml
+++ b/src/test/resources/generatorConfig.xml
@@ -1,68 +1,69 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|