From 4496cc4b1f17c4b3de5e954388baeadf04de719d Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 29 十一月 2023 14:49:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 /dev/null                                                                                                           |  158 -------------------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomRomanSerialAlgorithmExample.java |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java           |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准化文件修订.json  |   37 ++++
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java                      |    6 
 Source/UBCS-WEB/src/views/monitor/log/operateLog.vue                                                                |  177 ++++++++++++++++++++++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准化文件申请.json  |   37 ++++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/系列变标准.json    |   34 ++++
 8 files changed, 298 insertions(+), 162 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/monitor/log/authLog.vue b/Source/UBCS-WEB/src/views/monitor/log/authLog.vue
deleted file mode 100644
index e69de29..0000000
--- a/Source/UBCS-WEB/src/views/monitor/log/authLog.vue
+++ /dev/null
diff --git a/Source/UBCS-WEB/src/views/monitor/log/loginLog.vue b/Source/UBCS-WEB/src/views/monitor/log/loginLog.vue
deleted file mode 100644
index e5d653c..0000000
--- a/Source/UBCS-WEB/src/views/monitor/log/loginLog.vue
+++ /dev/null
@@ -1,158 +0,0 @@
-<template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               ref="crud"
-               v-model="form"
-               :permission="permissionList"
-               :page.sync="page"
-               :before-open="beforeOpen"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
-    </avue-crud>
-  </basic-container>
-</template>
-
-<script>
-  import { listLogOperate } from "@/api/logs";
-  import {mapGetters} from "vuex";
-
-  export default {
-    data() {
-      return {
-        form: {},
-        selectionList: [],
-        query: {},
-        //鏄惁鏄笁鍛樼鐞嗗憳鏃ュ織
-        isAdmin: 0,
-        // LoginOrLogout:鐧诲綍鏃ュ織,auth:鎺堟潈鏃ュ織,operate:鎿嶄綔鏃ュ織
-        logType: "LoginOrLogout",
-        loading: true,
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        option: {
-          height: 'auto',
-          calcHeight: 30,
-          columnBtn:false,
-          tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
-          border: true,
-          index: true,
-          viewBtn: true,
-          editBtn: false,
-          addBtn: false,
-          delBtn: false,
-          menuWidth: 120,
-          dialogType: 'drawer',
-          column: [
-            {
-              label: "鐢ㄦ埛鍚�",
-              prop: "userName",
-              search: true
-            },
-            {
-              label: "濮撳悕",
-              prop: "realName",
-              search: true
-            },
-            {
-              label: "鐢ㄦ埛ip",
-              prop: "ip"
-            },
-            {
-              label: "妯″潡",
-              prop: "model",
-              width:'160'
-            },
-            {
-              label: "鏃堕棿",
-              prop: "time"
-            },
-            {
-              label: "鎿嶄綔缁撴灉",
-              prop: "operateResult"
-            },
-            {
-              label: "鎻忚堪",
-              prop: "description"
-            },
-          ]
-        },
-        data: []
-      };
-    },
-    computed: {
-      ...mapGetters(["permission"]),
-      permissionList() {
-        return {
-          viewBtn: this.vaildData(this.permission.log_usual.log_usual_view, false)
-        };
-      },
-    },
-    methods: {
-      searchReset() {
-        this.query = {};
-        this.onLoad(this.page);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
-      },
-      underscoreName(key) {
-        return key.replace(/([A-Z])/g, "_$1").toLowerCase();
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getUsualLogs(this.form.id).then(res => {
-            this.form = res.data.data;
-          });
-        }
-        done();
-      },
-      currentChange(currentPage){
-        this.page.currentPage = currentPage;
-      },
-      sizeChange(pageSize){
-        this.page.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query);
-      },
-      onLoad(page, params = {}) {
-        let conditionMaps = {};
-        conditionMaps["conditionMap[is_admin]"] = this.isAdmin;
-        conditionMaps["conditionMap[log_type]"] = this.logType.trim();
-        if (params) {
-          Object.keys(params).forEach((key) => {
-            conditionMaps["conditionMap[" + this.underscoreName(key) + "_like]"] = params[key].trim();
-          });
-        }
-        this.loading = true;
-        listLogOperate(
-          page.currentPage, 
-          page.pageSize,
-          conditionMaps
-        ).then(res => {
-          const data = res.data.data;
-          this.page.total = data.total;
-          this.data = data.records;
-          this.loading = false;
-        });
-      }
-    }
-  };
-</script>
-
-<style>
-</style>
diff --git a/Source/UBCS-WEB/src/views/monitor/log/operateLog.vue b/Source/UBCS-WEB/src/views/monitor/log/operateLog.vue
index e69de29..b797733 100644
--- a/Source/UBCS-WEB/src/views/monitor/log/operateLog.vue
+++ b/Source/UBCS-WEB/src/views/monitor/log/operateLog.vue
@@ -0,0 +1,177 @@
+<template>
+  <basic-container>
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               ref="crud"
+               v-model="form"
+               :permission="permissionList"
+               :page.sync="page"
+               :before-open="beforeOpen"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+  import { listLogOperate } from "@/api/logs";
+  import {mapGetters} from "vuex";
+
+  export default {
+    data() {
+      return {
+        form: {},
+        selectionList: [],
+        query: {},
+        //鏄惁鏄笁鍛樼鐞嗗憳鏃ュ織
+        isAdmin: '',
+        // LoginOrLogout:鐧诲綍鏃ュ織,grant:鎺堟潈鏃ュ織,operate:鎿嶄綔鏃ュ織
+        logType: '',
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        option: {
+          height: 'auto',
+          calcHeight: 30,
+          columnBtn:false,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: true,
+          editBtn: false,
+          addBtn: false,
+          delBtn: false,
+          menuWidth: 120,
+          dialogType: 'drawer',
+          column: [
+            {
+              label: "鐢ㄦ埛鍚�",
+              prop: "userName",
+              search: true,
+              width:'100'
+            },
+            {
+              label: "濮撳悕",
+              prop: "realName",
+              search: true,
+              width:'100'
+            },
+            {
+              label: "鐢ㄦ埛ip",
+              prop: "ip",
+              width:'100'
+            },
+            {
+              label: "妯″潡",
+              prop: "model",
+              width:'140'
+            },
+            {
+              label: "鏃堕棿",
+              prop: "time",
+              width:'160'
+            },
+            {
+              label: "鎿嶄綔缁撴灉",
+              prop: "operateResult",
+              width:'100'
+            },
+            {
+              label: "鎻忚堪",
+              prop: "description",
+              width:'300'
+            },
+          ]
+        },
+        data: []
+      };
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      permissionList() {
+        return {
+          viewBtn: this.vaildData(this.permission.log_usual.log_usual_view, false)
+        };
+      },
+    },
+    created() {
+      this.getRouteParam()
+    },
+    methods: {
+      //鑾峰彇鏁版嵁
+      getRouteParam() {
+        const logType = this.$route.query.log_type; // 鑾峰彇log_type鍙傛暟鐨勫��
+        const result = logType.substring(0, logType.indexOf(':')); // 鎴彇浠�0鍒癅涔嬮棿鐨勫瓙瀛楃涓�
+        const isAdmin = logType.substring(logType.indexOf(':')+1, logType.indexOf('@')); // 浠嶡涔嬪悗鎴彇鍒版湯灏剧殑瀛愬瓧绗︿覆
+        this.logType = result;
+        this.isAdmin = isAdmin;
+        //console.log(this.logType)
+        //console.log(this.isAdmin)
+      },
+      searchReset() {
+        this.query = {};
+        this.onLoad(this.page);
+      },
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+        done();
+      },
+      underscoreName(key) {
+        return key.replace(/([A-Z])/g, "_$1").toLowerCase();
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getUsualLogs(this.form.id).then(res => {
+            this.form = res.data.data;
+          });
+        }
+        done();
+      },
+      currentChange(currentPage){
+        this.page.currentPage = currentPage;
+      },
+      sizeChange(pageSize){
+        this.page.pageSize = pageSize;
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      onLoad(page, params = {}) {
+        let conditionMaps = {};
+        conditionMaps["conditionMap[is_admin]"] = this.isAdmin;
+        conditionMaps["conditionMap[log_type]"] = this.logType.trim();
+        if (params) {
+          Object.keys(params).forEach((key) => {
+            conditionMaps["conditionMap[" + this.underscoreName(key) + "_like]"] = params[key].trim();
+          });
+        }
+        this.loading = true;
+        listLogOperate(
+          page.currentPage, 
+          page.pageSize,
+          conditionMaps
+        ).then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records;
+          this.loading = false;
+        });
+      }
+    }
+  };
+</script>
+
+<style>
+</style>
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
index 9913f8b..eb886d5 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
@@ -31,6 +31,7 @@
 import com.vci.ubcs.common.cache.CacheNames;
 import org.springblade.core.jwt.JwtUtil;
 import org.springblade.core.jwt.props.JwtProperties;
+import org.springblade.core.launch.constant.TokenConstant;
 import org.springblade.core.log.annotation.LoginOrLogoutLog;
 import org.springblade.core.redis.cache.BladeRedis;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -110,6 +111,7 @@
 		// 鑾峰彇绉熸埛ID
 		String headerTenant = request.getHeader(TokenUtil.TENANT_HEADER_KEY);
 		String paramTenant = request.getParameter(TokenUtil.TENANT_PARAM_KEY);
+		String refreshToken = request.getParameter(TokenConstant.REFRESH_TOKEN);
 		String password = request.getParameter(TokenUtil.PASSWORD_KEY);
 		String grantType = request.getParameter(TokenUtil.GRANT_TYPE_KEY);
 		// 鍒ゆ柇绉熸埛璇锋眰澶�
@@ -139,7 +141,9 @@
 
 		//瓒呯骇绠$悊鍛橀厤缃枃浠堕厤缃处鍙峰瘑鐮侊紝瀹炵幇鐧诲綍, 榛樿绉熸埛id鍜岃秴绠′负閰嶇疆鍑烘潵鐨�
 		if(tenantId.equals(this.tenantId) && userName.equals(username)){
-			if (!this.userName.equals(username) || !BladePasswordEncoderFactories.createDelegatingPasswordEncoder().encode(password).equalsIgnoreCase(AuthConstant.ENCRYPT+this.password)) {
+			if (Func.isBlank(refreshToken)/*鍒锋柊token涓嶇敤鏍¢獙瀵嗙爜*/
+				&& (!this.userName.equals(username) || !BladePasswordEncoderFactories.createDelegatingPasswordEncoder().encode(password).equalsIgnoreCase(AuthConstant.ENCRYPT+this.password))
+			) {
 				setFailCount(tenantId, username, count,strategy.getLockingTime());
 				throw new UsernameNotFoundException(TokenUtil.USER_NOT_FOUND+"杩樻湁銆�"+(failCount-count)+"銆戞灏濊瘯鏈轰細!");
 			}
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\345\214\226\346\226\207\344\273\266\344\277\256\350\256\242.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\345\214\226\346\226\207\344\273\266\344\277\256\350\256\242.json"
new file mode 100644
index 0000000..902c5f1
--- /dev/null
+++ "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\345\214\226\346\226\207\344\273\266\344\277\256\350\256\242.json"
@@ -0,0 +1,37 @@
+{
+  "operationType": "2",
+  "series": false,
+  "releaseTime": "2023-11-23",
+  "oldCode": "BJJ-23-1",
+  "seriesFlow": "",
+  "isEditSeries": false,
+  "editInProcess": false,
+  "codeClassifyOid": "1722159255211085824",
+  "templateOid": "1722162284376199170",
+  "codeRuleOid": "1729702446013485056",
+  "editInProcess": "",
+  "secDTOList":[{
+    "secOid":"1729702742034878464",
+    "secValue": "BJJ"
+  },{
+    "secOid":"1729702831633600512",
+    "secValue": "-"
+  },
+    {
+      "secOid":"1729703035887816704",
+      "secValue": "23"
+    },{
+      "secOid":"1729703108231172096",
+      "secValue": "-"
+    }
+  ],
+  "data":{"name":"鏍囧噯鍖栨枃浠跺悕绉�",
+    "standardFileType":"鏂囦欢绫诲瀷",
+    "codeStandardEditType":"2",
+    "oldcode":"BJJ-23-1",
+    "isSeries":"false",
+    "reviseSeries":"false",
+    "ImplementationDate":"2023-11-23 19:22:33",
+    "approveDate":"2023-11-23 19:22:33",
+    "releaseDate": "2023-11-23 19:22:33"}
+}
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\345\214\226\346\226\207\344\273\266\347\224\263\350\257\267.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\345\214\226\346\226\207\344\273\266\347\224\263\350\257\267.json"
new file mode 100644
index 0000000..c68b161
--- /dev/null
+++ "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\346\240\207\345\207\206\345\214\226\346\226\207\344\273\266\347\224\263\350\257\267.json"
@@ -0,0 +1,37 @@
+{
+  "operationType": "1",
+  "series": false,
+  "releaseTime": "2023-11-23",
+  "oldCode": "",
+  "seriesFlow": "",
+  "isEditSeries": false,
+  "editInProcess": false,
+  "codeClassifyOid": "1722159255211085824",
+  "templateOid": "1722162284376199170",
+  "codeRuleOid": "1729702446013485056",
+  "editInProcess": "",
+  "secDTOList":[{
+    "secOid":"1729702742034878464",
+    "secValue": "BJJ"
+  },{
+    "secOid":"1729702831633600512",
+    "secValue": "-"
+  },
+    {
+      "secOid":"1729703035887816704",
+      "secValue": "23"
+    },{
+      "secOid":"1729703108231172096",
+      "secValue": "-"
+    }
+  ],
+  "data":{"name":"鏍囧噯鍖栨枃浠跺悕绉�",
+    "standardFileType":"鏂囦欢绫诲瀷",
+    "codeStandardEditType":"1",
+    "oldcode":"",
+    "isSeries":"false",
+    "reviseSeries":"false",
+    "ImplementationDate":"2023-11-23 19:22:33",
+    "approveDate":"2023-11-23 19:22:33",
+    "releaseDate": "2023-11-23 19:22:33"}
+}
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\345\217\230\346\240\207\345\207\206.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\345\217\230\346\240\207\345\207\206.json"
new file mode 100644
index 0000000..132a7b8
--- /dev/null
+++ "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\347\263\273\345\210\227\345\217\230\346\240\207\345\207\206.json"
@@ -0,0 +1,34 @@
+{
+  "operationType": "2",
+  "series": true,
+  "releaseTime": "2023-11-23",
+  "oldCode": "Q/3B7.1-2023",
+  "seriesFlow": "",
+  "isEditSeries": true,
+  "editInProcess": false,
+  "codeClassifyOid": "1722159168229609472",
+  "templateOid": "1722159635358650369",
+  "codeRuleOid": "1717377846655193088",
+  "editInProcess": "",
+  "secDTOList":[{
+    "secOid":"1717378065371369472",
+    "secValue": "Q/3B"
+  },{
+    "secOid":"1722497248551636992",
+    "secValue": "-"
+  },
+    {
+      "secOid":"1722497450259910656",
+      "secValue": "2023"
+    }
+  ],
+  "data":{"name":"绯诲垪鏍囧噯鍚嶇О",
+    "standardFileType":"鏂囦欢绫诲瀷",
+    "codeStandardEditType":"2",
+    "oldcode":"Q/3B7.1-2023",
+    "isSeries":"true",
+    "reviseSeries":"true",
+    "ImplementationDate":"2023-11-23 19:22:33",
+    "approveDate":"2023-11-23 19:22:33",
+    "releaseDate": "2023-11-23 19:22:33"}
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomRomanSerialAlgorithmExample.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomRomanSerialAlgorithmExample.java
index 26d489d..ab65d16 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomRomanSerialAlgorithmExample.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomRomanSerialAlgorithmExample.java
@@ -116,7 +116,12 @@
 						 int newYear=0;
 							int month=0;
 						  if(yearMoths.length>2){
-							  newYear=Integer.parseInt(yearMoths[0]);
+							  String year=yearMoths[0];
+							  if(year.length()>String.valueOf(yearSecValue).length()){//鏈夋椂鍊欏彂甯冩椂闂寸殑骞撮暱搴﹀ぇ浜庣爜娈电殑闀垮害锛屽垯闇�瑕佹埅鍙栧悗2浣�
+								  newYear= Integer.parseInt(year.substring(2));
+							  }else {
+								  newYear=Integer.parseInt(year);
+							  }
 							  month=Integer.parseInt(yearMoths[1]);
 						  }
 						  if(newYear>yearSecValue&&month>1){
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index f5e3785..c012248 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -961,14 +961,14 @@
 		LinkedList<CodeOrderSecDTO> newSecDTOList=new LinkedList<>();
 		changeCodeOrderSecDTO(ruleVO,secDTOS,oldCode,newSecDTOList);//鏍规嵁瑕佹眰閲嶆柊绠楃爜娈电爜鍊�
 		if(!codeBZApplyDTO.isEditSeries()){//鍙樻洿涓烘爣鍑�
-			if(!codeBZApplyDTO.isSeries()){//濡傛灉鏄〃鍑嗭紝鍒欓渶瑕佸皢绯诲垪濂芥祦姘寸疆涓簄ull
+			//if(!codeBZApplyDTO.isSeries()){//濡傛灉鏄〃鍑嗭紝鍒欓渶瑕佸皢绯诲垪濂芥祦姘寸疆涓簄ull
 				//鍥犱负鏄爣鍑嗗垯鎺у埗鐮佹涓殑绯诲垪娴佹按鐮佹鍊间负绌�
 				newSecDTOList.stream().forEach(codeOrderSecDTO -> {
 					if(codeCodeBasicSecMap.containsKey(codeOrderSecDTO.getSecOid())&&codeCodeBasicSecMap.get(codeOrderSecDTO.getSecOid()).getName().equals(secName)){
 						codeOrderSecDTO.setSecValue("");
 					}
 				});
-			}
+			//}
 			orderDTO.setSecDTOList(newSecDTOList);
 			return createDataBZ(orderDTO,ruleVO,authUser);
 		}else{//鍙樻洿涓虹郴鍒�.鍒欐寜鐓ч�昏緫鍘诲鐞�

--
Gitblit v1.9.3