kongzy
2024-10-30 6f2e09fa870858d5371ece3a80674bae95288b9b
新增领用逻辑
已修改4个文件
已添加2个文件
77 ■■■■ 文件已修改
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/app/AppHazmatController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/test/java/com/gkhy/hazmat/admin/HashTest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/test/java/com/gkhy/hazmat/admin/UuidTest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
hazmat-admin/src/main/resources/application.yml
@@ -2,7 +2,7 @@
  application:
    name: hazmat_manage
  profiles:
    active: prod
    active: dev
  servlet:
    multipart:
      enabled: true
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);
    }
}
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());
        }
    }
}
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);
    /**
     * 归还
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();