Merge branch 'dev_20240116_OTA' into 'fix_20230911_UAT'

Dev 20240116 ota

See merge request laws-nio/laws-weilai!366
This commit is contained in:
高嵩
2024-01-17 10:00:47 +00:00
10 changed files with 237 additions and 27 deletions
@@ -43,6 +43,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -112,7 +114,14 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
queryWrapper.lambda().ge(ParamsTemplateEO::getUpdateTime,paramsTemplateEO.getUpdateTimeStart());
}
if(ObjectUtil.isNotEmpty(paramsTemplateEO.getUpdateTimeEnd())){
queryWrapper.lambda().le(ParamsTemplateEO::getUpdateTime,paramsTemplateEO.getUpdateTimeEnd());
try {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf1.format(paramsTemplateEO.getUpdateTimeEnd())+" 23:59:59";
queryWrapper.lambda().le(ParamsTemplateEO::getUpdateTime,sdf2.parse(format));
} catch (ParseException e) {
e.printStackTrace();
}
}
Page<ParamsTemplateEO> page = new Page<ParamsTemplateEO>(pageNo, pageSize);
IPage<ParamsTemplateEO> pageList = paramsTemplateEOService.page(page, queryWrapper);
@@ -57,15 +57,15 @@ public class ParamsTemplateEO implements Serializable {
private java.util.Date updateTime;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "最新变更时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "变更起始时间")
private java.util.Date updateTimeStart;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "最新变更时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "变更结束时间")
private java.util.Date updateTimeEnd;
/**所属部门*/
@@ -901,7 +901,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
manageApplyEO.setProjectVersionText("NA");
}
}else{
manageApplyEO.setProjectVersionText(collect.get(0).getCar() + "-" + collect.get(0).getYearName() + "-" + collect.get(0).getMarket());
manageApplyEO.setProjectVersionText(collect.get(0).getCar() + "-" + collect.get(0).getYearName() + "-" + collect.get(0).getMarket()+"-"+collect.get(0).getVersionNumber() );
}
}
}else{
@@ -9317,7 +9317,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl<Platf
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
//如果都是不涉及就不发待办
if (!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())
&& !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
|| !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId());
@@ -19,6 +19,7 @@ import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.vo.ProjectTaskUrgVo;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -587,4 +588,12 @@ public class ProjectLawsInventoryEOController extends JeroController<ProjectLaws
List<ProjectLawsInventoryEO> list = projectLawsInventoryEOService.queryPlatformList(lawsInventoryId,flowFlag,cut);
return Result.OK(list);
}
@AutoLog(value = "法规意见收集-评估人")
@ApiOperation(value="法规意见收集-评估人", notes="法规意见收集-评估人")
@GetMapping(value = "/getEvaluatorList")
public Result<List<SysUser>> getEvaluatorList(String documentId) {
List<SysUser> userList = projectLawsInventoryEOService.getEvaluatorList(documentId);
return Result.OK(userList);
}
}
@@ -14,6 +14,7 @@ import com.jero.modules.project.vo.ProjectTaskUrgVo;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import org.springframework.web.multipart.MultipartFile;
@@ -353,4 +354,6 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
int checkUserRole(String projectLibraryId, String currentUserId, String lawsInventoryId);
List<ProjectLawsInventoryEO> queryPlatformList(String lawsInventoryId,String flowFlag,String cut);
List<SysUser> getEvaluatorList(String documentId);
}
@@ -9495,7 +9495,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
//如果都是不涉及就不发待办
if (!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())
&& !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
|| !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId());
@@ -13139,5 +13139,70 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
return projectLawsInventoryEOList;
}
/**
*
* @param documentId 文档库id
* @return
*/
@Override
public List<SysUser> getEvaluatorList(String documentId) {
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ProjectLawsInventoryEO::getStandId,documentId);
List<ProjectLawsInventoryEO> lawsInventoryEOList = this.list(wrapper);
//dutyTerritory
if(ObjectUtils.isEmpty(lawsInventoryEOList)){
return new ArrayList<>();
}
List<String> userIdList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : lawsInventoryEOList) {
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
//每条下的相关责任名单
List<ProjectRelatedPersonnel> personnelList = projectRelatedPersonnelService.getPersonnelList(projectLawsInventoryEO.getProjectLibraryId(),null,null, null, null, null, null, null, null);
if(ObjectUtils.isNotEmpty(personnelList) && StringUtils.isNotBlank(dutyTerritory)){
//通过每条法规清单的责任领域去过滤相关人员名单
personnelList = personnelList.stream().filter(e->dutyTerritory.contains(e.getDutyTerritory())).collect(Collectors.toList());
//lawEngineer engineeringInterfacePerson engineerLawSet engineerAttSet
List<String> collect1 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getLawEngineer())).map(ProjectRelatedPersonnel::getLawEngineer).collect(Collectors.toList());
List<String> collect2 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineeringInterfacePerson())).map(ProjectRelatedPersonnel::getEngineeringInterfacePerson).collect(Collectors.toList());
List<String> collect3 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineerLawSet())).map(ProjectRelatedPersonnel::getEngineerLawSet).collect(Collectors.toList());
List<String> collect4 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineerAttSet())).map(ProjectRelatedPersonnel::getEngineerAttSet).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect1)){
for (String s : collect1) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
if(ObjectUtils.isNotEmpty(collect2)){
for (String s : collect2) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
if(ObjectUtils.isNotEmpty(collect3)){
for (String s : collect3) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
if(ObjectUtils.isNotEmpty(collect4)){
for (String s : collect4) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
}
}
List<SysUser> sysUserList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(userIdList)) {
userIdList = userIdList.stream().distinct().collect(Collectors.toList());
sysUserList = sysUserService.querySysUserListByIdList(userIdList);
//排序
Collator comparator = Collator.getInstance(Locale.CHINESE);
Collections.sort(sysUserList, (e1, e2) -> {
String e1Username = StringUtils.isNotBlank(e1.getUsername()) ? e1.getUsername() : "";
String e2Username = StringUtils.isNotBlank(e2.getUsername()) ? e2.getUsername() : "";
return comparator.compare(e1Username, e2Username);
});
}
return sysUserList;
}
}
@@ -371,6 +371,56 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
return result;
}
public List<ProjectRelatedPersonnel> getPersonnelList(String projectId,
String dutyTerritoryTemp,
String lawEngineer,
String engineeringInterfacePerson,
String engineerLawSet,String engineerAttSet,
String firstLevelDutyTerritory,
String orderBy,
String orderByField) {
//查询数据
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
// certificationEngineer
engineerLawSet,
engineerAttSet);
//查询数据里的责任领域
List<String> dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList());
//查标签内容里的责任领域数据
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//没有数据->新增所有责任领域,查询
if(StringUtils.isBlank(dutyTerritoryTemp)
&& StringUtils.isBlank(lawEngineer)
&& StringUtils.isBlank(engineeringInterfacePerson)
// && StringUtils.isBlank(certificationEngineer)
&& StringUtils.isBlank(engineerLawSet)
&& StringUtils.isBlank(engineerLawSet)){
if(result.size() != sysDictItemValueList.size()){
//更新相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
if(!dutyTerritory.contains(sysDictItemValue)) {
setDutyTerritoryValue(sysDictItemValue, projectId);
}
}
}
//重新查询列表
result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
engineerLawSet,
engineerAttSet);
}
}
return result;
}
private void hearSort(String orderBy, String orderByField, List<ProjectRelatedPersonnel> result) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
@@ -60,13 +60,26 @@
<span class="Required">*</span>
<span class="title-text-text" :title="$t('Assessor')">{{$t('Assessor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="evaluatorIdsName">
<PersonnelSelection class="box-input"
:personneQuery="formInline"
:query="{db_field_name:'evaluatorIds',db_field_txt:$t('Assessor')}"
:isInput="true"
@change="PersonnelSelectionChange"
v-model="formInline.evaluatorIdsName"/>
<!-- <a-form-model-item class="itemModel" prop="evaluatorIdsName">-->
<!-- <PersonnelSelection class="box-input"-->
<!-- :personneQuery="formInline"-->
<!-- :query="{db_field_name:'evaluatorIds',db_field_txt:$t('Assessor')}"-->
<!-- :isInput="true"-->
<!-- @change="PersonnelSelectionChange"-->
<!-- v-model="formInline.evaluatorIdsName"/>-->
<!-- </a-form-model-item>-->
<a-form-model-item class="itemModel" prop="evaluatorIds">
<a-select
mode="multiple"
class="box-input"
:value="evaluatorIds"
@change='evaluatorIdsChange'
:placeholder="$t('PleaseSelect')+$t('Assessor')"
>
<a-select-option v-for="i in evaluatorIdsNameOptions" :key="i.id">
{{ i.username }}
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
@@ -150,13 +163,25 @@
PersonnelSelection
},
mixins:[ResizeHeader, ResizeColumnProvide],
computed: {
evaluatorIds () {
if (this.formInline.evaluatorIds && this.formInline.evaluatorIds instanceof Array) {
return this.formInline.evaluatorIds
}
if (this.formInline.evaluatorIds && typeof(this.formInline.evaluatorIds)==='string') {
return this.formInline.evaluatorIds.split(',')
}
return []
}
},
data() {
return {
title: this.$t('regulationEngineerInitiateProcess'),
//url传参严格按照当前命名
url: {
seachList: 'document/bussDocumentLibraryEO/queryCondition', //搜索字段
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy'
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy',
getEvaluatorList: '/project/projectLawsInventoryEO/getEvaluatorList',
},
loading: false,
JLoading: false,
@@ -181,6 +206,13 @@
trigger: 'change'
}
],
evaluatorIds: [
{
required: true,
message: this.$t('Assessor') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
brands: [
{
required: true,
@@ -243,7 +275,8 @@
width: 150,
dataIndex: 'corresponding_standard'
}
]
],
evaluatorIdsNameOptions: [],
}
},
mounted() {
@@ -262,6 +295,21 @@
},
methods: {
...mapGetters(['userInfo']),
evaluatorIdsChange (val) {
this.formInline.evaluatorIds = val
},
getEvaluatorList () {
this.$set(this.formInline, 'evaluatorIds', [])
if (this.selectedRowKeysRecord.length === 0) {
return this.evaluatorIdsNameOptions = []
}
const query = { documentId: this.selectedRowKeysRecord[0].id }
getAction(this.url.getEvaluatorList, query).then((res) => {
if (res.success) {
this.evaluatorIdsNameOptions = res.result
}
})
},
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
@@ -302,6 +350,7 @@
return res.id == this.selectedRowKeys[0]
})
this.selectedRowKeysRecord = [...this.selectedRowKeysRecord]
this.getEvaluatorList()
},
clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc()
@@ -23,6 +23,18 @@
:triggerChange="false" :dictCode="'region'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('updated')">
<span>{{$t('updated')}}</span>
</div>
<a-range-picker
class="box-input"
v-model="updateTime"
format='YYYY-MM-DD'
@change="onChangeUpdateTime" ></a-range-picker>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button class="box-button" @click="searchReset">{{$t('reset')}}</a-button>
@@ -256,14 +268,14 @@
ellipsis: true,
dataIndex: 'maintainerName'
},
{
title: this.$t('created'),
align: 'left',
dataIndex: 'createTime',
width: 200,
sorter: true,
ellipsis: true
},
// {
// title: this.$t('created'),
// align: 'left',
// dataIndex: 'createTime',
// width: 200,
// sorter: true,
// ellipsis: true
// },
{
title: this.$t('updated'),
align: 'left',
@@ -281,6 +293,7 @@
}
],
queryParam: {},
updateTime: [],
areaVisible: false,
paramsTemplateName: ''
}
@@ -290,6 +303,17 @@
},
methods: {
...mapGetters(['userInfo']),
onChangeUpdateTime(values) {
if (!values || values.length === 0) {
this.queryParam.updateTimeStart = ''
this.queryParam.updateTimeEnd = ''
return
}
let StartTime = values[0].format('YYYY-MM-DD')
let EndTime = values[1].format('YYYY-MM-DD')
this.queryParam.updateTimeStart = StartTime
this.queryParam.updateTimeEnd = EndTime
},
subscribeClick(val) {
let _this = this
this.$confirm({
@@ -540,6 +564,7 @@
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.updateTime = []
this.getList()
},
pageOnChange(page, pageSize) {