合并分支 'fix_20230524' 到 'master'

Fix 20230524

查看合并请求 laws-nio/laws-weilai!336
This commit is contained in:
高嵩
2023-06-14 18:31:29 +08:00
15 changed files with 165 additions and 53 deletions
@@ -3520,7 +3520,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
List<ParamsCollectManifestEO> list = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
// 过滤出 状态为待发起收集且工程接口人处为空的参数项
list = list.stream().filter(e -> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState()) && StringUtils.isBlank(e.getSdt())).collect(Collectors.toList());
list = list.stream().filter(e -> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())).collect(Collectors.toList());
List<ParamsCollectManifestEO> updateCollectManifestEOList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list)) {
@@ -100,6 +100,15 @@
<if test="paramsReportDetailVO.paramsManifestId !=null and paramsReportDetailVO.paramsManifestId !=''">
AND prd.params_manifest_id = #{paramsReportDetailVO.paramsManifestId}
</if>
<if test="paramsReportDetailVO.isMust !=null and paramsReportDetailVO.isMust !=''">
AND prd.is_must = #{paramsReportDetailVO.isMust}
</if>
<if test="paramsReportDetailVO.dutyTerritory !=null and paramsReportDetailVO.dutyTerritory !=''">
AND prd.duty_territory in
<foreach collection="paramsReportDetailVO.dutyTerritory.split(',')" index="" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</if>
</where>
@@ -72,4 +72,9 @@ public class ParamsReportDetailVO {
@TableField(exist = false)
private String orderBySql;
@TableField(exist = false)
private String isMust;
@TableField(exist = false)
private String dutyTerritory;
}
@@ -6,9 +6,9 @@ package com.jero.modules.head.enums;
* @auth zhn
*/
public enum AffirmFlagEnum {
DESIGN_FLAG("设计符合性确认","Design Compliance Check","1"),
DESIGN_FLAG("设计符合性确认","Design Compliance Confirmation","1"),
AFFIRM_FLAG("Pre-Homo确认","Pre-Homo Confirmation","2"),
VERIFY_FLAG("验证符合性确认","Validation Compliance Check","3");
VERIFY_FLAG("验证符合性确认","Validation Compliance Confirmation","3");
@@ -11,15 +11,13 @@ public enum ProjectTaskPlanningNameEnum {
// ATTESTATION_START_TIME("认证试验结束","Homo Completion"),// name:认证开始 value:Certification begins
ATTESTATION_END_TIME("认证批准","Homo KO"),// name:认证结束 value:End of certification
LIST_CONFIRMATION("清单发布","List Publishing"),
LEGAL_TASK_CONFIRMATION("责任确认","Responsibility Confirmation"),
DESIGN_DEADLINE("设计核查","Design Verification"),
PREHOMO_DEADLINE("摸底开始","Get Started"), // name:Pre-Homo value:Pre-Homo
ATTESTATION_START_TIME("认证开始","Certification Start"),// name:认证开始 value:Certification begins
VERIFY_DEADLINE("验证核查","Verification And Verification"),
CERTIFICATION_SUBMISSION("认证提交","Certification Submission"),
LOCALAPPROVAL_1("地方批准1","Local Approval 1"),
LOCALAPPROVAL_2("地方批准2","Local Approval 2"),
LIST_CONFIRMATION("清单发布","List Release"),
LEGAL_TASK_CONFIRMATION("责任确认","Responsibility Confirm"),
DESIGN_DEADLINE("设计核查","Design Check"),
PREHOMO_DEADLINE("摸底开始","Pre-Homo Starts"), // name:Pre-Homo value:Pre-Homo
ATTESTATION_START_TIME("认证开始","Homo Starts"),// name:认证开始 value:Certification begins
VERIFY_DEADLINE("验证核查","Validation Check"),
CERTIFICATION_SUBMISSION("认证提交","Application Submitted"),
G_ZERO("G0","G0"),
G_ONE("G1","G1"),
G_TWO("G2","G2"),
@@ -2064,21 +2064,31 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
if("dutyTerritoryName".equals(orderByField)){
param1 = StringUtils.isNotEmpty((String) data1.get("dutyTerritoryName")) ? (String) data1.get("dutyTerritoryName") : "";
param2 = StringUtils.isNotEmpty((String) data2.get("dutyTerritoryName")) ? (String) data2.get("dutyTerritoryName") : "";
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
return comparator.compare(param1,param2);
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
return comparator.compare(param2,param1);
}
}
// 数量
if("amount".equals(orderByField)){
param1 = StringUtils.isNotEmpty(String.valueOf(data1.get("amount"))) ? String.valueOf(data1.get("amount")) : "";
param2 = StringUtils.isNotEmpty(String.valueOf(data2.get("amount"))) ? String.valueOf(data2.get("amount")) : "";
double p1 = data1.get("amount") != null ? (double) data1.get("amount") : 0;
double p2 = data2.get("amount") != null ? (double) data2.get("amount") : 0;
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
return (int)(p1 - p2);
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
return (int)(p2 - p1);
}
}
// 占比
if("percentage".equals(orderByField)){
param1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? (String) data1.get("percentage") : "";
param2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? (String) data2.get("percentage") : "";
}
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
return comparator.compare(param1,param2);
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
return comparator.compare(param2,param1);
double p1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? Double.parseDouble (((String) data1.get("percentage")).replace("%","")) : 0;
double p2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? Double.parseDouble (((String) data2.get("percentage")).replace("%","")) : 0;
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
return (int)(p1 - p2);
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
return (int)(p2 - p1);
}
}
return 0;
});
@@ -221,7 +221,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
mapSortTemp.put(orderByField,mapSort);
}
}else{
mapSortTemp.put("issue_time","desc");
mapSortTemp.put("create_time","desc");
}
sort.putAll(mapSortTemp);
jsonArrySort.add(sort);
+1
View File
@@ -1848,4 +1848,5 @@ module.exports = {
approvalcycle:'Approval cycle(day)',
transittime:'Transit Time',
returntime:'Return time',
operationguide:'Project operation guide',
}
+1
View File
@@ -1949,4 +1949,5 @@ module.exports = {
approvalcycle:'审批周期()',
transittime:'通过时间',
returntime:'退回时间',
operationguide:'项目操作指南',
}
+26 -6
View File
@@ -31,13 +31,30 @@
<!-- <a-icon type="question-circle-o"></a-icon>-->
<!-- </a>-->
<!-- </span>-->
<div class="action" @click="Jumpflybook">
<span class="header-notice">
<a-tooltip placement="bottomRight" :title="$t('userManual')" overlayClassName="tooltipColor">
<a-icon style="font-size: 16px; padding: 4px; color: #000000A6" type="question-circle"/>
</a-tooltip>
<!-- <div class="action" @click="Jumpflybook">-->
<!-- <span class="header-notice">-->
<!-- <a-tooltip placement="bottomRight" :title="$t('userManual')" overlayClassName="tooltipColor">-->
<!-- <a-icon style="font-size: 16px; padding: 4px; color: #000000A6" type="question-circle"/>-->
<!-- </a-tooltip>-->
<!-- </span>-->
<!-- </div>-->
<a-dropdown>
<span class="action action-full ant-dropdown-link user-dropdown-menu">
<!-- <a-avatar class="avatar" size="small" :src="getAvatar()"/>-->
<!-- <span v-if="isDesktop()">welcome,{{ userInfo().username }}</span>-->
<a-icon style="font-size: 16px; padding: 4px; color: #000000A6" type="question-circle"/>
</span>
</div>
<a-menu slot="overlay" class="user-dropdown-menu-wrapper">
<a-menu-item key="5" @click="Jumpflybook">
<!-- <a-icon type="logout"/>-->
<span>{{$t('userManual')}}</span>
</a-menu-item>
<a-menu-item key="6" @click="Jumpoperationguide">
<!-- <a-icon type="logout"/>-->
<span>{{$t('operationguide')}}</span>
</a-menu-item>
</a-menu>
</a-dropdown>
<header-notice class="action"/>
<div class="action">
<span v-show="localeval=='zh-cn'">
@@ -217,6 +234,9 @@
Jumpflybook(){
window.open('https://eicgyqr5mc.feishu.cn/docx/doxcnY2GbQfMSMqLP0eIFzFlEcd', '_blank');
},
Jumpoperationguide(){
window.open('https://eicgyqr5mc.feishu.cn/docx/ZyhWdIz7EoMZ68xhI2bckcWWnMg', '_blank');
},
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
...mapActions(['Logout']),
...mapGetters(['username', 'avatar', 'userInfo']),
@@ -159,6 +159,12 @@
:title="form.qttext ? form.qttext : $t('PleaseEnter')"
:placeholder="$t('PleaseEnter')"></a-input>
</div>
<div v-if='flagly'>
<a-input class="box-input2"
v-model="form.ly"
:title="form.ly ? form.ly : $t('PleaseEnter')+ $t('reason')"
:placeholder="$t('PleaseEnter')+ $t('reason')"></a-input>
</div>
</td>
</tr>
<tr>
@@ -220,6 +226,7 @@ export default {
flag:false,
flagqr:false,
flagqrqt:false,
flagly:false,
loading: false,
disable:false,
columns: [
@@ -420,22 +427,27 @@ this.$forceUpdate()
}
if(this.form.yhqr == '1'){
this.flagqr = true
this.flagly = false
this.qrheight = '100px'
}else{
this.flagqr = false
this.qrheight = '50px'
this.flagly = true
this.qrheight = '100px'
}
if(this.form.yhqr == '1' && this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
this.flagly = false
}else if(this.form.yhqr == '1' && this.form.flagqr != '344a3320beba45afb3718c59b7a7144a'){
this.flagqr = true
this.flagqrqt = false
this.flagly = false
this.qrheight = '100px'
}else {
this.flagqrqt = false
this.flagqr = false
this.qrheight = '50px'
this.flagly = true
this.qrheight = '100px'
}
})
},
@@ -476,12 +488,14 @@ this.$forceUpdate()
if(val.target.value == '1'){
this.qrheight = '100px'
this.flagqr = true
this.flagly = false
if(this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
}
}else{
this.qrheight = '50px'
this.qrheight = '100px'
this.flagly = true
this.flagqr = false
this.flagqrqt = false
}
@@ -490,9 +504,11 @@ this.$forceUpdate()
if(val == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
this.flagly = false
}else {
this.qrheight = '100px'
this.flagqrqt = false
this.flagly = false
}
},
}
@@ -71,6 +71,38 @@
v-model="formInline.sdtName"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
</div>
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('Required')">
<span>{{$t('Required')}}</span>
</div>
<!-- <j-multi-select-tag class="box-input" v-model="formInline.isMust"-->
<!-- :placeholder="$t('PleaseSelect')+$t('Required')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('Required')"-->
<!-- v-model="formInline.isMust"></a-input>-->
<a-select class="box-input" v-model="formInline.isMust" :placeholder="$t('PleaseSelect')+$t('Required')">
<a-select-option :value="'1'">
{{$t('yes')}}
</a-select-option>
<a-select-option :value="'0'">
{{$t('notOnlyRz')}}
</a-select-option>
</a-select>
</div>
</a-col>
</template>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
@@ -93,10 +125,10 @@
{{$t('preservation')}}
</div>
<!-- 导出-->
<div @click="handleExport" class="operator-text" v-has="'report:detail:export:normal'">
<a-icon type="export"/>
{{$t('dataExport')}}
</div>
<!-- <div @click="handleExport" class="operator-text" v-has="'report:detail:export:normal'">-->
<!-- <a-icon type="export"/>-->
<!-- {{$t('dataExport')}}-->
<!-- </div>-->
<div @click="ConventionalExport" class="operator-text" v-has="'report:detail:export:normal'">
<a-icon type="export" :rotate="-90"/>
{{$t('ConventionalExport')}}
@@ -67,25 +67,25 @@
<!-- </a-col>-->
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('certificationCategory')">
<span>{{$t('certificationCategory')}}</span>
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="formInline.certCategory"
:placeholder="$t('PleaseSelect')+$t('certificationCategory')"
:type="'select'"
:triggerChange="false" :dictCode="'cert_category'"/>
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
<div class="title-text" :title="$t('certificationCategory')">
<span>{{$t('certificationCategory')}}</span>
</div>
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<j-dict-select-tag class="box-input" v-model="formInline.certCategory"
:placeholder="$t('PleaseSelect')+$t('certificationCategory')"
:type="'select'"
:triggerChange="false" :dictCode="'cert_category'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -165,6 +165,7 @@
this.title = val.name
this.projectQuery = val
this.getEchart()
console.log(this.projectQuery.name)
if (this.projectQuery.name == this.$t('certificationSubmission') || this.projectQuery.name == this.$t('certificationEnd')) {
this.$nextTick(() => {
this.num = '0'
@@ -49,12 +49,19 @@
<a-radio value="Transfer" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'zrrqr'">
{{$t('turnToDo')}}
</a-radio>
<a-button type="primary" v-if="isPersonnel" @click="PersonnelSelectionClick">
{{this.$t('PersonnelSelection')}}
</a-button>
<span>
{{this.formInline.dezrrSubmitUserName}}
</span>
<!-- <a-button type="primary" v-if="isPersonnel" @click="PersonnelSelectionClick">-->
<!-- {{this.$t('PersonnelSelection')}}-->
<!-- </a-button>-->
<!-- <span>-->
<!-- {{this.formInline.dezrrSubmitUserName}}-->
<!-- </span>-->
<a-form-model-item class="itemModel-per">
<PersonnelSelection v-if="isPersonnel" :query="{db_field_name:this.query.TaskKey == 'zrrtjjfw'?'dezrrSubmitUserId':'secondChargePersonUserId',db_field_txt:$t('personnel')}"
:isSingleChoice="true"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.dezrrSubmitUserName"/>
</a-form-model-item>
</a-radio-group>
</a-form-model-item>
</a-col>
@@ -125,6 +132,7 @@
<script>
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
import PersonnelSelection from '@/components/PersonnelSelection/index'
import uploadFile from '@/components/uploadFile/file'
import SelectedBy from '@/components/SelectedBy/index'
import moment from 'moment'
@@ -133,6 +141,7 @@
name: 'reviewedByThePersonInCharge',
components: {
uploadFile,
PersonnelSelection,
SelectedBy
},
props: ['queryBy', 'queryPersonInCharge', 'query'],
@@ -210,6 +219,10 @@
}
},
methods: {
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
},
getData(data) {
this.formInline.disposeResult = data.operatorResult
this.formInline.approvalOpinion = data.approvalOpinion
@@ -397,4 +410,10 @@
border: 1px #00B3BE solid;
color: #00B3BE;
}
.itemModel-per{
width: calc(50% - 130px) !important;
display: inline-block !important;
margin-top: -6px !important;
height: 40px !important;
}
</style>