xiejun
2023-10-16 a85cb705274d8fbd9f5fba86ff1c39c13ac66de0
1.用户加控制启用,停用状态
2.根据流水依赖获取最大流水值
已修改8个文件
103 ■■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java
@@ -88,6 +88,10 @@
     * 用户平台
     */
    USER_TYPE("user_type"),
    /***
     * 用户状态
     */
    USER_STATUS("user_status"),
    ;
    final String name;
Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
@@ -115,4 +115,8 @@
     */
    private Long strategyUpdateStatus;
    /***
     * 账号是否停用 0为启用,1为停用
     */
    private Integer userStatus;
}
Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java
@@ -86,5 +86,12 @@
     * 拓展信息
     */
    private String userExt;
    /***
     * 账号是否停用 0为启用,1为启用
     */
    private Integer userStatus;
    /***
     * 账号是否停用 0为启用,1为启用
     */
    private String userStatus_text;
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
@@ -222,6 +222,7 @@
    }
    /**
     * 设置最大流水号
     * @param codeOrderDTO 编码申请传输对象
@@ -233,4 +234,16 @@
    public R setMaxSerialNumberForCodeRule(@RequestBody CodeOrderDTO codeOrderDTO){
        return R.success(codeBasicSecService.setMaxSerialNumberForCodeRule(codeOrderDTO));
    }
    /***
     *  根据流水依赖获取最大流水号
     * @param codeOrderDTO
     * @return
     */
    @GetMapping("/getMaxSerialNumberForCodeRule")
    @ApiOperationSupport(order = 15)
    @ApiOperation(value = "查询编码规则的所有流水依赖的最大流水", notes = "传入oid")
    public R getMaxSerialNumberForCodeRule(@RequestBody CodeOrderDTO codeOrderDTO){
        return R.data(codeBasicSecService.getMaxSerialNumberForCodeRule(codeOrderDTO));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
@@ -16,6 +16,7 @@
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import java.rmi.ServerException;
import java.util.*;
@@ -207,4 +208,11 @@
     * @throws VciBaseException
     */
    String setMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) throws VciBaseException;
    /**
     * 根据流水依赖获取最大流水值
     * @param codeOrderDTO 编码申请传输对象
     * @return
     * @throws VciBaseException
     */
    Double getMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -1106,4 +1106,63 @@
        }
        return String.valueOf(maxSecNum);
    }
    /***
     * 根据流水依赖获取最大流水号
     * @param codeOrderDTO 编码申请传输对象
     * @return
     */
    @Override
    public Double getMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) {
        Double maxSerialNumber=0.0;
        VciBaseUtil.alertNotNull(codeOrderDTO.getCodeRuleOid(),"编码规则主键");
        List<CodeOrderSecDTO>  codeOrderSecDTOList=codeOrderDTO.getSecDTOList();
        if(CollectionUtils.isEmpty(codeOrderSecDTOList)){
            throw new VciBaseException("最大流水号的流水依赖不能为空!");
        }
        String codeRuleOid = codeOrderDTO.getCodeRuleOid();
        Map<String/**码段主键*/,CodeOrderSecDTO/**码段相关信息*/> codeOrderSecDTOMap = codeOrderSecDTOList.stream().collect(Collectors.toMap(s -> s.getSecOid(), t -> t));
        List<String> codeBasicSecOidList = codeOrderSecDTOList.stream().map(s->s.getSecOid()).collect(Collectors.toList());//流水依赖码段的主键集合
        //获取流水依赖码段
        LambdaQueryWrapper<CodeBasicSec> wrapper = Wrappers.<CodeBasicSec>query().lambda()
            .eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
            .in(CodeBasicSec::getOid,codeBasicSecOidList)
            .eq(CodeBasicSec::getSerialDependFlag,"true")
            .orderByAsc(CodeBasicSec::getSerialDependOrder);
        List<CodeBasicSec> codeBasicSecList = this.list(wrapper);
        //按流水依赖顺序,处理流水依赖码段的值
        List<String> serialDependValueList = new ArrayList<>();
        codeBasicSecList.stream().forEach(s->{
            CodeOrderSecDTO codeOrderSecDTO = codeOrderSecDTOMap.get(s.getOid());
            String serialDependValue = codeOrderSecDTO.getSecValue();
            if(s.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())){
                try {
                    Date date = VciDateUtil.str2Date(codeOrderSecDTO.getSecValue(),s.getCodeDateFormatStr());
                    serialDependValue = VciDateUtil.date2Str(date,s.getCodeDateFormatStr());
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
            serialDependValueList.add(serialDependValue);
        });
        //获取流水码段
        wrapper = Wrappers.<CodeBasicSec>query().lambda()
            .eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
            .eq(CodeBasicSec::getSecType,CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())
            .orderByAsc(CodeBasicSec::getSerialDependOrder);
        CodeBasicSec codeBasicSec = this.getOne(wrapper);
        //根据编码规则和流水依赖,获取最大流水号
        String serialUnitString = serialDependValueList.size() == 0 ? EMPTY_SERIAL_UNIT : serialDependValueList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
        LambdaQueryWrapper<CodeSerialValue> codeSerialWrapper = new LambdaQueryWrapper<>();
        codeSerialWrapper.eq(CodeSerialValue::getCodeRuleOid, codeRuleOid);
        codeSerialWrapper.eq(CodeSerialValue::getSerialUnit, serialUnitString);
        codeSerialWrapper.eq(CodeSerialValue::getCodeSecOid,codeBasicSec.getOid());
        codeSerialWrapper.orderByDesc(CodeSerialValue::getCreateTime);
        List<CodeSerialValue> codeSerialValueList = serialValueMapper.selectList(codeSerialWrapper);
        if(!CollectionUtils.isEmpty(codeSerialValueList)){
            maxSerialNumber=StringUtils.isBlank(codeSerialValueList.get(0).getMaxSerial())?0:Double.parseDouble(codeSerialValueList.get(0).getMaxSerial());
        }
        return maxSerialNumber;
    }
}
Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java
@@ -53,7 +53,8 @@
        userVO.setPostName(Func.join(postName));
        userVO.setSexName(DictCache.getValue(DictEnum.SEX, user.getSex()));
        userVO.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
        userVO.setUserStatus(user.getUserStatus());
        userVO.setUserStatus_text(DictCache.getValue(DictEnum.USER_STATUS,user.getUserStatus()));//用户状态
        return userVO;
    }
}
Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml
@@ -29,6 +29,7 @@
        <result column="pwd_update_time" property="pwdUpdateTime"/>
        <result column="secretgrade" property="secretGrade"/>
        <result column="strategy_update_status" property="strategyUpdateStatus"/>
        <result column="user_status" property="userStatus"/>
    </resultMap>
@@ -91,7 +92,7 @@
    </select>
    <select id="selectByIdUser" resultType="com.vci.ubcs.system.user.entity.User">
        select id, code, user_type, account, password , name, real_name, avatar, email, phone , birthday, sex, role_id, dept_id, post_id , pwd_update_time, secretgrade, strategy_update_status, tenant_id, create_user , create_dept, create_time, update_user, update_time, status , is_deleted
        select id, code, user_type, account, password , name, real_name, avatar, email, phone , birthday, sex, role_id, dept_id, post_id , pwd_update_time, secretgrade, strategy_update_status, tenant_id, create_user , create_dept, create_time, update_user, update_time, status , is_deleted,user_status,
        from pl_org_user
            where id = #{userId} and is_deleted = 0
    </select>