modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java
@@ -92,9 +92,6 @@ if (data.getBizDeptId() == null) { data.setBizDeptId(UserContext.getDeptId().toString()); } User user = UserContext.getUser(); Integer secretClass = user.getSecretClass(); data.setUsersecretClass(secretClass); return Result.ok(data); } modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderMeasuredController.java
@@ -33,7 +33,7 @@ * @since 1.0.0 2023-11-09 */ @RestController @RequestMapping("/project/SoftwareTestOrderMeasured/") @RequestMapping("/project/SoftwareTestOrderMeasured") @Api(tags="software_test_order_measured") public class SoftwareTestOrderMeasuredController { @Autowired modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java
@@ -84,9 +84,4 @@ @ApiModelProperty(value = "是否签署合同") private Integer isContract; @TableField(exist = false) @ApiModelProperty(value = "用户密级") private Integer usersecretClass; } modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -16,6 +16,7 @@ import com.zt.life.modules.project.model.SoftwareTestOrder; import com.zt.life.modules.project.model.SoftwareTestOrderDeliverable; import com.zt.life.modules.project.model.SoftwareTestOrderMeasured; import com.zt.life.modules.qaAuditReport.model.QaAuditReportIncongruent; import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService; import com.zt.life.sys.service.SysOssConfigService; import com.zt.modules.coderule.service.SysCodeRuleService; @@ -117,7 +118,10 @@ for (SoftwareTestOrderMeasured softwareTestOrderMeasured : softwareTestOrderDto.getMeasuredList()) { softwareTestOrderMeasured.setOrderId(softwareTestOrderId); if (softwareTestOrderMeasured.getId() != null) { SoftwareTestOrderMeasured Measured = softwareTestOrderMeasuredService.get(softwareTestOrderMeasured.getId()); if (CommonUtils.isActureChangeData(softwareTestOrderMeasured,Measured)) { softwareTestOrderMeasuredService.update(softwareTestOrderMeasured); } } else { softwareTestOrderMeasured.setOrderId(softwareTestOrderId); softwareTestOrderMeasuredService.insert(softwareTestOrderMeasured); modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderTechnicalDao.xml
@@ -20,6 +20,7 @@ SELECT m.*, p.secret_class FROM software_test_order_measured m JOIN software_test_order s ON s.id = m.order_id JOIN software_test_order_deliverable d ON d.ord_id = m.order_id JOIN project p ON p.id = ${projectId} <where> s.is_delete = 0 and m.is_delete = 0 modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDeliverableDao.xml
@@ -4,7 +4,8 @@ <mapper namespace="com.zt.life.modules.project.dao.SoftwareTestOrderDeliverableDao"> <select id="getList" resultType="com.zt.life.modules.project.model.SoftwareTestOrderDeliverable"> select a.* SET @row_number = 0; select a.*,(@row_number := @row_number + 1) AS no from software_test_order_deliverable a <where> a.is_delete = 0 modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderMeasuredDao.xml
@@ -4,7 +4,8 @@ <mapper namespace="com.zt.life.modules.project.dao.SoftwareTestOrderMeasuredDao"> <select id="getList" resultType="com.zt.life.modules.project.model.SoftwareTestOrderMeasured"> select a.* SET @row_number = 0; select (@row_number := @row_number + 1) AS no,a.* from software_test_order_measured a <where> a.is_delete = 0 web/src/views/modules/project/Project-AddOrUpdate.vue
@@ -104,7 +104,7 @@ <div class="DSTOld-1-Form"> <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="所属部门" prop="bizDeptId" style="width: 48%"> <zt-select v-model="dataForm.bizDeptId" :datas="bizDeptList" onchange="getUserList()" placeholder="所属部门"/> <zt-select v-model="dataForm.bizDeptId" :datas="bizDeptList" placeholder="所属部门"/> </zt-form-item> <!-- 是否签署合同 --> <zt-form-item label-width="120px" label="是否签署合同" prop="isContract" style="width: 48%"> @@ -167,7 +167,6 @@ projectConfiger: '', bizDeptId: '', isContract: '', usersecretClass: '' }, projectLeaderList: [], projectTestersList: [], @@ -178,10 +177,9 @@ } }, watch: { /* bizDeptId(val, oldval) { alert(1) "dataForm.bizDeptId"(){ this.getUserList() },*/ } }, methods: { init() { @@ -202,6 +200,7 @@ } await this.getUserList() } console.log(this.dataForm, "async getInfo() dataForm") }, async getUserList() { let res = await this.$http.get(`/project/Project/getUsersLists?deptId=${this.dataForm.bizDeptId}`) @@ -222,7 +221,8 @@ }, // 表单提交 async formSubmit() { if (this.dataForm.secretClass>this.dataForm.usersecretClass){ console.log(localStorage.getItem('userSecretClass'),"formSubmit") if (this.dataForm.secretClass>localStorage.getItem('userSecretClass')){ this.$alert("当前项目设置的密级高于当前用户的密级,请重新设置") return } web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -90,11 +90,20 @@ <el-table ref="tableMeasuredList" class="el-software" border :data="dataForm.measuredList" @cell-click="handleCellClick" stripe> <el-table-column prop="no" align="center" width="80" label="序号"/> <el-table-column prop="name" min-width="300" label="名称"/> <el-table-column prop="no" align="center" width="80" label="序号"> <template slot-scope="scope"> <span v-html="indexFormat(scope.$index)"></span> </template> </el-table-column> <el-table-column prop="name" min-width="300" label="名称"> <template v-slot="{ row }"> <el-input v-model="row.name" placeholder="名称"></el-input> </template> </el-table-column> <el-table-column align="center" prop="identify" width="180" label="标识/版本"> <template slot-scope="scope"> <span v-if="editingCell && editingCell.row === scope.row && editingCell.column.property === scope.column.property"> <span v-if="editingCell && editingCell.row === scope.row && editingCell.column.property === scope.column.property"> <el-input ref="editInput" v-model="scope.row.identify" placeholder="标识/版本"></el-input> </span> <span v-else>{{ scope.row.identify }}</span> @@ -107,7 +116,7 @@ </el-table-column> <el-table-column fixed="right" label="操作" align="center"> <template slot-scope="scope"> <zt-table-button @click="deleteMeasuredRow(scope.$index)">删除</zt-table-button> <zt-table-button @click="deleteMeasuredRow(scope.$index,scope.row.id)">删除</zt-table-button> </template> </el-table-column> </el-table> @@ -140,7 +149,8 @@ <div class="el-border-left" style="width: 98%"> <el-form-item style="width: 20%;padding-left:5%;margin-bottom: 0"> <zt-dict v-model="dataForm.softwareTestOrder.testBasis" :radio="true" dict="test_basis" clearable :inputName="dataForm.softwareTestOrder.otherBasis" origin="otherBasis" @getChangeInputData="getChangeInputData"></zt-dict> clearable :inputName="dataForm.softwareTestOrder.otherBasis" origin="otherBasis" @getChangeInputData="getChangeInputData"></zt-dict> </el-form-item> </div> </div> @@ -153,7 +163,8 @@ <zt-dict-checkbox v-model="dataForm.softwareTestOrder.testType1" column="2" dict="test_type1" clearable></zt-dict-checkbox> </el-form-item> <el-form-item style="width: 60%;padding-left: 15%;border-left: 1px solid rgba(0,0,0,.2);margin-bottom: 0"> <el-form-item style="width: 60%;padding-left: 15%;border-left: 1px solid rgba(0,0,0,.2);margin-bottom: 0"> <zt-dict-checkbox v-model="dataForm.softwareTestOrder.testType2" dict="test_type2" clearable></zt-dict-checkbox> </el-form-item> @@ -226,7 +237,8 @@ <el-form-item label="是否盖CNAS章" label-width="130px" style="padding-left:5%;margin-bottom:0"> <zt-dict v-model="dataForm.softwareTestOrder.otherRequire" :radio="true" dict="is_or_not"></zt-dict> <span>其他:<el-input class="requireOther" v-model="dataForm.softwareTestOrder.requireOther"></el-input></span> <span>其他:<el-input class="requireOther" v-model="dataForm.softwareTestOrder.requireOther"></el-input></span> </el-form-item> </div> </div> @@ -331,12 +343,24 @@ <div class="table-container" style="width: calc(100% - 120px);padding: 5px"> <el-table ref="tableDeliverableList" class="el-software" border :data="dataForm.deliverableList" stripe> <el-table-column type="index" align="center" width="80" label="序号"/> <el-table-column prop="name" min-width="300" label="名称"></el-table-column> <el-table-column prop="identify" align="center" width="380" label="标识/版本"></el-table-column> <el-table-column type="index" align="center" width="80" label="序号"> <template slot-scope="scope"> <span v-html="indexFormat(scope.$index)"></span> </template> </el-table-column> <el-table-column prop="name" min-width="300" label="名称"> <template v-slot="{ row }"> <el-input v-model="row.name" placeholder="名称"></el-input> </template> </el-table-column> <el-table-column prop="identify" align="center" width="380" label="标识/版本"> <template v-slot="{ row }"> <el-input v-model="row.identify" placeholder="标识/版本"></el-input> </template> </el-table-column> <el-table-column fixed="right" label="操作" align="center"> <template slot-scope="scope"> <zt-table-button @click="deleteDeliverableRow(scope.$index)">删除</zt-table-button> <zt-table-button @click="deleteDeliverableRow(scope.$index,scope.row.id)">删除</zt-table-button> </template> </el-table-column> </el-table> @@ -395,7 +419,8 @@ <div class="" style="width: 100%;"> <div class="el-flex" style="height: 40px"> <div style="width: 60%"> <zt-select v-model="dataForm.softwareTestOrder.contractSign" url="/sys/userEx/getUsersList" placeholder="承托方人员"/> <zt-select v-model="dataForm.softwareTestOrder.contractSign" url="/sys/userEx/getUsersList" placeholder="承托方人员"/> <!-- <span>{{ dataForm.contractSign }}</span>--> </div> <div class="el-flex" style="margin-left: 10%"> @@ -446,6 +471,7 @@ <script> import Cookies from 'js-cookie' import qs from 'qs' export default { data() { return { @@ -586,6 +612,9 @@ // console.log(this.dataForm, "this.dataForm") console.log(this.dataForm,"getInfo this.dataForm") }, indexFormat(index) { return index += 1 }, addDeliverableRow() { this.dataForm.deliverableList.push({}) this.$nextTick(() => { @@ -593,7 +622,12 @@ tableBody.scrollTop = tableBody.scrollHeight }) }, deleteDeliverableRow(index){ async deleteDeliverableRow(index,id) { if (id != null) { if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) { let res = await this.$http.delete('/project/SoftwareTestOrderDeliverable/', {data: [id]}) } } this.dataForm.deliverableList.splice(index, 1) }, addMeasuredRow() { @@ -603,7 +637,12 @@ tableBody.scrollTop = tableBody.scrollHeight }) }, deleteMeasuredRow(index){ async deleteMeasuredRow(index, id) { if (id != null) { if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) { let res = await this.$http.delete('/project/SoftwareTestOrderMeasured/', {data: [id]}) } } this.dataForm.measuredList.splice(index, 1) }, async print(){ @@ -644,7 +683,8 @@ <style> .weiTuoDanAuto { width: 70%; //border: 1px solid; margin: 0 auto; /*border: 1 px solid;*/ margin: 0 auto; } .weiTuoDanAuto .el-radio { @@ -701,18 +741,23 @@ .DOldForm > .el-form-item > .el-form-item__content { width: calc(100% - 120px); } .startDate > .el-form-item > .el-form-item__content { width: 95%; } .endDate > .el-form-item > .el-form-item__content { width: 95%; } .testCost > .el-form-item > .el-form-item__content { width: 100%; } .testVenue > .el-form-item > .el-form-item__content { width: 100%; } .el-border-bottom { border-bottom: 1px solid rgba(0, 0, 0, .2); } @@ -742,19 +787,24 @@ margin-top: -10px !important; margin-bottom: 10px !important; } .weiTuoDanAuto .marginTopAndMarginBottom3 { margin-top: 0 !important; margin-bottom: 10px !important; } .csjgxx > .el-form-item > .el-form-item__content { width: calc(100% - 130px); } .order-sc > .el-form-item > .el-form-item__content { width:100%; } .test-type-line-height>.el-form-item>.el-form-item__content{ line-height: 30px; } .requireOther.el-input{ position: absolute; } web/src/views/pages/login.vue
@@ -237,8 +237,11 @@ } } let roleName = res.data.roleName let userSecretClass = res.data.userSecretClass localStorage.setItem('roleName', roleName) localStorage.setItem('userSecretClass', userSecretClass) console.log(localStorage.getItem('roleName'),'localStorage.getItem(\'roleName\')') console.log(localStorage.getItem('userSecretClass'),'localStorage.getItem(\'userSecretClass\')') } } }) zt/core/src/main/java/com/zt/security/service/SysUserTokenService.java
@@ -73,6 +73,7 @@ // String token; String roleNames = sysUserService.getRoleNames(userId); // 当前时间 Date now = new Date(); // 过期时间 @@ -146,12 +147,14 @@ CacheUtils.removeAll(Constant.Cache.TOKEN); //CacheUtils.remove(Constant.Cache.TOKEN,token); //CacheUtils.put(Constant.Cache.TOKEN,token,tokenEntity); User user = UserContext.getUser(); Integer secretClass = user.getSecretClass(); Map<String, Object> map = new HashMap<>(); map.put(Constant.Sys.TOKEN_HEADER, token); map.put("expire", EXPIRE); map.put("test", test); map.put("roleName", roleNames); map.put("userSecretClass", secretClass); map.put("info", "OK"); loginProcess(); return Result.ok().ok(map); zt/core/src/main/resources/mapper/sys/SysUserDao.xml
@@ -214,23 +214,17 @@ and b.code = 'tybm') </select> <select id="checkTestHome" resultType="java.lang.Integer"> SELECT count( 1 ) FROM sys_user WHERE is_delete = 0 SELECT count(1) FROM sys_user WHERE is_delete = 0 AND id = #{userId} AND ( user_name IN ( 'admin', 'yszl' ) OR id IN ( SELECT user_id FROM sys_role_user b, SELECT user_id FROM sys_role_user b, sys_role c WHERE b.is_delete = 0 WHERE b.is_delete = 0 AND c.is_delete = 0 AND c.id = b.role_id AND c.`code` IN ( 'xtglybm', 'ztsxlbm', 'dbsbm', 'zlbm', 'bzbm', 'czbm' ) @@ -243,7 +237,8 @@ <if test="type == null or type == ''"> and id not in ( select user_id from sys_role_user where role_id in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm','rx'))) in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm','rx')and is_delete=0)and is_delete=0)and is_delete=0 </if> <if test="deptId != null and deptId != ''"> and dept_id = #{deptId} @@ -251,26 +246,29 @@ <if test="type == 'zrr'"> and id in ( select user_id from sys_role_user where role_id in (select id from sys_role where code in ('jcry'))) in (select id from sys_role where code in ('jcry')and is_delete=0)and is_delete=0)and is_delete=0 </if> <if test="type == 'csry'"> and id in ( select user_id from sys_role_user where role_id in (select id from sys_role where code in ('jcry'))) in (select id from sys_role where code in ('jcry')and is_delete=0)and is_delete=0)and is_delete=0 </if> <if test="type == 'shry'"> and id in ( select user_id from sys_role_user where role_id in (select id from sys_role where code in ('jcry','zljdy','shry'))) in (select id from sys_role where code in ('jcry','zljdy','shry')and is_delete=0)and is_delete=0) and is_delete=0 </if> <if test="type == 'pzry'"> and id in ( select user_id from sys_role_user where role_id in (select id from sys_role where code in ('jcry','shry'))) in (select id from sys_role where code in ('jcry','shry')and is_delete=0)and is_delete=0)and is_delete=0 </if> </select> <select id="getUsersName" resultType="java.lang.String"> select real_name from sys_user WHERE id=${id} select real_name from sys_user WHERE id = ${id} </select> <update id="updatePassword"> update