合并分支 'fix_2nd_20230315' 到 'master'

Fix 2nd 20230315

查看合并请求 laws-nio/laws-weilai!298
This commit is contained in:
高嵩
2023-03-22 09:20:04 +08:00
4 changed files with 289 additions and 253 deletions
@@ -9719,7 +9719,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String dueDate = null; String dueDate = null;
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>(); QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
queryProjectTaskInventoryWrapper.isNotNull("design_p_id"); queryProjectTaskInventoryWrapper.isNotNull("design_p_id").or().isNotNull("verify_p_id");
queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId, projectLawsInventoryId); queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId, projectLawsInventoryId);
List<ProjectTaskInventoryEO> list = projectTaskInventoryEOService.list(queryProjectTaskInventoryWrapper); List<ProjectTaskInventoryEO> list = projectTaskInventoryEOService.list(queryProjectTaskInventoryWrapper);
@@ -221,6 +221,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
} }
/** /**
* 项目扩展(添加子项目--子项目基本信息、相关人员名单、法规/认证任务计划与被扩展项目保持一致) * 项目扩展(添加子项目--子项目基本信息、相关人员名单、法规/认证任务计划与被扩展项目保持一致)
* @param projectLibraryBase * @param projectLibraryBase
@@ -239,8 +241,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectLibraryBaseTemp.setExplanation(projectLibraryBase.getExplanation()); projectLibraryBaseTemp.setExplanation(projectLibraryBase.getExplanation());
this.save(projectLibraryBaseTemp); this.save(projectLibraryBaseTemp);
Date now = new Date(); //处理版本号排序问题,如果版本号插入到中间,后面版本数字顺眼
checkVersionOrder(id,projectLibraryBase.getProjectVersion(),projectId);
Date now = new Date();
//相关人员名单中添加数据 //相关人员名单中添加数据
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelMapper.queryPageList(id, List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelMapper.queryPageList(id,
DictCodeEnum.DUTY_TERRITORY.getValue(), DictCodeEnum.DUTY_TERRITORY.getValue(),
@@ -339,6 +343,33 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
} }
} }
/**
* 如果创建的子项目版本号重复,处理排序
* @param id
* @param version
* @param projectId
*/
private void checkVersionOrder(String id,String version,String projectId) {
LambdaQueryWrapper<ProjectLibraryBase> wrapperVer = new LambdaQueryWrapper<>();
//查找其他统计子版本项目
wrapperVer.eq(ProjectLibraryBase::getParentId, id);
wrapperVer.orderByAsc(ProjectLibraryBase::getProjectVersion);
List<ProjectLibraryBase> clist = this.list(wrapperVer);
int tmpInt = Integer.parseInt(version);
for (ProjectLibraryBase plb : clist) {
int ver = Integer.parseInt(plb.getProjectVersion());
if(!plb.getId().equals(projectId) && ver == tmpInt){
tmpInt++;
String verStr = String.valueOf(tmpInt);
if(verStr.length() <= 1){
verStr= "0" + verStr;
}
plb.setProjectVersion(verStr);
this.updateById(plb);
}
}
}
/**检查车型名称id,年款号,目标市场,版本同时存在,报错*/ /**检查车型名称id,年款号,目标市场,版本同时存在,报错*/
public void checkExitData(ProjectLibraryBase projectLibraryBase){ public void checkExitData(ProjectLibraryBase projectLibraryBase){
@@ -379,6 +410,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
checkExitData(projectLibraryBase); checkExitData(projectLibraryBase);
saveOrUpdate(projectLibraryBase); saveOrUpdate(projectLibraryBase);
checkVersionOrder(projectLibraryBase.getParentId(),projectLibraryBase.getProjectVersion(),projectLibraryBase.getId());
// 删除当前项目的studio与项目库 角色关系 // 删除当前项目的studio与项目库 角色关系
QueryWrapper<ProjectLibraryRoleRelEO> deleteLibraryRoleRelWrapper = new QueryWrapper<>(); QueryWrapper<ProjectLibraryRoleRelEO> deleteLibraryRoleRelWrapper = new QueryWrapper<>();
@@ -1,7 +1,7 @@
<template> <template>
<div class="box"> <div class="box">
<div class="search-text-title"> <div class="search-text-title">
<span>{{$t('searchScope')}}:</span> <span>{{ $t('searchScope') }}:</span>
<span>{{ queryParam.selectValue }}</span> <span>{{ queryParam.selectValue }}</span>
</div> </div>
<a-checkbox-group v-model="checkboxText" v-if="conList.length > 0"> <a-checkbox-group v-model="checkboxText" v-if="conList.length > 0">
@@ -36,7 +36,8 @@
<template slot="title"> <template slot="title">
<span v-html="item.file_name"></span> <span v-html="item.file_name"></span>
</template> </template>
<span class="text-header-text" v-if="item.file_name && item.module_type_flag == 'WDK'" style="cursor: pointer" <span class="text-header-text" v-if="item.file_name && item.module_type_flag == 'WDK'"
style="cursor: pointer"
v-html="item.file_name"></span> v-html="item.file_name"></span>
</a-tooltip> </a-tooltip>
<!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">--> <!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">-->
@@ -106,11 +107,11 @@
</template> </template>
<script> <script>
import { getAction, postAction, downloadFile } from '@/api/manage' import { getAction, postAction, downloadFile } from '@/api/manage'
import { Base64 } from 'js-base64' import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
name: 'whole', name: 'whole',
data() { data() {
return { return {
@@ -180,7 +181,7 @@
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') { } else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix) let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank') window.open(url, '_blank')
}else if(fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg'){ } else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix) let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank') window.open(url, '_blank')
} else { } else {
@@ -230,7 +231,7 @@
if (this.conList && this.conList.length > 0) { if (this.conList && this.conList.length > 0) {
this.conList.forEach(val => { this.conList.forEach(val => {
val.content = val.content.replace(/<img .*?>/g, '') val.content = val.content.replace(/<img .*?>/g, '')
val.content = val.content.replace(/<\/?p[^>]*>/gi,'') val.content = val.content.replace(/<\/?p[^>]*>/gi, '')
}) })
} }
this.total = res.result.total this.total = res.result.total
@@ -252,7 +253,7 @@
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') { } else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.file_id + fileSuffix) let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank') window.open(url, '_blank')
}else if(fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg'){ } else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + item.file_id + fileSuffix) let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank') window.open(url, '_blank')
} }
@@ -261,13 +262,13 @@
if (item.module_type_flag == 'FGYB') { if (item.module_type_flag == 'FGYB') {
this.monthlyReportClick(item) this.monthlyReportClick(item)
} else if (item.module_type_flag == 'WTZSK') { } else if (item.module_type_flag == 'WTZSK') {
let newUrl = this.$router.resolve({ let id = item.id.slice(0, item.id.length - 4)
path: '/problemKnowledgeBaseView', this.$router.push({
path: '/problemknowledgeBase',
query: { query: {
id: item.id id: id
} }
}) })
window.open(newUrl.href, '_blank')
} else { } else {
let newUrl = this.$router.resolve({ let newUrl = this.$router.resolve({
path: '/docManage/library/detail', path: '/docManage/library/detail',
@@ -281,55 +282,57 @@
} }
} }
} }
} }
</script> </script>
<style lang="less"> <style lang="less">
.highlight-class { .highlight-class {
color: #21c9cc; color: #21c9cc;
} }
.tooltip-index { .tooltip-index {
max-width: calc(100% - 300px) !important; max-width: calc(100% - 300px) !important;
.ant-tooltip-inner { .ant-tooltip-inner {
color: #333; color: #333;
background-color: #fff !important; background-color: #fff !important;
} }
.ant-tooltip-arrow::before { .ant-tooltip-arrow::before {
background-color: #fff; background-color: #fff;
} }
} }
</style> </style>
<style scoped lang="less"> <style scoped lang="less">
.box { .box {
padding: 0 0 0 18px; padding: 0 0 0 18px;
box-sizing: border-box; box-sizing: border-box;
} }
.checkbox-left { .checkbox-left {
float: left; float: left;
position: absolute; position: absolute;
left: 0; left: 0;
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
} }
.text-text-right { .text-text-right {
padding: 19px 28px; padding: 19px 28px;
box-sizing: border-box; box-sizing: border-box;
margin-left: 38px; margin-left: 38px;
cursor: pointer; cursor: pointer;
} }
.null-input { .null-input {
background-color: #F2F4F8; background-color: #F2F4F8;
} }
.search-text-title { .search-text-title {
margin-bottom: 22px; margin-bottom: 22px;
} }
.text-header { .text-header {
margin-bottom: 11px; margin-bottom: 11px;
.text-header-text { .text-header-text {
@@ -355,9 +358,9 @@
/* white-space: nowrap;*/ /* white-space: nowrap;*/
/* overflow: hidden;*/ /* overflow: hidden;*/
/*}*/ /*}*/
} }
.text-content { .text-content {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #040B29; color: #040B29;
@@ -371,21 +374,21 @@
/*! autoprefixer: on;*/ /*! autoprefixer: on;*/
text-justify: inter-ideograph; text-justify: inter-ideograph;
word-break: break-all word-break: break-all
} }
.page { .page {
text-align: right; text-align: right;
margin-top: 20px; margin-top: 20px;
} }
.noData { .noData {
width: 100%; width: 100%;
text-align: center; text-align: center;
line-height: 10; line-height: 10;
} }
::v-deep p { ::v-deep p {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
</style> </style>
@@ -19,7 +19,8 @@
</div> </div>
<a-form-model-item class="itemModel" prop="projectVersion"> <a-form-model-item class="itemModel" prop="projectVersion">
<a-input class="box-input" <a-input class="box-input"
:disabled="true" oninput="javascript:this.value=this.value.replace(/[^\d]$/g,'')"
:maxLength="2"
v-model="formInline.projectVersion" v-model="formInline.projectVersion"
:placeholder="$t('PleaseEnter')+$t('projectVersion')"/> :placeholder="$t('PleaseEnter')+$t('projectVersion')"/>
</a-form-model-item> </a-form-model-item>