From a85cb705274d8fbd9f5fba86ff1c39c13ac66de0 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期一, 16 十月 2023 17:46:02 +0800
Subject: [PATCH] 1.用户加控制启用,停用状态 2.根据流水依赖获取最大流水值

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java         |    8 ++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java |   59 +++++++++++++++++++++++++++++
 Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml                                  |    3 +
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java             |    9 ++++
 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java           |    3 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java    |   13 ++++++
 Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java             |    4 ++
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java           |    4 ++
 8 files changed, 100 insertions(+), 3 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java b/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java
index 194c333..69ccee6 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java
+++ b/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;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
index 8321e6c..7a1e4e8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
+++ b/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;
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java
index fe96185..6eb8f0d 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java
+++ b/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;
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
index 5f81558..b43726f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
+++ b/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));
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
index c985b94..c808bc4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
+++ b/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);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
index a415202..975cd6a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
+++ b/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;
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java
index 245038e..20eaee3 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java
+++ b/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;
 	}
-
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml b/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml
index bd0e411..cd4c625 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml
+++ b/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>

--
Gitblit v1.9.3