From 6f2e09fa870858d5371ece3a80674bae95288b9b Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期三, 30 十月 2024 11:12:50 +0800
Subject: [PATCH] 新增领用逻辑
---
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatService.java | 3 +
hazmat-admin/src/test/java/com/gkhy/hazmat/admin/HashTest.java | 12 ++++++
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java | 42 ++++++++++++++++-----
hazmat-admin/src/test/java/com/gkhy/hazmat/admin/UuidTest.java | 13 ++++++
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/app/AppHazmatController.java | 5 +-
hazmat-admin/src/main/resources/application.yml | 2
6 files changed, 62 insertions(+), 15 deletions(-)
diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/app/AppHazmatController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/app/AppHazmatController.java
index 2a53e23..d7000a3 100644
--- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/app/AppHazmatController.java
+++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/app/AppHazmatController.java
@@ -35,7 +35,6 @@
})
@GetMapping("/getHazmatByCode")
public CommonResult getHazmatByCode(@RequestParam(required = true) String code){
- System.out.println("code===="+code);
return CommonResult.success(hazmatService.selectHazmatByCode(code));
}
@@ -43,8 +42,8 @@
@RepeatSubmit
@ApiOperation(value = "领用")
@PostMapping(value = { "/hazmatUse/{hazmatId}" })
- public CommonResult hazmatUse(@PathVariable(value = "hazmatId", required = true) Long hazmatId){
- hazmatService.hazmatUse(hazmatId);
+ public CommonResult hazmatUse(@PathVariable(value = "hazmatId", required = true) Long hazmatId,@RequestParam(defaultValue = "0",required = true) Integer used){
+ hazmatService.hazmatUse(hazmatId,used);
return CommonResult.success();
}
diff --git a/hazmat-admin/src/main/resources/application.yml b/hazmat-admin/src/main/resources/application.yml
index 151a11a..93d1491 100644
--- a/hazmat-admin/src/main/resources/application.yml
+++ b/hazmat-admin/src/main/resources/application.yml
@@ -2,7 +2,7 @@
application:
name: hazmat_manage
profiles:
- active: prod
+ active: dev
servlet:
multipart:
enabled: true
diff --git a/hazmat-admin/src/test/java/com/gkhy/hazmat/admin/HashTest.java b/hazmat-admin/src/test/java/com/gkhy/hazmat/admin/HashTest.java
new file mode 100644
index 0000000..0c0b04f
--- /dev/null
+++ b/hazmat-admin/src/test/java/com/gkhy/hazmat/admin/HashTest.java
@@ -0,0 +1,12 @@
+package com.gkhy.hazmat.admin;
+
+import cn.hutool.crypto.SecureUtil;
+
+public class HashTest {
+ public static void main(String[] args) {
+ String sha256 = SecureUtil.sha256("6983661@Ca");
+ System.out.println(sha256);
+ String sha2561 = SecureUtil.sha256(sha256 + "c77bba6aa520787bb819db6cb22c960060ae923b95bea44b7a869f007fa1cb85");
+ System.out.println(sha2561);
+ }
+}
diff --git a/hazmat-admin/src/test/java/com/gkhy/hazmat/admin/UuidTest.java b/hazmat-admin/src/test/java/com/gkhy/hazmat/admin/UuidTest.java
new file mode 100644
index 0000000..425ecdf
--- /dev/null
+++ b/hazmat-admin/src/test/java/com/gkhy/hazmat/admin/UuidTest.java
@@ -0,0 +1,13 @@
+package com.gkhy.hazmat.admin;
+
+
+import cn.hutool.core.lang.generator.UUIDGenerator;
+
+public class UuidTest {
+ public static void main(String[] args) {
+ UUIDGenerator uuidGenerator = new UUIDGenerator();
+ for(int i=0;i<130;i++){
+ System.out.println(uuidGenerator.next());
+ }
+ }
+}
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatService.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatService.java
index 501f364..c20fc95 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatService.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatService.java
@@ -56,9 +56,10 @@
/**
* 领用
* @param hazmatId
+ * @param used //是否用尽 0否 1是
* @return
*/
- void hazmatUse(Long hazmatId);
+ void hazmatUse(Long hazmatId,Integer used);
/**
* 归还
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java
index acad8a2..ef38d6e 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java
@@ -142,7 +142,7 @@
@Override
@Transactional(rollbackFor = RuntimeException.class)
- public void hazmatUse(Long hazmatId) {
+ public void hazmatUse(Long hazmatId, Integer used) {
SysUser currentUser=SecurityUtils.getLoginUser().getUser();
checkUserAllowed(null,currentUser);
//设置分表id
@@ -154,18 +154,32 @@
checkUserAllowed(hazmat,currentUser);
//获取变动前仓库库存
int count = baseMapper.selectHazmatCountOfWarehouse(hazmat.getWarehouseId(), hazmat.getBasicId(), currentUser.getCompanyId());
- hazmat.setState(HazmatStatusEnum.USING.getCode());
- hazmat.setUpdateBy(currentUser.getUsername());
- updateById(hazmat);
+
//生成流向
+ BigDecimal remaining=hazmat.getRemaining();
HzHazmatFlow hazmatFlow=new HzHazmatFlow();
hazmatFlow.setHazmatId(hazmatId);
hazmatFlow.setBasicId(hazmat.getBasicId());
hazmatFlow.setState(OperateStatusEnum.USING.getCode());
hazmatFlow.setCompanyId(currentUser.getCompanyId());
- hazmatFlow.setNum(hazmat.getRemaining().multiply(BigDecimal.valueOf(-1)));
+ hazmatFlow.setNum(remaining.multiply(BigDecimal.valueOf(-1)));
hazmatFlow.setCreateId(currentUser.getId());
hazmatFlowMapper.insert(hazmatFlow);
+ hazmat.setState(HazmatStatusEnum.USING.getCode());
+ if(used==1){//用尽流向
+ hazmatFlow=new HzHazmatFlow();
+ hazmatFlow.setHazmatId(hazmatId);
+ hazmatFlow.setBasicId(hazmat.getBasicId());
+ hazmatFlow.setState(OperateStatusEnum.USE_UP.getCode());
+ hazmatFlow.setCompanyId(currentUser.getCompanyId());
+ hazmatFlow.setNum(remaining.multiply(BigDecimal.valueOf(-1)));
+ hazmatFlow.setCreateId(currentUser.getId());
+ hazmatFlowMapper.insert(hazmatFlow);
+ hazmat.setState(HazmatStatusEnum.USED.getCode());
+ hazmat.setRemaining(BigDecimal.valueOf(0));
+ }
+ hazmat.setUpdateBy(currentUser.getUsername());
+ updateById(hazmat);//更新试剂状态
//生成库存变动记录
//新增危化品变动记录
HzWarehouseRecord warehouseRecord = new HzWarehouseRecord()
@@ -191,11 +205,18 @@
//设置分表id
IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
HzHazmat dbhazmat=getById(hazmat.getId());
- if(!dbhazmat.getState().equals(HazmatStatusEnum.USING.getCode())){
- throw new ApiException("危化品非使用中状态,不能进行归还操作");
+ BigDecimal remaining=dbhazmat.getRemaining();
+ if(!dbhazmat.getState().equals(HazmatStatusEnum.USING.getCode())&&!dbhazmat.getState().equals(HazmatStatusEnum.USED.getCode())){
+ throw new ApiException("危化品非使用中或者用尽状态,不能进行归还操作");
}
- if(dbhazmat.getRemaining().compareTo(hazmat.getRemaining())<0){
+ if(dbhazmat.getState().equals(HazmatStatusEnum.USING.getCode())&&remaining.compareTo(hazmat.getRemaining())<0){
throw new ApiException("退还的容量不能高于库存容量");
+ }
+ if(dbhazmat.getState().equals(HazmatStatusEnum.USED.getCode())){
+ HzHazmatBasic hazmatBasic=hazmatBasicMapper.selectById(dbhazmat.getBasicId());
+ if(hazmatBasic.getMetering().compareTo(hazmat.getRemaining())<0) {
+ throw new ApiException("退还的容量不能高于最小包装数量");
+ }
}
checkUserAllowed(dbhazmat,currentUser);
//获取变动前仓库库存
@@ -238,8 +259,9 @@
if(!hazmat.getState().equals(HazmatStatusEnum.USING.getCode())){
throw new ApiException("危化品非使用中状态,不能进行用完登记操作");
}
-
+ BigDecimal remaining=hazmat.getRemaining();
hazmat.setState(HazmatStatusEnum.USED.getCode());
+ hazmat.setRemaining(BigDecimal.valueOf(0));
hazmat.setUpdateBy(currentUser.getUsername());
updateById(hazmat);
//生成流向
@@ -248,7 +270,7 @@
hazmatFlow.setBasicId(hazmat.getBasicId());
hazmatFlow.setState(OperateStatusEnum.USE_UP.getCode());
hazmatFlow.setCompanyId(currentUser.getCompanyId());
- hazmatFlow.setNum(hazmat.getRemaining().multiply(BigDecimal.valueOf(-1)));
+ hazmatFlow.setNum(remaining.multiply(BigDecimal.valueOf(-1)));
hazmatFlow.setCreateId(currentUser.getId());
hazmatFlowMapper.insert(hazmatFlow);
IdTableNameHandler.removeCurrentId();
--
Gitblit v1.9.2