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