合并分支 'fix_2nd_20230301' 到 'master'

Fix 2nd 20230301

查看合并请求 laws-nio/laws-weilai!295
This commit is contained in:
高嵩
2023-03-09 17:39:06 +08:00
8 changed files with 489 additions and 228 deletions
@@ -673,4 +673,17 @@ public class ParamsCollectManifestEOController extends JeroController<ParamsColl
public Result<?> certifiedEngineerUpdateDreBatch(ParamsCollectManifestVO paramsCollectManifestVO) { public Result<?> certifiedEngineerUpdateDreBatch(ParamsCollectManifestVO paramsCollectManifestVO) {
return this.paramsCollectManifestEOService.certifiedEngineerUpdateDreBatch(paramsCollectManifestVO); return this.paramsCollectManifestEOService.certifiedEngineerUpdateDreBatch(paramsCollectManifestVO);
} }
/**
* 认证工程师-批量编辑截止时间
*
* @param paramsCollectManifestVO
* @return
*/
@AutoLog(value = "参数项收集清单-认证工程师-批量编辑截止时间")
@ApiOperation(value="参数项收集清单-认证工程师-批量编辑截止时间", notes="参数项收集清单-认证工程师-批量编辑截止时间")
@PostMapping(value = "/batchEditDeadline")
public Result<?> batchEditDeadline(@RequestBody ParamsCollectManifestVO paramsCollectManifestVO) {
return this.paramsCollectManifestEOService.batchEditDeadline(paramsCollectManifestVO);
}
} }
@@ -197,4 +197,7 @@ public interface IParamsCollectManifestEOService extends IService<ParamsCollectM
// 创建高级查询条件 // 创建高级查询条件
void createAdvanceedSearchCondition(List<QueryConditionVO> queryConditionVOList, StringBuilder sqlJoin); void createAdvanceedSearchCondition(List<QueryConditionVO> queryConditionVOList, StringBuilder sqlJoin);
// 认证工程师-批量编辑截止时间
Result<?> batchEditDeadline(ParamsCollectManifestVO paramsCollectManifestVO);
} }
@@ -174,6 +174,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
@Autowired @Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService; private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
@Autowired
private IParamsCollectManifestUserTypeLogEOService paramsCollectManifestUserTypeLogEOService;
/** /**
* 保存 * 保存
@@ -6352,4 +6354,21 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
sqlJoinSb.append(" ) "); sqlJoinSb.append(" ) ");
} }
} }
@Override
public Result<?> batchEditDeadline(ParamsCollectManifestVO paramsCollectManifestVO) {
if (StringUtils.isEmpty(paramsCollectManifestVO.getIds())) {
throw new JeroBootException("参数不能为空!");
}
String paramsCollectManifestIds = paramsCollectManifestVO.getIds();
List<String> paramsCollectManifestIdList = Arrays.asList(paramsCollectManifestIds.split(",")).stream().distinct().collect(Collectors.toList());
LambdaUpdateWrapper<ParamsCollectManifestEO> manifestUpdateWrap = new LambdaUpdateWrapper<>();
manifestUpdateWrap.set(ParamsCollectManifestEO::getDeadline,paramsCollectManifestVO.getDeadline());
manifestUpdateWrap.in(ParamsCollectManifestEO::getId,paramsCollectManifestIdList);
this.update(manifestUpdateWrap);
return Result.OK("批量编辑截止时间成功!");
}
} }
@@ -56,11 +56,10 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
*/ */
@Override @Override
public void editById(ProjectTaskPlanning projectTaskPlanning) { public void editById(ProjectTaskPlanning projectTaskPlanning) {
Date now = new Date(); if (null != projectTaskPlanning && StringUtils.isNotEmpty(projectTaskPlanning.getId())) {
projectTaskPlanning.setUpdateTime(now); deleteById(projectTaskPlanning.getId());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); add(projectTaskPlanning);
projectTaskPlanning.setUpdateBy(sysUser.getUsername()); }
saveOrUpdate(projectTaskPlanning);
} }
/** /**
+1
View File
@@ -1383,4 +1383,5 @@ module.exports = {
beforedate:'In... Before date', beforedate:'In... Before date',
beforedatein:'In... Before date (inclusive)', beforedatein:'In... Before date (inclusive)',
inRecentMonthsin6:'Within 6 months (implemented)', inRecentMonthsin6:'Within 6 months (implemented)',
batchUpdateDeadline:'Batch update deadline',
} }
+1
View File
@@ -1484,4 +1484,5 @@ module.exports = {
beforedate:'在...日期之前', beforedate:'在...日期之前',
beforedatein:'在...日期之前(包含)', beforedatein:'在...日期之前(包含)',
inRecentMonthsin6:'近6个月内(已实施)', inRecentMonthsin6:'近6个月内(已实施)',
batchUpdateDeadline:'批量更新截止时间',
} }
@@ -161,7 +161,8 @@
{{$t('Updateparametercolumn')}} {{$t('Updateparametercolumn')}}
</div> </div>
<!-- 同步上报库 --> <!-- 同步上报库 -->
<div @click="handleSynchronousReportLibraryJurisdiction" class="operator-text-title" v-if='currentPersonRole == "homo"'> <div @click="handleSynchronousReportLibraryJurisdiction" class="operator-text-title"
v-if='currentPersonRole == "homo"'>
<a-icon type="sync"/> <a-icon type="sync"/>
{{$t('SynchronousReportLibrary')}} {{$t('SynchronousReportLibrary')}}
</div> </div>
@@ -175,11 +176,13 @@
<a-icon type="delete"/> <a-icon type="delete"/>
{{$t('BatchDelete')}} {{$t('BatchDelete')}}
</div> </div>
<div @click="bringInTheProjectInterfaceClick" class="operator-text-title" v-if='currentPersonRole == "homo"'> <div @click="bringInTheProjectInterfaceClick" class="operator-text-title"
v-if='currentPersonRole == "homo"'>
<a-icon type="user"/> <a-icon type="user"/>
{{$t('bringInTheProjectInterface')}} {{$t('bringInTheProjectInterface')}}
</div> </div>
<div @click="AdjustareasofresponsibilityClick" class="operator-text-title" v-if='currentPersonRole == "homo"'> <div @click="AdjustareasofresponsibilityClick" class="operator-text-title"
v-if='currentPersonRole == "homo"'>
<a-icon type="setting"/> <a-icon type="setting"/>
{{$t('Adjustareasofresponsibility')}} {{$t('Adjustareasofresponsibility')}}
</div> </div>
@@ -188,14 +191,21 @@
<a-icon type="copy"/> <a-icon type="copy"/>
{{$t('Assignedby')}} {{$t('Assignedby')}}
</div> </div>
<!-- 批量更新截止时间-->
<div @click="batchUpdateDeadlineClick" class="operator-text-title" v-if='currentPersonRole == "homo" '>
<a-icon type="profile"/>
{{$t('batchUpdateDeadline')}}
</div>
</template> </template>
<!-- @click='morepop'--> <!-- @click='morepop'-->
<div class="operator-text" style="position: relative " v-if='currentPersonRole == "homo" || currentPersonRole == "sdt"'> <div class="operator-text" style="position: relative "
v-if='currentPersonRole == "homo" || currentPersonRole == "sdt"'>
<span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }} <span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }}
</div> </div>
</a-popconfirm> </a-popconfirm>
<!-- 下发收集 --> <!-- 下发收集 -->
<div @click="distributionAndCollectionJurisdiction" class="operator-text" v-if='currentPersonRole == "homo"'> <div @click="distributionAndCollectionJurisdiction" class="operator-text"
v-if='currentPersonRole == "homo"'>
<a-icon type="solution"/> <a-icon type="solution"/>
{{$t('distributionAndCollection')}} {{$t('distributionAndCollection')}}
</div> </div>
@@ -233,7 +243,8 @@
</div> </div>
<!-- 导入--> <!-- 导入-->
<div class="operator-text" v-if='currentPersonRole == "dre"'> <div class="operator-text" v-if='currentPersonRole == "dre"'>
<ImportFileOnlyList :url="url" :isTrue="false" :accept="'.zip'" :paramsManifestId='this.$route.query.id' @getList='getList'/> <ImportFileOnlyList :url="url" :isTrue="false" :accept="'.zip'" :paramsManifestId='this.$route.query.id'
@getList='getList'/>
</div> </div>
<!-- 填写人导出--> <!-- 填写人导出-->
<div @click="handleExportDre" class="operator-text" <div @click="handleExportDre" class="operator-text"
@@ -325,7 +336,8 @@
<assigned-by-homo v-if='areaVisibleAssignedbyhomo' :selectedRowKeysArray='selectedRowKeysArray' <assigned-by-homo v-if='areaVisibleAssignedbyhomo' :selectedRowKeysArray='selectedRowKeysArray'
@GetgetTableList='GetgetTableList' @GetgetTableList='GetgetTableList'
@GetgetLoginUserType='GetgetLoginUserType' @GetgetLoginUserType='GetgetLoginUserType'
@areaVisibleAssignedbyflaghomo='areaVisibleAssignedbyflaghomo' @areaVisible='areaVisibleAssignedbyhomo = false'/> @areaVisibleAssignedbyflaghomo='areaVisibleAssignedbyflaghomo'
@areaVisible='areaVisibleAssignedbyhomo = false'/>
</a-modal> </a-modal>
<!-- 下发收集---> <!-- 下发收集--->
<!-- <a-modal v-model="areaVisibleTaskCutOffTime" :title="$t('distributionAndCollection')" width='400px' :footer="null">--> <!-- <a-modal v-model="areaVisibleTaskCutOffTime" :title="$t('distributionAndCollection')" width='400px' :footer="null">-->
@@ -444,7 +456,8 @@
<!-- 认证工程师-提示--> <!-- 认证工程师-提示-->
<div style='font-size: 18px;text-align: center' v-if='NoEngineer === 1'> <div style='font-size: 18px;text-align: center' v-if='NoEngineer === 1'>
{{ currentPersonRole =='homo'? $t('certifiedEngineer'): (currentPersonRole =='sdt'? {{ currentPersonRole =='homo'? $t('certifiedEngineer'): (currentPersonRole =='sdt'?
$t('engineeringInterfacePerson'): $t('completedBy')) }}{{jurisdiction === "homoQZTH"? $t('Datastateexcept') : $t('Datastatusis')}} $t('engineeringInterfacePerson'): $t('completedBy')) }}{{jurisdiction === 'homoQZTH'? $t('Datastateexcept')
: $t('Datastatusis')}}
<!-- 下发收集时--> <!-- 下发收集时-->
<span v-if='jurisdiction === "HOMOZFSJ"' class="text-wraning"> <span v-if='jurisdiction === "HOMOZFSJ"' class="text-wraning">
'{{$t('CollectionInitiated')}}'、'{{$t('ReturnedPerson')}}'{{$t('or')}}'{{$t('alteration')}}' '{{$t('CollectionInitiated')}}'、'{{$t('ReturnedPerson')}}'{{$t('or')}}'{{$t('alteration')}}'
@@ -506,6 +519,8 @@
</div> </div>
</a-modal> </a-modal>
<JLoading :loading="textLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading> <JLoading :loading="textLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
<batchUpdateDeadline ref="batchUpdateDeadlineRef" @batchUpdateDeadlineForm="batchUpdateDeadlineForm"/>
</div> </div>
</template> </template>
@@ -524,6 +539,7 @@
import AssignedBy from '@/components/AssignedBy/index' import AssignedBy from '@/components/AssignedBy/index'
import AssignedByHomo from '@/components/AssignedByHomo/index' import AssignedByHomo from '@/components/AssignedByHomo/index'
import ImportFileOnlyList from '@/components/ImportFileOnlyListtag/index' import ImportFileOnlyList from '@/components/ImportFileOnlyListtag/index'
import batchUpdateDeadline from './batchUpdateDeadline'
import axios from 'axios' import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types' import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue' import Vue from 'vue'
@@ -543,54 +559,55 @@
ReferenceParameter, ReferenceParameter,
SynchronousSubmissionLibrary, SynchronousSubmissionLibrary,
TaskTime, TaskTime,
globalAdvancedQuery globalAdvancedQuery,
batchUpdateDeadline
}, },
data() { data() {
this.statusList = [ this.statusList = [
{ {
value: '1', value: '1',
title: this.$t('CollectionInitiated'), title: this.$t('CollectionInitiated'),
key:'1', key: '1'
}, },
{ {
value: '2', value: '2',
title: this.$t('handledInterface'), title: this.$t('handledInterface'),
key:'2', key: '2'
}, },
{ {
value: '3', value: '3',
title: this.$t('ReturnedPerson'), title: this.$t('ReturnedPerson'),
key:'3', key: '3'
}, },
{ {
value: '4', value: '4',
title: this.$t('completed'), title: this.$t('completed'),
key:'4', key: '4'
}, },
{ {
value: '5', value: '5',
title: this.$t('Filledreturn'), title: this.$t('Filledreturn'),
key:'5', key: '5'
}, },
{ {
value: '6', value: '6',
title: this.$t('Submitted'), title: this.$t('Submitted'),
key:'6', key: '6'
}, },
{ {
value: '7', value: '7',
title: this.$t('ReturnedEngineer'), title: this.$t('ReturnedEngineer'),
key:'7', key: '7'
}, },
{ {
value: '8', value: '8',
title: this.$t('SynchronizedLibrary'), title: this.$t('SynchronizedLibrary'),
key:'8', key: '8'
}, },
{ {
value: '9', value: '9',
title: this.$t('alteration'), title: this.$t('alteration'),
key:'9', key: '9'
} }
] ]
return { return {
@@ -682,7 +699,7 @@
value: 'dre', value: 'dre',
text: this.$t('dre'), text: this.$t('dre'),
dictCode: 'dre'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框 dictCode: 'dre'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
}, }
], ],
selectedRowKeys: [], selectedRowKeys: [],
textLoading: false, textLoading: false,
@@ -757,7 +774,7 @@
NotSelectedNoEngineerValue: [], NotSelectedNoEngineerValue: [],
paramsManifest: {}, paramsManifest: {},
timeBatch: '', timeBatch: '',
timer:'', timer: ''
} }
}, },
props: { props: {
@@ -1789,7 +1806,8 @@
return return
} }
let _this = this let _this = this
let param = { ids: _array.join(','), let param = {
ids: _array.join(','),
currentPersonRole: this.currentPersonRole, currentPersonRole: this.currentPersonRole,
paramsManifestId: this.$route.query.id paramsManifestId: this.$route.query.id
} }
@@ -1913,7 +1931,16 @@
this.jurisdiction = 'SDTFPTXRHOMO' this.jurisdiction = 'SDTFPTXRHOMO'
} }
}, },
batchUpdateDeadlineClick() {
if (this.selectedRowKeysValue && this.selectedRowKeysValue.length > 0) {
this.$refs.batchUpdateDeadlineRef.getData(JSON.parse(JSON.stringify(this.selectedRowKeysValue)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
batchUpdateDeadlineForm() {
this.GetgetTableList()
},
// 分配填写人确定后弹框关闭 // 分配填写人确定后弹框关闭
areaVisibleAssignedbyflag(val) { areaVisibleAssignedbyflag(val) {
this.areaVisibleAssignedby = val this.areaVisibleAssignedby = val
@@ -2100,6 +2127,7 @@
cursor: pointer; cursor: pointer;
border-radius: 4px; border-radius: 4px;
} }
.operator-text-title { .operator-text-title {
cursor: pointer; cursor: pointer;
margin-right: 22px; margin-right: 22px;
@@ -2245,6 +2273,7 @@
} }
} }
} }
.text-wraning { .text-wraning {
word-break: break-word; word-break: break-word;
} }
@@ -0,0 +1,196 @@
<template>
<a-modal
:title="$t('batchUpdateDeadline')"
:width="500"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="visible = false"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('Deadline')">{{$t('Deadline')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'deadline'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('Deadline')"
:getCalendarContainer="(trigger) => trigger.parentNode"
format="YYYY-MM-DD"
v-model="formInline.deadline"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import moment from 'moment'
import { postAction, putAction, getAction } from '@/api/manage'
export default {
name: 'batchUpdateDeadline',
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
rules: {
deadline: [
{
required: true,
message: this.$t('Deadline') + this.$t('cannotEmpty'),
trigger: 'change'
}
]
},
idList: []
}
},
mounted() {
},
methods: {
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let query = {
ids: this.idList.join(','),
deadline: moment(this.formInline.deadline).format('YYYY-MM-DD HH:mm:ss')
}
this.confirmLoading = true
postAction('/params/collectManifest/batchEditDeadline', query).then((res) => {
if (res.success) {
this.visible = false
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.$emit('batchUpdateDeadlineForm')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
}
})
},
getData(data) {
this.idList = []
if (data && data.length > 0) {
data.forEach(res => {
this.idList.push(res.id)
})
this.visible = true
this.formInline = {}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
}
}
}
</script>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: 100%;
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
padding: 4px 30px 4px 11px;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 104px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.Required{
color: red;
}
</style>