完成用户健康打卡,物资添加多级分类查询,优化代码

This commit is contained in:
zykzhangyukang 2020-05-14 21:09:58 +08:00
parent 185b0540ad
commit 004340cf6f
219 changed files with 19628 additions and 326 deletions

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="dataSourceStorageLocal">
<data-source name="xinguan@localhost [2]" uuid="c584d602-f8c1-4889-b276-b5c890f72199">
<database-info product="MySQL" version="5.7.28" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.15 (Revision: 79a4336f140499bd22dd07f02b708e163844e3d5)" dbms="MYSQL" exact-version="5.7.28" exact-driver-version="8.0">
<extra-name-characters>#@</extra-name-characters>
<identifier-quote-string>`</identifier-quote-string>
</database-info>
<case-sensitivity plain-identifiers="lower" quoted-identifiers="lower" />
<secret-storage>master_key</secret-storage>
<user-name>root</user-name>
<schema-mapping>
<introspection-scope>
<node kind="schema" qname="@" />
</introspection-scope>
</schema-mapping>
</data-source>
</component>
</project>

11
.idea/dataSources.xml Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="xinguan@localhost [2]" uuid="c584d602-f8c1-4889-b276-b5c890f72199">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://localhost:3306/xinguan?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;autoReconnect=true&amp;failOverReadOnly=false&amp;serverTimezone=CTT</jdbc-url>
</data-source>
</component>
</project>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
#n:information_schema
!<md> [null, 0, null, null, -2147483648, -2147483648]

View file

@ -1,5 +0,0 @@
{
"code": -1,
"msg": "用户名或密码错误!",
"data": null
}

View file

@ -1,5 +0,0 @@
{
"code": -1,
"msg": "密码错误!",
"data": null
}

View file

@ -1,5 +0,0 @@
{
"code": 200,
"msg": "成功",
"data": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODUzNTk5NzksInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.WgDJShex68vGLCLMG7SYrrvsxW3A_1sz0Hv_bz_mE64"
}

View file

@ -0,0 +1 @@
{"code":200,"msg":"成功","data":{"total":0,"rows":[]}}

View file

@ -0,0 +1 @@
{"code":200,"msg":"成功","data":{"total":1,"rows":[{"id":1,"outNum":"11","type":1,"operator":"1","createTime":"2020-05-10T06:42:04.000+0000","productNumber":111,"consumerId":1,"remark":"1","status":1,"consumerName":null,"phone":null}]}}

View file

@ -0,0 +1 @@
{"code":200,"msg":"成功","data":{"total":1,"rows":[{"id":1,"outNum":"11","type":1,"operator":"1","createTime":"2020-05-10T06:42:04.000+0000","productNumber":111,"consumerId":7,"remark":"1","status":1,"consumerName":"324234234","phone":"15079437282"}]}}

View file

@ -0,0 +1 @@
{"code":200,"msg":"成功","data":{"total":2,"rows":[{"id":24,"address":"湖北省/武汉市/汉南区","userId":5,"situation":0,"touch":0,"passby":0,"reception":0,"createTime":"2020-05-07T07:23:40.000+0000"},{"id":25,"address":"河北省/秦皇岛市/北戴河区","userId":5,"situation":0,"touch":1,"passby":1,"reception":1,"createTime":"2020-05-10T03:26:27.000+0000"}]}}

View file

@ -1,3 +1,46 @@
POST http://49.232.13.173:8080/user/login?username=111&password=3
Accept: */*
Cache-Control: no-cache
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkzMzk4MDIsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.5N1_ImVcKsbo_vvNFuAWwTYoChAejypF-fRkuzzt6Ak
###
GET http://localhost:8081/health/history?pageNum=1&pageSize=3
Accept: */*
Cache-Control: no-cache
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkzMzk4MDIsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.5N1_ImVcKsbo_vvNFuAWwTYoChAejypF-fRkuzzt6Ak
<> 2020-05-13T093036.200.json
###
GET http://localhost:8081/outStock/findOutStockList?pageNum=1&pageSize=3
Accept: */*
Cache-Control: no-cache
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkwOTgyMDQsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.IQXJJkzmOLUU8YU3oF8dhPB-O46nitAGxdbZr2EkaDY
<> 2020-05-10T024319.200.json
###
GET http://localhost:8081/outStock/findOutStockList?pageNum=1&pageSize=3
Accept: */*
Cache-Control: no-cache
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkwOTgyMDQsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.IQXJJkzmOLUU8YU3oF8dhPB-O46nitAGxdbZr2EkaDY
<> 2020-05-10T024219.200.json
###
GET http://localhost:8081/outStock/findOutStockList?pageNum=1&pageSize=3
Accept: */*
Cache-Control: no-cache
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkwOTgyMDQsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.IQXJJkzmOLUU8YU3oF8dhPB-O46nitAGxdbZr2EkaDY
<> 2020-05-10T024156.200.json
###
POST http://localhost:8081/user/login?username=<script>alert("helloword")</script>&password=123456
Accept: */*
Cache-Control: no-cache
@ -389,44 +432,3 @@ Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODUzNTk5NzksInVz
###
POST http://localhost:8081/user/login?password=123456&username=zhangyukang
Accept: */*
Cache-Control: no-cache
Authorization: fdasfdasf
<> 2020-03-27T094620.200.json
###
POST http://localhost:8081/user/login?password=123456fdfas&username=zhangyukang
Accept: */*
Cache-Control: no-cache
Authorization: fdasfdasf
<> 2020-03-27T094609.200.json
###
POST http://localhost:8081/user/login?password=123456fdfas&username=zhangyukang
Accept: */*
Cache-Control: no-cache
Authorization: fdasfdasf
###
POST http://localhost:8081/user/login?password=123456fdfas&username=zhangyukang
Accept: */*
Cache-Control: no-cache
Authorization: fdasfdasf
###
POST http://localhost:8081/user/login?password=123456fdfas&username=zhangyukang
Accept: */*
Cache-Control: no-cache
Authorization: fdasfdasf
<> 2020-03-27T094041.200.json
###

View file

@ -2,165 +2,50 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="bc0098de-1555-475b-b0df-4f7e5b9cd099" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/images/4.PNG" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/converter/NcovAPIController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/dataSources.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/HealthController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/OutStockController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/converter/OutStockConverter.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/mapper/HealthMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/mapper/OutStockMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/HealthService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/OutStockService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/HealthServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/OutStockServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/HealthVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/OutStockVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/httpRequests/2020-03-27T094041.200.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/httpRequests/2020-03-27T094609.200.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/httpRequests/2020-03-27T094620.200.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/httpRequests/http-requests-log.http" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/httpRequests/http-requests-log.http" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/sql/xinguan.sql" beforeDir="false" afterPath="$PROJECT_DIR$/sql/xinguan.sql" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mbg.xml" beforeDir="false" afterPath="$PROJECT_DIR$/mbg.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/InStockController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/InStockController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/ProductController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/ProductController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/converter/NcovAPIController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/controller/NcovAPIController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/mapper/ProductStockMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/mapper/ProductStockMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/InStockService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/InStockService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/InStockServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/InStockServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/ProductServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/ProductServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/SupplierServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/service/imp/SupplierServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/test/ProductCategoryMapperTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/test/ProductCategoryMapperTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/InStockDetailVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/InStockDetailVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/InStockVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/InStockVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/ProductStockVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/ProductStockVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/SupplierVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/biz/vo/SupplierVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/config/SSLConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/config/SSLConfig.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/controller/FileUploadController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/controller/FileUploadController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/controller/UserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/controller/UserController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/enums/ErrorCodeEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/enums/ErrorCodeEnum.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/LoginLogService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/LoginLogService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/UserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/UserService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/impl/DepartmentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/impl/DepartmentServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/impl/LoginLogServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/impl/LoginLogServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/impl/UserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/service/impl/UserServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/vo/DepartmentVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/coderman/api/system/vo/DepartmentVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/3828034_www.zykhome.club.pfx" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/application.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/application.yml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/VuePermission.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/controller/ConsumerController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/controller/InStockController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/controller/ProductCategoryController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/controller/ProductController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/controller/SupplierController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/converter/ConsumerConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/converter/InStockConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/converter/ProductCategoryConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/converter/ProductConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/converter/SupplierConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/ConsumerMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/InStockInfoMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/InStockMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/ProductCategoryMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/ProductMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/ProductStockMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/mapper/SupplierMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/Consumer.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/InStock.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/InStockInfo.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/Product.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/ProductCategory.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/ProductStock.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/pojo/Supplier.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/ConsumerService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/InStockService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/ProductCategoryService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/ProductService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/SupplierService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/imp/ConsumerServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/imp/InStockServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/imp/ProductServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/service/imp/SupplierServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/test/FastDFSTest.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/test/ProductCategoryMapperTest.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/utils/CategoryTreeBuilder.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/utils/CommonFileUtil.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/utils/ListPageUtils.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/ConsumerVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/InStockDetailVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/InStockItemVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/InStockVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/ProductCategoryTreeNodeVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/ProductCategoryVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/ProductStockVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/ProductVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/biz/vo/SupplierVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/annotation/ControllerEndpoint.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/aspect/AspectSupport.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/aspect/ControllerEndpointAspect.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/bean/ActiveUser.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/bean/ResponseBean.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/ComponentImport.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/CorsConfig.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/FdfsConfig.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/GlobalExceptionHandler.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/JWTFilter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/JWTToken.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/SSLConfig$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/SSLConfig.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/ShiroConfig.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/config/SwaggerConfig.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/DepartmentController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/FileUploadController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/LogController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/LoginLogController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/MenuController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/RoleController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/controller/UserController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/converter/DepartmentConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/converter/MenuConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/converter/RoleConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/converter/UserConverter.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/enums/BaseCodeInterface.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/enums/BizUserTypeEnum.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/enums/ErrorCodeEnum.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/exception/BizException.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/DepartmentMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/ImageAttachmentMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/LogMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/LoginLogMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/MenuMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/RoleMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/RoleMenuMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/UserMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/mapper/UserRoleMapper.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/Department.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/ImageAttachment.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/Log.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/LoginLog.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/Menu.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/Role.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/RoleMenu.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/User.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/pojo/UserRole.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/realm/MyRealm.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/DepartmentService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/LogService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/LoginLogService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/MenuService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/RoleService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/UserService.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/DepartmentServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/LogServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/LoginLogServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/MenuServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/ProductCategoryServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/RoleServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/service/impl/UserServiceImpl.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/test/JWTTest.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/test/TestMbg.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/test/UserMapperTest.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/AddressUtil.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/BrowserUtil.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/CreateVerifyCode.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/IPUtil.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/JWTUtils.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/MD5Utils.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/util/MenuTreeBuilder.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/DeanVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/DepartmentVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/ImageAttachmentVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/LogVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/LoginLogVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/MenuNodeVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/MenuVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/PageVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/RoleTransferItemVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/RoleVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/UserEditVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/UserInfoVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/coderman/api/system/vo/UserVO.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/ip2region/ip2region.db" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/mapper/biz/ProductStockMapper.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/mapper/system/LoginLogExtMapper.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/pfx-password.txt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/static/json/provinces.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/goods-0.0.1-SNAPSHOT.jar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/goods-0.0.1-SNAPSHOT.jar.original" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-archiver/pom.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/surefire-reports/TEST-com.coderman.DemoApplicationTests.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/surefire-reports/com.coderman.DemoApplicationTests.txt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/com/coderman/DemoApplicationTests.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/mapper/biz/ProductStockMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/biz/ProductStockMapper.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -195,6 +80,8 @@
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="DatabaseDriversLRU" value="mysql" />
<property name="RequestMappingsPanelOrder0" value="0" />
<property name="RequestMappingsPanelOrder1" value="1" />
<property name="RequestMappingsPanelWidth0" value="75" />
@ -216,6 +103,7 @@
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.coderman.api.biz.mapper" />
<recent name="com.coderman.api.biz.controller" />
<recent name="com.coderman.api.biz.converter" />
<recent name="com.coderman.api.biz.service.imp" />
@ -232,6 +120,147 @@
<component name="RestClientSettings">
<option name="REQUEST_HISTORY">
<list>
<RestClientRequest>
<option name="biscuits">
<list>
<Biscuit>
<option name="date" value="-1" />
<option name="domain" value="localhost" />
<option name="name" value="JSESSIONID" />
<option name="path" value="/" />
<option name="value" value="D736785FA7D0461467278E60337BF98B" />
</Biscuit>
</list>
</option>
<option name="httpMethod" value="GET" />
<option name="urlBase" value="http://localhost:8081" />
<option name="urlPath" value="/health/history" />
<option name="headers">
<list>
<KeyValuePair>
<option name="key" value="Accept" />
<option name="value" value="*/*" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="Cache-Control" />
<option name="value" value="no-cache" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="Authorization" />
<option name="value" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkzMzk4MDIsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.5N1_ImVcKsbo_vvNFuAWwTYoChAejypF-fRkuzzt6Ak" />
</KeyValuePair>
</list>
</option>
<option name="parameters">
<list>
<KeyValuePair>
<option name="key" value="pageNum" />
<option name="value" value="1" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="pageSize" />
<option name="value" value="3" />
</KeyValuePair>
</list>
</option>
<option name="parametersEnabled" value="true" />
<option name="textToSend" value="" />
<option name="filesToSend" value="" />
</RestClientRequest>
<RestClientRequest>
<option name="biscuits">
<list>
<Biscuit>
<option name="date" value="-1" />
<option name="domain" value="localhost" />
<option name="name" value="JSESSIONID" />
<option name="path" value="/" />
<option name="value" value="D736785FA7D0461467278E60337BF98B" />
</Biscuit>
</list>
</option>
<option name="httpMethod" value="GET" />
<option name="urlBase" value="http://localhost:8081" />
<option name="urlPath" value="/outStock/findOutStockList" />
<option name="headers">
<list>
<KeyValuePair>
<option name="key" value="Accept" />
<option name="value" value="*/*" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="Cache-Control" />
<option name="value" value="no-cache" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="Authorization" />
<option name="value" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkwOTgyMDQsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.IQXJJkzmOLUU8YU3oF8dhPB-O46nitAGxdbZr2EkaDY" />
</KeyValuePair>
</list>
</option>
<option name="parameters">
<list>
<KeyValuePair>
<option name="key" value="pageNum" />
<option name="value" value="1" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="pageSize" />
<option name="value" value="3" />
</KeyValuePair>
</list>
</option>
<option name="parametersEnabled" value="true" />
<option name="textToSend" value="" />
<option name="filesToSend" value="" />
</RestClientRequest>
<RestClientRequest>
<option name="biscuits">
<list>
<Biscuit>
<option name="date" value="-1" />
<option name="domain" value="localhost" />
<option name="name" value="JSESSIONID" />
<option name="path" value="/" />
<option name="value" value="623ABDB0C3AD1CA3D4A2E8AD71467EEB" />
</Biscuit>
</list>
</option>
<option name="httpMethod" value="GET" />
<option name="urlBase" value="http://localhost:8081" />
<option name="urlPath" value="/outStock/findOutStockList" />
<option name="headers">
<list>
<KeyValuePair>
<option name="key" value="Accept" />
<option name="value" value="*/*" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="Cache-Control" />
<option name="value" value="no-cache" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="Authorization" />
<option name="value" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODkwOTgyMDQsInVzZXJuYW1lIjoiemhhbmd5dWthbmcifQ.IQXJJkzmOLUU8YU3oF8dhPB-O46nitAGxdbZr2EkaDY" />
</KeyValuePair>
</list>
</option>
<option name="parameters">
<list>
<KeyValuePair>
<option name="key" value="pageNum" />
<option name="value" value="1" />
</KeyValuePair>
<KeyValuePair>
<option name="key" value="pageSize" />
<option name="value" value="3" />
</KeyValuePair>
</list>
</option>
<option name="parametersEnabled" value="true" />
<option name="textToSend" value="" />
<option name="filesToSend" value="" />
</RestClientRequest>
<RestClientRequest>
<option name="biscuits">
<list>
@ -1372,6 +1401,19 @@
</option>
</component>
<component name="RunManager" selected="Spring Boot.VuePermission">
<configuration name="TestMbg" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.coderman.api.system.test.TestMbg" />
<module name="Xinguan" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.coderman.api.system.test.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="HttpTest.testGetJson" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="Xinguan" />
<extension name="coverage">
@ -1388,6 +1430,22 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="ProductCategoryMapperTest.test2" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="Xinguan" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.coderman.api.biz.test.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="com.coderman.api.biz.test" />
<option name="MAIN_CLASS_NAME" value="com.coderman.api.biz.test.ProductCategoryMapperTest" />
<option name="METHOD_NAME" value="test2" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestMbg.test" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="Xinguan" />
<extension name="coverage">
@ -1420,6 +1478,8 @@
<recent_temporary>
<list>
<item itemvalue="Spring Boot.VuePermission" />
<item itemvalue="JUnit.ProductCategoryMapperTest.test2" />
<item itemvalue="Application.TestMbg" />
<item itemvalue="JUnit.HttpTest.testGetJson" />
<item itemvalue="JUnit.TestMbg.test" />
</list>
@ -1484,7 +1544,21 @@
<workItem from="1588299462791" duration="2219000" />
<workItem from="1588302246185" duration="6469000" />
<workItem from="1588333310039" duration="1865000" />
<workItem from="1588595888949" duration="919000" />
<workItem from="1588595888949" duration="1653000" />
<workItem from="1588679239136" duration="2771000" />
<workItem from="1588728839298" duration="2623000" />
<workItem from="1588812416988" duration="12269000" />
<workItem from="1588850918008" duration="1872000" />
<workItem from="1588940274922" duration="1102000" />
<workItem from="1589015314373" duration="8551000" />
<workItem from="1589071362506" duration="4878000" />
<workItem from="1589090809380" duration="5134000" />
<workItem from="1589107102590" duration="2100000" />
<workItem from="1589159276422" duration="3302000" />
<workItem from="1589283742977" duration="301000" />
<workItem from="1589332091990" duration="2765000" />
<workItem from="1589379720566" duration="1711000" />
<workItem from="1589457967844" duration="3371000" />
</task>
<servers />
</component>
@ -1509,14 +1583,14 @@
<screen x="0" y="0" width="1536" height="834" />
</state>
<state x="403" y="11" key="#VuePermission/0.0.1536.834@0.0.1536.834" timestamp="1588079271768" />
<state x="223" y="72" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1588079551601">
<state x="223" y="72" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1589459569152">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state x="223" y="72" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1536.834@0.0.1536.834" timestamp="1588079551601" />
<state x="574" y="122" key="#com.intellij.ide.util.MemberChooser" timestamp="1588223771198">
<state x="223" y="72" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1536.834@0.0.1536.834" timestamp="1589459569152" />
<state x="574" y="122" key="#com.intellij.ide.util.MemberChooser" timestamp="1589460525097">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state x="574" y="122" key="#com.intellij.ide.util.MemberChooser/0.0.1536.834@0.0.1536.834" timestamp="1588223771198" />
<state x="574" y="122" key="#com.intellij.ide.util.MemberChooser/0.0.1536.834@0.0.1536.834" timestamp="1589460525097" />
<state x="498" y="206" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1588079205110">
<screen x="0" y="0" width="1536" height="834" />
</state>
@ -1529,62 +1603,66 @@
<screen x="0" y="0" width="1536" height="834" />
</state>
<state x="524" y="119" key="#xdebugger.evaluate/0.0.1536.834@0.0.1536.834" timestamp="1588300742809" />
<state width="1493" height="301" key="GridCell.Tab.0.bottom" timestamp="1588338525218">
<state width="1493" height="190" key="GridCell.Tab.0.bottom" timestamp="1589461533523">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="301" key="GridCell.Tab.0.bottom/0.0.1536.834@0.0.1536.834" timestamp="1588338525218" />
<state width="1493" height="301" key="GridCell.Tab.0.center" timestamp="1588338525218">
<state width="1493" height="190" key="GridCell.Tab.0.bottom/0.0.1536.834@0.0.1536.834" timestamp="1589461533523" />
<state width="1493" height="190" key="GridCell.Tab.0.center" timestamp="1589461533522">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="301" key="GridCell.Tab.0.center/0.0.1536.834@0.0.1536.834" timestamp="1588338525218" />
<state width="1493" height="301" key="GridCell.Tab.0.left" timestamp="1588338525218">
<state width="1493" height="190" key="GridCell.Tab.0.center/0.0.1536.834@0.0.1536.834" timestamp="1589461533522" />
<state width="1493" height="190" key="GridCell.Tab.0.left" timestamp="1589461533522">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="301" key="GridCell.Tab.0.left/0.0.1536.834@0.0.1536.834" timestamp="1588338525218" />
<state width="1493" height="301" key="GridCell.Tab.0.right" timestamp="1588338525218">
<state width="1493" height="190" key="GridCell.Tab.0.left/0.0.1536.834@0.0.1536.834" timestamp="1589461533522" />
<state width="1493" height="190" key="GridCell.Tab.0.right" timestamp="1589461533523">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="301" key="GridCell.Tab.0.right/0.0.1536.834@0.0.1536.834" timestamp="1588338525218" />
<state width="1493" height="280" key="GridCell.Tab.1.bottom" timestamp="1588337790359">
<state width="1493" height="190" key="GridCell.Tab.0.right/0.0.1536.834@0.0.1536.834" timestamp="1589461533523" />
<state width="1493" height="190" key="GridCell.Tab.1.bottom" timestamp="1589461533523">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="280" key="GridCell.Tab.1.bottom/0.0.1536.834@0.0.1536.834" timestamp="1588337790359" />
<state width="1493" height="280" key="GridCell.Tab.1.center" timestamp="1588337790359">
<state width="1493" height="190" key="GridCell.Tab.1.bottom/0.0.1536.834@0.0.1536.834" timestamp="1589461533523" />
<state width="1493" height="190" key="GridCell.Tab.1.center" timestamp="1589461533523">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="280" key="GridCell.Tab.1.center/0.0.1536.834@0.0.1536.834" timestamp="1588337790359" />
<state width="1493" height="280" key="GridCell.Tab.1.left" timestamp="1588337790359">
<state width="1493" height="190" key="GridCell.Tab.1.center/0.0.1536.834@0.0.1536.834" timestamp="1589461533523" />
<state width="1493" height="190" key="GridCell.Tab.1.left" timestamp="1589461533523">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="280" key="GridCell.Tab.1.left/0.0.1536.834@0.0.1536.834" timestamp="1588337790359" />
<state width="1493" height="280" key="GridCell.Tab.1.right" timestamp="1588337790359">
<state width="1493" height="190" key="GridCell.Tab.1.left/0.0.1536.834@0.0.1536.834" timestamp="1589461533523" />
<state width="1493" height="190" key="GridCell.Tab.1.right" timestamp="1589461533523">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="280" key="GridCell.Tab.1.right/0.0.1536.834@0.0.1536.834" timestamp="1588337790359" />
<state width="1493" height="505" key="GridCell.Tab.2.bottom" timestamp="1588311823686">
<state width="1493" height="190" key="GridCell.Tab.1.right/0.0.1536.834@0.0.1536.834" timestamp="1589461533523" />
<state width="1493" height="270" key="GridCell.Tab.2.bottom" timestamp="1589111158478">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="505" key="GridCell.Tab.2.bottom/0.0.1536.834@0.0.1536.834" timestamp="1588311823686" />
<state width="1493" height="505" key="GridCell.Tab.2.center" timestamp="1588311823686">
<state width="1493" height="270" key="GridCell.Tab.2.bottom/0.0.1536.834@0.0.1536.834" timestamp="1589111158478" />
<state width="1493" height="270" key="GridCell.Tab.2.center" timestamp="1589111158478">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="505" key="GridCell.Tab.2.center/0.0.1536.834@0.0.1536.834" timestamp="1588311823686" />
<state width="1493" height="505" key="GridCell.Tab.2.left" timestamp="1588311823686">
<state width="1493" height="270" key="GridCell.Tab.2.center/0.0.1536.834@0.0.1536.834" timestamp="1589111158478" />
<state width="1493" height="270" key="GridCell.Tab.2.left" timestamp="1589111158478">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="505" key="GridCell.Tab.2.left/0.0.1536.834@0.0.1536.834" timestamp="1588311823686" />
<state width="1493" height="505" key="GridCell.Tab.2.right" timestamp="1588311823686">
<state width="1493" height="270" key="GridCell.Tab.2.left/0.0.1536.834@0.0.1536.834" timestamp="1589111158478" />
<state width="1493" height="270" key="GridCell.Tab.2.right" timestamp="1589111158478">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="1493" height="505" key="GridCell.Tab.2.right/0.0.1536.834@0.0.1536.834" timestamp="1588311823686" />
<state width="1493" height="270" key="GridCell.Tab.2.right/0.0.1536.834@0.0.1536.834" timestamp="1589111158478" />
<state width="212" height="477" key="HiddenNamespacesPopup" timestamp="1589459548093">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state width="212" height="477" key="HiddenNamespacesPopup/0.0.1536.834@0.0.1536.834" timestamp="1589459548093" />
<state x="346" y="75" key="SettingsEditor" timestamp="1588080543604">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state x="346" y="75" key="SettingsEditor/0.0.1536.834@0.0.1536.834" timestamp="1588080543604" />
<state x="499" y="176" key="extract.method.dialog" timestamp="1588132834724">
<state x="499" y="176" key="extract.method.dialog" timestamp="1589461001246">
<screen x="0" y="0" width="1536" height="834" />
</state>
<state x="499" y="176" key="extract.method.dialog/0.0.1536.834@0.0.1536.834" timestamp="1588132834724" />
<state x="499" y="176" key="extract.method.dialog/0.0.1536.834@0.0.1536.834" timestamp="1589461001246" />
</component>
<component name="antWorkspaceConfiguration">
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />

View file

@ -21,13 +21,13 @@
</javaTypeResolver>
<!-- 指定javaBean生成的位置 -->
<javaModelGenerator targetPackage="com.coderman.api.system.pojo"
<javaModelGenerator targetPackage="com.coderman.api.biz.pojo"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- table指定每个表的生成策略 -->
<table tableName="tb_image" domainObjectName="ImageAttachment"></table>
<table tableName="biz_out_stock" domainObjectName="OutStock"></table>
</context>
</generatorConfiguration>
</generatorConfiguration>

View file

@ -0,0 +1,71 @@
package com.coderman.api.biz.controller;
import com.coderman.api.biz.pojo.Health;
import com.coderman.api.biz.service.HealthService;
import com.coderman.api.biz.vo.HealthVO;
import com.coderman.api.system.bean.ActiveUser;
import com.coderman.api.system.bean.ResponseBean;
import com.coderman.api.system.vo.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @Author zhangyukang
* @Date 2020/5/7 10:14
* @Version 1.0
**/
@Api(tags = "健康上报接口")
@RestController
@RequestMapping("/health")
public class HealthController {
@Autowired
private HealthService healthService;
/**
* 健康上报
* @param healthVO
* @return
*/
@ApiOperation(value = "健康上报",notes = "用户健康上报")
@RequiresPermissions({"health:report"})
@PostMapping("/report")
public ResponseBean report(@Validated @RequestBody HealthVO healthVO){
ActiveUser activeUser = (ActiveUser) SecurityUtils.getSubject().getPrincipal();
healthVO.setUserId(activeUser.getUser().getId());
healthService.report(healthVO);
return ResponseBean.success();
}
/**
* 签到记录
* @return
*/
@ApiOperation(value = "健康记录",notes = "用户健康上报历史记录")
@GetMapping("/history")
public ResponseBean history(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize") Integer pageSize){
ActiveUser activeUser= (ActiveUser) SecurityUtils.getSubject().getPrincipal();
Long id = activeUser.getUser().getId();
PageVO<Health> Health=healthService.history(id,pageNum,pageSize);
return ResponseBean.success(Health);
}
/**
* 今日是否已报备
* @return
*/
@ApiOperation(value = "是否报备",notes = "今日是否已报备")
@GetMapping("/isReport")
public ResponseBean isReport(){
ActiveUser activeUser = (ActiveUser) SecurityUtils.getSubject().getPrincipal();
Health report = healthService.isReport(activeUser.getUser().getId());
return ResponseBean.success(report);
}
}

View file

@ -6,6 +6,7 @@ import com.coderman.api.biz.vo.InStockVO;
import com.coderman.api.system.bean.ResponseBean;
import com.coderman.api.system.exception.BizException;
import com.coderman.api.system.vo.PageVO;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -80,8 +81,10 @@ public class InStockController {
@RequiresPermissions({"inStock:detail"})
@ApiOperation(value = "入库单明细")
@GetMapping("/detail/{id}")
public ResponseBean detail(@PathVariable Long id) {
InStockDetailVO detail = inStockService.detail(id);
public ResponseBean detail(@PathVariable Long id,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize",defaultValue = "3") Integer pageSize) {
InStockDetailVO detail = inStockService.detail(id,pageNum,pageSize);
return ResponseBean.success(detail);
}
/**

View file

@ -1,9 +1,10 @@
package com.coderman.api.biz.converter;
package com.coderman.api.biz.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.coderman.api.system.bean.ResponseBean;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@ -21,6 +22,7 @@ import java.util.List;
* @Date 2020/5/1 11:23
* @Version 1.0
**/
@Api(tags = "疫情API接口")
@RestController
public class NcovAPIController {

View file

@ -0,0 +1,47 @@
package com.coderman.api.biz.controller;
import com.coderman.api.biz.service.OutStockService;
import com.coderman.api.biz.vo.InStockVO;
import com.coderman.api.biz.vo.OutStockVO;
import com.coderman.api.system.bean.ResponseBean;
import com.coderman.api.system.vo.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 出库单
* @Author zhangyukang
* @Date 2020/5/10 14:23
* @Version 1.0
**/
@Api(tags = "物资出库接口")
@RestController
@RequestMapping("/outStock")
public class OutStockController {
@Autowired
private OutStockService outStockService;
/**
* 出库单列表
* @param pageNum
* @param pageSize
* @param outStockVO
* @return
*/
@ApiOperation(value = "出库单列表")
@GetMapping("/findOutStockList")
public ResponseBean findInStockList(
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize") Integer pageSize,
OutStockVO outStockVO) {
PageVO<OutStockVO> outStockList = outStockService.findOutStockList(pageNum, pageSize, outStockVO);
return ResponseBean.success(outStockList);
}
}

View file

@ -30,7 +30,6 @@ public class ProductController {
/**
* 全部物资列表
*
* @return
*/
@ApiOperation(value = "物资列表", notes = "物资列表,根据物资名模糊查询")
@ -45,10 +44,10 @@ public class ProductController {
}
/**
* 可入库物资列表
* 可入库物资(入库页面使用)
* @return
*/
@ApiOperation(value = "物资列表", notes = "物资列表,根据物资名模糊查询")
@ApiOperation(value = "可入库物资列表", notes = "物资列表,根据物资名模糊查询")
@GetMapping("/findProducts")
public ResponseBean findProducts(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize") Integer pageSize,
@ -62,7 +61,6 @@ public class ProductController {
/**
* 库存列表
*
* @return
*/
@ApiOperation(value = "库存列表", notes = "物资列表,根据物资名模糊查询")
@ -80,11 +78,10 @@ public class ProductController {
/**
* 所有库存
*
* 所有库存(饼图使用)
* @return
*/
@ApiOperation(value = "所有库存", notes = "物资所有库存信息")
@ApiOperation(value = "全部库存", notes = "物资所有库存信息,饼图使用")
@GetMapping("/findAllStocks")
public ResponseBean findAllStocks() {
List<ProductStockVO> list = productService.findAllStocks();

View file

@ -0,0 +1,47 @@
package com.coderman.api.biz.converter;
import com.coderman.api.biz.mapper.ConsumerMapper;
import com.coderman.api.biz.pojo.Consumer;
import com.coderman.api.biz.pojo.OutStock;
import com.coderman.api.biz.vo.OutStockVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zhangyukang
* @Date 2020/5/10 14:32
* @Version 1.0
**/
@Component
public class OutStockConverter {
@Autowired
private ConsumerMapper consumerMapper;
/**
* 转voList
* @param outStocks
* @return
*/
public List<OutStockVO> converterToVOList(List<OutStock> outStocks) {
List<OutStockVO> outStockVOS=new ArrayList<>();
if(!CollectionUtils.isEmpty(outStocks)){
for (OutStock outStock : outStocks) {
OutStockVO outStockVO = new OutStockVO();
BeanUtils.copyProperties(outStock,outStockVO);
Consumer consumer = consumerMapper.selectByPrimaryKey(outStock.getConsumerId());
if(consumer!=null){
outStockVO.setConsumerName(consumer.getName());
outStockVO.setPhone(consumer.getPhone());
}
outStockVOS.add(outStockVO);
}
}
return outStockVOS;
}
}

View file

@ -0,0 +1,24 @@
package com.coderman.api.biz.mapper;
import com.coderman.api.biz.pojo.Health;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* @Author zhangyukang
* @Date 2020/5/7 10:16
* @Version 1.0
**/
public interface HealthMapper extends Mapper<Health> {
/**
* 今日是否打卡
* @param id
* @return
*/
@Select("select * from biz_health where create_time < (CURDATE()+1) " +
" and create_time>CURDATE() and user_id=#{id}")
List<Health> isReport(@Param("id") Long id);
}

View file

@ -0,0 +1,12 @@
package com.coderman.api.biz.mapper;
import com.coderman.api.biz.pojo.OutStock;
import tk.mybatis.mapper.common.Mapper;
/**
* @Author zhangyukang
* @Date 2020/3/19 09:53
* @Version 1.0
**/
public interface OutStockMapper extends Mapper<OutStock> {
}

View file

@ -19,10 +19,10 @@ public interface ProductStockMapper extends Mapper<ProductStock> {
* @param productVO
* @return
*/
List<ProductStockVO> selectProductStockList(ProductVO productVO);
List<ProductStockVO> findProductStocks(ProductVO productVO);
/**
* 所有库存信息
* 库存信息(饼图使用)
* @return
*/
List<ProductStockVO> findAllStocks();

View file

@ -0,0 +1,32 @@
package com.coderman.api.biz.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@Table(name = "biz_health")
public class Health {
@Id
private Long id;
private String address;
private Long userId;
private Integer situation;
private Integer touch;
private Integer passby;
private Integer reception;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}

View file

@ -0,0 +1,34 @@
package com.coderman.api.biz.pojo;
import lombok.Data;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@Table(name = "biz_out_stock")
public class OutStock {
@Id
private Long id;
private String outNum;
private Integer type;
private String operator;
private Date createTime;
private Integer productNumber;
private Long consumerId;
private String remark;
private Integer status;
private Integer priority;
}

View file

@ -0,0 +1,32 @@
package com.coderman.api.biz.service;
import com.coderman.api.biz.pojo.Health;
import com.coderman.api.biz.vo.HealthVO;
import com.coderman.api.system.vo.PageVO;
/**
* @Author zhangyukang
* @Date 2020/5/7 10:20
* @Version 1.0
**/
public interface HealthService {
/**
* 健康上报
* @param healthVO
*/
void report(HealthVO healthVO);
/**
* 今日是否已经报备
* @param id
* @return
*/
Health isReport(Long id);
/**
* 签到记录
* @return
*/
PageVO<Health> history(Long id,Integer pageNum,Integer pageSize);
}

View file

@ -33,7 +33,7 @@ public interface InStockService {
* @param id
* @return
*/
InStockDetailVO detail(Long id);
InStockDetailVO detail(Long id,int pageNo,int pageSize);
/**
* 更新入库单

View file

@ -0,0 +1,21 @@
package com.coderman.api.biz.service;
import com.coderman.api.biz.vo.OutStockVO;
import com.coderman.api.system.vo.PageVO;
/**
* @Author zhangyukang
* @Date 2020/5/10 14:26
* @Version 1.0
**/
public interface OutStockService {
/**
* 出库单列表
* @param pageNum
* @param pageSize
* @param outStockVO
* @return
*/
PageVO<OutStockVO> findOutStockList(Integer pageNum, Integer pageSize, OutStockVO outStockVO);
}

View file

@ -0,0 +1,76 @@
package com.coderman.api.biz.service.imp;
import com.coderman.api.biz.mapper.HealthMapper;
import com.coderman.api.biz.pojo.Health;
import com.coderman.api.biz.service.HealthService;
import com.coderman.api.biz.vo.HealthVO;
import com.coderman.api.system.exception.BizException;
import com.coderman.api.system.vo.PageVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.Date;
import java.util.List;
/**
* @Author zhangyukang
* @Date 2020/5/7 10:21
* @Version 1.0
**/
@Service
public class HealthServiceImpl implements HealthService {
@Autowired
private HealthMapper healthMapper;
/**
* 健康上报
* @param healthVO
*/
@Override
public void report(HealthVO healthVO) {
Health health = new Health();
BeanUtils.copyProperties(healthVO,health);
health.setCreateTime(new Date());
Health report = isReport(healthVO.getUserId());
if(report!=null){
throw new BizException("今日您已经打卡");
}else {
healthMapper.insert(health);
}
}
/**
* 今日是否已报备
* @param id
* @return
*/
@Override
public Health isReport(Long id) {
List<Health> health=healthMapper.isReport(id);
if(health.size()>0){
return health.get(0);
}
return null;
}
/**
* 签到历史记录
* @return
*/
@Override
public PageVO<Health> history(Long id,Integer pageNum,Integer pageSize) {
Example o = new Example(Health.class);
PageHelper.startPage(pageNum,pageSize);
o.createCriteria().andEqualTo("userId",id);
List<Health> health = healthMapper.selectByExample(o);
PageInfo<Health> pageInfo=new PageInfo<>(health);
PageVO<Health> pageVO=new PageVO<>(pageInfo.getTotal(),pageInfo.getList());
return pageVO;
}
}

View file

@ -81,6 +81,12 @@ public class InStockServiceImpl implements InStockService {
if(inStockVO.getStatus()!=null){
criteria.andEqualTo("status",inStockVO.getStatus());
}
if(inStockVO.getStartTime()!=null){
criteria.andGreaterThanOrEqualTo("createTime",inStockVO.getStartTime());
}
if(inStockVO.getEndTime()!=null){
criteria.andLessThanOrEqualTo("createTime",inStockVO.getEndTime());
}
List<InStock> inStocks = inStockMapper.selectByExample(o);
List<InStockVO> inStockVOS=inStockConverter.converterToVOList(inStocks);
PageInfo<InStock> inStockPageInfo = new PageInfo<>(inStocks);
@ -93,7 +99,7 @@ public class InStockServiceImpl implements InStockService {
* @return
*/
@Override
public InStockDetailVO detail(Long id) {
public InStockDetailVO detail(Long id,int pageNum,int pageSize) {
InStockDetailVO inStockDetailVO = new InStockDetailVO();
InStock inStock = inStockMapper.selectByPrimaryKey(id);
if(inStock==null){
@ -110,8 +116,10 @@ public class InStockServiceImpl implements InStockService {
String inNum = inStock.getInNum();//入库单号
//查询该单所有的物资
Example o = new Example(InStockInfo.class);
PageHelper.startPage(pageNum,pageSize);
o.createCriteria().andEqualTo("inNum",inNum);
List<InStockInfo> inStockInfoList = inStockInfoMapper.selectByExample(o);
inStockDetailVO.setTotal(new PageInfo<>(inStockInfoList).getTotal());
if(!CollectionUtils.isEmpty(inStockInfoList)){
for (InStockInfo inStockInfo : inStockInfoList) {
String pNum = inStockInfo.getPNum();

View file

@ -0,0 +1,62 @@
package com.coderman.api.biz.service.imp;
import com.coderman.api.biz.converter.ConsumerConverter;
import com.coderman.api.biz.converter.OutStockConverter;
import com.coderman.api.biz.mapper.OutStockMapper;
import com.coderman.api.biz.pojo.InStock;
import com.coderman.api.biz.pojo.OutStock;
import com.coderman.api.biz.service.OutStockService;
import com.coderman.api.biz.vo.InStockVO;
import com.coderman.api.biz.vo.OutStockVO;
import com.coderman.api.system.vo.PageVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* @Author zhangyukang
* @Date 2020/5/10 14:26
* @Version 1.0
**/
@Service
public class OutStockServiceImpl implements OutStockService {
@Autowired
private OutStockMapper outStockMapper;
@Autowired
private OutStockConverter outStockConverter;
/**
* 入库单列表
* @param pageNum
* @param pageSize
* @param outStockVO
* @return
*/
@Override
public PageVO<OutStockVO> findOutStockList(Integer pageNum, Integer pageSize, OutStockVO outStockVO) {
PageHelper.startPage(pageNum,pageSize);
Example o = new Example(OutStock.class);
Example.Criteria criteria = o.createCriteria();
o.setOrderByClause("create_time desc");
if(outStockVO.getOutNum()!=null&&!"".equals(outStockVO.getOutNum())){
criteria.andLike("outNum","%"+outStockVO.getOutNum()+"%");
}
if(outStockVO.getType()!=null){
criteria.andEqualTo("type",outStockVO.getType());
}
if(outStockVO.getStatus()!=null){
criteria.andEqualTo("status",outStockVO.getStatus());
}
List<OutStock> outStocks = outStockMapper.selectByExample(o);
List<OutStockVO> outStockVOS=outStockConverter.converterToVOList(outStocks);
PageInfo<OutStock> outStockPageInfo = new PageInfo<>(outStocks);
return new PageVO<>(outStockPageInfo.getTotal(),outStockVOS);
}
}

View file

@ -58,8 +58,9 @@ public class ProductServiceImpl implements ProductService {
List<Product> products;
Example o = new Example(Product.class);
Example.Criteria criteria = o.createCriteria();
if (productVO.getStatus() != null) {
criteria.andEqualTo("status", productVO.getStatus());
}
if(productVO.getThreeCategoryId()!=null){
criteria.andEqualTo("oneCategoryId",productVO.getOneCategoryId())
.andEqualTo("twoCategoryId",productVO.getTwoCategoryId())
@ -88,9 +89,7 @@ public class ProductServiceImpl implements ProductService {
if (productVO.getName() != null && !"".equals(productVO.getName())) {
criteria.andLike("name", "%" + productVO.getName() + "%");
}
if (productVO.getStatus() != null) {
criteria.andEqualTo("status", productVO.getStatus());
}
products = productMapper.selectByExample(o);
List<ProductVO> categoryVOS=ProductConverter.converterToVOList(products);
PageInfo<Product> info = new PageInfo<>(products);
@ -177,7 +176,7 @@ public class ProductServiceImpl implements ProductService {
@Override
public PageVO<ProductStockVO> findProductStocks(Integer pageNum, Integer pageSize, ProductVO productVO) {
PageHelper.startPage(pageNum, pageSize);
List<ProductStockVO> productStockVOList=productStockMapper.selectProductStockList(productVO);
List<ProductStockVO> productStockVOList=productStockMapper.findProductStocks(productVO);
PageInfo<ProductStockVO> info = new PageInfo<>(productStockVOList);
return new PageVO<>(info.getTotal(), productStockVOList);
}

View file

@ -44,6 +44,12 @@ public class SupplierServiceImpl implements SupplierService {
if (supplierVO.getName() != null && !"".equals(supplierVO.getName())) {
criteria.andLike("name", "%" + supplierVO.getName() + "%");
}
if (supplierVO.getContact() != null && !"".equals(supplierVO.getContact())) {
criteria.andLike("contact", "%" + supplierVO.getContact() + "%");
}
if (supplierVO.getAddress() != null && !"".equals(supplierVO.getAddress())) {
criteria.andLike("address", "%" + supplierVO.getAddress() + "%");
}
List<Supplier> suppliers = supplierMapper.selectByExample(o);
List<SupplierVO> categoryVOS=SupplierConverter.converterToVOList(suppliers);
PageInfo<Supplier> info = new PageInfo<>(suppliers);

View file

@ -1,7 +1,10 @@
package com.coderman.api.biz.test;
import com.coderman.api.biz.mapper.ProductCategoryMapper;
import com.coderman.api.biz.mapper.ProductStockMapper;
import com.coderman.api.biz.pojo.ProductCategory;
import com.coderman.api.biz.vo.ProductStockVO;
import com.coderman.api.biz.vo.ProductVO;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,9 +25,20 @@ public class ProductCategoryMapperTest {
@Autowired
private ProductCategoryMapper productCategoryMapper;
@Autowired
private ProductStockMapper productStockMapper;
@Test
public void getProductCategoryMapper(){
List<ProductCategory> productCategories = productCategoryMapper.selectAll();
System.out.println(productCategories);
}
@Test
public void test2(){
ProductVO productVO = new ProductVO();
productVO.setThreeCategoryId(3L);
List<ProductStockVO> productStocks = productStockMapper.findProductStocks(productVO);
System.out.println(productStocks);
}
}

View file

@ -0,0 +1,37 @@
package com.coderman.api.biz.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @Author zhangyukang
* @Date 2020/5/7 10:19
* @Version 1.0
**/
@Data
public class HealthVO {
private Long id;
@NotBlank(message="地址不能为空")
private String address;
private Long userId;
@NotNull(message = "当前情况不能为空")
private Integer situation;
@NotNull(message = "是否接触不能为空")
private Integer touch;
@NotNull(message = "是否路过不能为空")
private Integer passby;
@NotNull(message = "是否招待不能为空")
private Integer reception;
private Date createTime;
}

View file

@ -1,6 +1,5 @@
package com.coderman.api.biz.vo;
import com.coderman.api.biz.pojo.Product;
import lombok.Data;
import java.util.ArrayList;
@ -24,6 +23,8 @@ public class InStockDetailVO {
private SupplierVO supplierVO;
private long total;/** 总数**/
private List<InStockItemVO> itemVOS=new ArrayList<>();
}

View file

@ -2,6 +2,7 @@ package com.coderman.api.biz.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -48,4 +49,11 @@ public class InStockVO {
private Integer status;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}

View file

@ -0,0 +1,40 @@
package com.coderman.api.biz.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @Author zhangyukang
* @Date 2020/5/10 14:24
* @Version 1.0
**/
@Data
public class OutStockVO {
private Long id;
private String outNum;
private Integer type;
private String operator;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
private Integer productNumber;
private Long consumerId;
private String remark;
private Integer status;
private String consumerName;
private String phone;
private Integer priority;
}

View file

@ -21,4 +21,6 @@ public class ProductStockVO {
private String remark;
private Long stock;
private String imageUrl;
}

View file

@ -31,7 +31,7 @@ public class SupplierVO {
@NotNull(message = "排序号不能为空")
private Integer sort;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")

View file

@ -51,4 +51,4 @@ public class SSLConfig {
connector.setRedirectPort(httpsPort);
return connector;
}
}
}

View file

@ -60,7 +60,8 @@ public class FileUploadController {
String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
if(!fileSuffix.equalsIgnoreCase(".gif")
&&!fileSuffix.equalsIgnoreCase(".jpg")
&& !fileSuffix.equalsIgnoreCase(".png")){
&& !fileSuffix.equalsIgnoreCase(".png")
&& !fileSuffix.equalsIgnoreCase(".webp")){
log.info("文件格式不正确");
return ResponseBean.error("文件格式不正确");
}
@ -129,8 +130,8 @@ public class FileUploadController {
@DeleteMapping("/delete/{id}")
public ResponseBean delete(@PathVariable Long id){
ImageAttachment imageAttachment = imageAttachmentMapper.selectByPrimaryKey(id);
commonFileUtil.deleteFile(imageAttachment.getPath());
imageAttachmentMapper.deleteByPrimaryKey(id);
commonFileUtil.deleteFile(imageAttachment.getPath());
return ResponseBean.success();
}

View file

@ -5,6 +5,7 @@ import com.coderman.api.system.bean.ActiveUser;
import com.coderman.api.system.bean.ResponseBean;
import com.coderman.api.system.config.JWTToken;
import com.coderman.api.system.converter.RoleConverter;
import com.coderman.api.system.exception.BizException;
import com.coderman.api.system.pojo.Department;
import com.coderman.api.system.pojo.LoginLog;
import com.coderman.api.system.pojo.Role;
@ -65,27 +66,6 @@ public class UserController {
@Autowired
private DepartmentService departmentService;
/**
* 创建登入日志
*
* @param
* @return
*/
public static LoginLog createLoginLog(HttpServletRequest request) {
ActiveUser activeUser = (ActiveUser) SecurityUtils.getSubject().getPrincipal();
LoginLog loginLog = new LoginLog();
loginLog.setUsername(activeUser.getUser().getUsername());
loginLog.setIp(IPUtil.getIpAddr(request));
loginLog.setLocation(AddressUtil.getCityInfo(IPUtil.getIpAddr(request)));
// 获取客户端操作系统
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
Browser browser = userAgent.getBrowser();
OperatingSystem os = userAgent.getOperatingSystem();
loginLog.setUserSystem(os.getName());
loginLog.setUserBrowser(browser.getName());
loginLog.setLoginTime(new Date());
return loginLog;
}
/**
* 用户登入
@ -99,27 +79,10 @@ public class UserController {
public ResponseBean login(@NotBlank(message = "用户名必填") String username,
@NotBlank(message = "密码必填") String password,
HttpServletRequest request) {
Object token;
User user = userService.findUserByName(username);
if (user != null) {
String salt = user.getSalt();
//秘钥为盐
String target = MD5Utils.md5Encryption(password, salt);
//生成Token
token = JWTUtils.sign(username, target);
JWTToken jwtToken = new JWTToken((String) token);
try {
SecurityUtils.getSubject().login(jwtToken);
} catch (AuthenticationException e) {
return ResponseBean.error(e.getMessage());
}
} else {
return ResponseBean.error("用户名不存在");
}
//登入日志
LoginLog loginLog = createLoginLog(request);
loginLogService.add(loginLog);
return ResponseBean.success(token);
//用户登入
String token=userService.login(username,password);
loginLogService.add(request);
return ResponseBean.success((Object) token);
}

View file

@ -17,10 +17,8 @@ public enum ErrorCodeEnum implements BaseCodeInterface {
NOT_FOUND(404, "未找到该资源!"),
INTERNAL_SERVER_ERROR(500, "服务器内部错误!"),
SERVER_BUSY(503,"服务器正忙,请稍后再试!"),
//系统异常2000**
DATA_LOAD_ERROR(20001,"数据加载异常"),
//用户相关10000**
PASSWORD_OR_USERNAME_ERROR(10001, "用户名或密码错误!"),
USER_ACCOUNT_NOT_FOUND(10001, "账号不存在!"),
DELETE_ERROR(10002,"删除失败"),
UPDATE_ERROR(10003,"更新失败"),
ADD_ERROR(10004,"添加失败"),

View file

@ -5,6 +5,7 @@ import com.coderman.api.system.vo.LoginLogVO;
import com.coderman.api.system.vo.PageVO;
import com.coderman.api.system.vo.UserVO;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@ -17,9 +18,9 @@ public interface LoginLogService {
/**
* 添加登入日志
* @param loginLog
* @param request
*/
void add(LoginLog loginLog);
void add(HttpServletRequest request);
/**

View file

@ -104,4 +104,11 @@ public interface UserService {
*/
List<User> findAll();
/**
* 用户登入
* @param username
* @param password
* @return
*/
String login(String username, String password);
}

View file

@ -70,6 +70,10 @@ public class DepartmentServiceImpl implements DepartmentService {
BeanUtils.copyProperties(department, d);
User user = userMapper.selectByPrimaryKey(d.getMgrId());
d.setMgrName(user.getUsername());
Example o1 = new Example(User.class);
o1.createCriteria().andEqualTo("departmentId",department.getId())
.andNotEqualTo("type",0);
d.setTotal(userMapper.selectCountByExample(o1));
departmentVOS.add(d);
}
}
@ -169,6 +173,10 @@ public class DepartmentServiceImpl implements DepartmentService {
for (Department department : departments) {
DepartmentVO d = new DepartmentVO();
BeanUtils.copyProperties(department, d);
Example o = new Example(User.class);
o.createCriteria().andEqualTo("departmentId",department.getId())
.andNotEqualTo("type",0);
d.setTotal(userMapper.selectCountByExample(o));
departmentVOS.add(d);
}
}

View file

@ -1,20 +1,29 @@
package com.coderman.api.system.service.impl;
import com.coderman.api.system.bean.ActiveUser;
import com.coderman.api.system.mapper.LoginLogMapper;
import com.coderman.api.system.pojo.LoginLog;
import com.coderman.api.system.service.LoginLogService;
import com.coderman.api.system.util.AddressUtil;
import com.coderman.api.system.util.IPUtil;
import com.coderman.api.system.vo.LoginLogVO;
import com.coderman.api.system.vo.PageVO;
import com.coderman.api.system.vo.UserVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.OperatingSystem;
import eu.bitwalker.useragentutils.UserAgent;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -87,11 +96,32 @@ public class LoginLogServiceImpl implements LoginLogService {
/**
* 插入登入日志
* @param loginLog
* @param request
*/
@Override
public void add(LoginLog loginLog) {
loginLogMapper.insert(loginLog);
public void add(HttpServletRequest request) {
loginLogMapper.insert(createLoginLog(request));
}
/**
* 创建登入日志
* @param
* @return
*/
public static LoginLog createLoginLog(HttpServletRequest request) {
ActiveUser activeUser = (ActiveUser) SecurityUtils.getSubject().getPrincipal();
LoginLog loginLog = new LoginLog();
loginLog.setUsername(activeUser.getUser().getUsername());
loginLog.setIp(IPUtil.getIpAddr(request));
loginLog.setLocation(AddressUtil.getCityInfo(IPUtil.getIpAddr(request)));
// 获取客户端操作系统
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
Browser browser = userAgent.getBrowser();
OperatingSystem os = userAgent.getOperatingSystem();
loginLog.setUserSystem(os.getName());
loginLog.setUserBrowser(browser.getName());
loginLog.setLoginTime(new Date());
return loginLog;
}
/**

View file

@ -1,11 +1,16 @@
package com.coderman.api.system.service.impl;
import com.coderman.api.system.bean.ActiveUser;
import com.coderman.api.system.bean.ResponseBean;
import com.coderman.api.system.config.JWTToken;
import com.coderman.api.system.converter.MenuConverter;
import com.coderman.api.system.converter.UserConverter;
import com.coderman.api.system.enums.ErrorCodeEnum;
import com.coderman.api.system.exception.BizException;
import com.coderman.api.system.mapper.*;
import com.coderman.api.system.pojo.*;
import com.coderman.api.system.service.UserService;
import com.coderman.api.system.util.JWTUtils;
import com.coderman.api.system.util.MD5Utils;
import com.coderman.api.system.util.MenuTreeBuilder;
import com.coderman.api.system.vo.MenuNodeVO;
@ -15,6 +20,7 @@ import com.coderman.api.system.vo.UserVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -312,4 +318,32 @@ public class UserServiceImpl implements UserService {
public List<User> findAll() {
return userMapper.selectAll();
}
/**
* 用户登入
* @param username
* @param password
* @return
*/
@Override
public String login(String username, String password) {
String token;
User user = findUserByName(username);
if (user != null) {
String salt = user.getSalt();
//秘钥为盐
String target = MD5Utils.md5Encryption(password, salt);
//生成Token
token = JWTUtils.sign(username, target);
JWTToken jwtToken = new JWTToken(token);
try {
SecurityUtils.getSubject().login(jwtToken);
} catch (AuthenticationException e) {
throw new BizException(e.getMessage());
}
} else {
throw new BizException(ErrorCodeEnum.USER_ACCOUNT_NOT_FOUND);
}
return token;
}
}

View file

@ -38,4 +38,7 @@ public class DepartmentVO {
/** 系主任的名字*/
private String mgrName;
/** 部门内人数**/
private int total;
}

View file

@ -3,7 +3,7 @@
fdfs.connect-timeout=600
fdfs.so-timeout=1500
#tracker地址
fdfs.trackerList=39.99.182.103:22122
fdfs.trackerList=39.99.182.103:22122
#缩略图配置
fdfs.thumbImage.height=150
fdfs.thumbImage.width=150
@ -11,6 +11,8 @@ spring.jmx.enabled=false
#通过nginx 访问地址
fdfs.resHost=39.99.182.103
fdfs.storagePort=8888
fdfs.pool.maxTotal=500
fdfs.pool.maxWaitMillis=1000
#获取连接池最大数量
fdfs.pool.max-total=200
#####SSL#############
@ -20,4 +22,4 @@ server.port=8081
#server.ssl.key-store=classpath:3828034_www.zykhome.club.pfx
#server.ssl.key-store-password=stpnsPTW
#server.ssl.keyStoreType=PKCS12
#server.ssl.enabled=true
#server.ssl.enabled=true

View file

@ -29,4 +29,6 @@ spring:
mybatis:
mapper-locations: classpath:mapper/*/*Mapper.xml
type-aliases-package: com.coderman.api.*.pojo
configuration:
map-underscore-to-camel-case: true

View file

@ -2,15 +2,27 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.coderman.api.biz.mapper.ProductStockMapper">
<!--库存列表-->
<select id="selectProductStockList" parameterType="com.coderman.api.biz.vo.ProductVO"
<select id="findProductStocks" parameterType="com.coderman.api.biz.vo.ProductVO"
resultType="com.coderman.api.biz.vo.ProductStockVO">
SELECT s.id,s.p_num,s.stock ,p.name,
p.model,p.unit
p.model,p.unit,p.image_url
FROM biz_product_stock s
, biz_product p WHERE s.`p_num`=p.`p_num`
<if test="name!=null and name!=''">
and p.name like concat('%',#{name}, '%')
</if>
<choose>
<when test="threeCategoryId != null and threeCategoryId !=''">
and p.three_category_id =#{threeCategoryId}
</when>
<when test="twoCategoryId != null and twoCategoryId !=''">
and p.two_category_id =#{twoCategoryId}
</when>
<when test="oneCategoryId != null and oneCategoryId !=''">
and p.one_category_id =#{oneCategoryId}
</when>
</choose>
</select>
<!--所有库存信息-->
<select id="findAllStocks"
@ -21,4 +33,4 @@
, biz_product p WHERE s.`p_num`=p.`p_num`
</select>
</mapper>
</mapper>

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,25 @@
#FastDfs的配置 ====================================
#读取inputsream阻塞时间
fdfs.connect-timeout=600
fdfs.so-timeout=1500
#tracker地址
fdfs.trackerList=39.99.182.103:22122
#缩略图配置
fdfs.thumbImage.height=150
fdfs.thumbImage.width=150
spring.jmx.enabled=false
#通过nginx 访问地址
fdfs.resHost=39.99.182.103
fdfs.storagePort=8888
fdfs.pool.maxTotal=500
fdfs.pool.maxWaitMillis=1000
#获取连接池最大数量
fdfs.pool.max-total=200
#####SSL#############
server.port=8081
#http.port=8888
#server.ssl.key-store=classpath:3828034_www.zykhome.club.pfx
#server.ssl.key-store-password=stpnsPTW
#server.ssl.keyStoreType=PKCS12
#server.ssl.enabled=true

View file

@ -0,0 +1,34 @@
spring:
datasource:
username: root
password: zhangyukang
url: jdbc:mysql://127.0.0.1:3306/xinguan?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=CTT
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
max-active: 20
# 配置获取连接等待超时的时间
max-wait: 60000
stat-view-servlet:
enabled: true
login-username: zhangyukang
login-password: zhangyukang
allow:
deny:
url-pattern: /druid/*
servlet:
multipart:
enabled: true #是否启用http上传处理
max-request-size: 100MB #最大请求文件的大小
max-file-size: 20MB #设置单个文件最大长度
file-size-threshold: 20MB #当文件达到多少时进行磁盘写入
mybatis:
mapper-locations: classpath:mapper/*/*Mapper.xml
type-aliases-package: com.coderman.api.*.pojo
configuration:
map-underscore-to-camel-case: true

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more