Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

This commit is contained in:
高嵩
2023-03-23 15:51:35 +08:00
9 changed files with 570 additions and 615 deletions
@@ -24,6 +24,7 @@ import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -109,7 +110,7 @@ public class TaskAffirmJob implements Job {
List<String> userIdList = Arrays.asList(designDutyId.split(","));
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList);
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList, FlowTypeEnum.SJFHXSHLC.getValue());
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
@@ -187,7 +188,7 @@ public class TaskAffirmJob implements Job {
List<String> userIdList = Arrays.asList(verifyDutyId.split(","));
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList);
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList,FlowTypeEnum.YZFHXSCLC.getValue());
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
@@ -482,7 +483,7 @@ public class TaskAffirmJob implements Job {
log.info("任务确认流程,定时任务结束 =====================================================");
}
private Map<String, Object> disposeSendMsgDataList(List<ProjectLawsInventoryEO> projectLawsInventoryEOList) {
private Map<String, Object> disposeSendMsgDataList(List<ProjectLawsInventoryEO> projectLawsInventoryEOList,String flowType) {
Map<String,Object> result = new HashMap<>();
Date currentDate = new Date();
String currentDateStr = sdf.format(currentDate);
@@ -498,9 +499,17 @@ public class TaskAffirmJob implements Job {
List<ProjectLawsInventoryEO> currentDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
//结束日期是当前日期
if(data.getInventoryAffirmDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate()))) {
flag = true;
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
if(data.getDesignDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate()))) {
flag = true;
}
}
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
}
return flag;
@@ -509,9 +518,17 @@ public class TaskAffirmJob implements Job {
// 三天后结束的
List<ProjectLawsInventoryEO> threeDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getInventoryAffirmDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getInventoryAffirmDueDate()))) {
flag = true;
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
if(data.getDesignDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getDesignDueDate()))) {
flag = true;
}
}
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
}
return flag;
@@ -521,8 +538,14 @@ public class TaskAffirmJob implements Job {
List<ProjectLawsInventoryEO> overdueList = projectLawsInventoryEOList.stream().filter(data -> {
// 只要早于当前日期都算逾期 不算当天。
boolean flag = false;
if(data.getInventoryAffirmDueDate() != null){
flag = (data.getInventoryAffirmDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate())));
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
if(data.getDesignDueDate() != null){
flag = (data.getDesignDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate())));
}
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
if(data.getVerifyDueDate() != null){
flag = (data.getVerifyDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate())));
}
}
return flag;
}).collect(Collectors.toList());
@@ -77,12 +77,9 @@ public class designComplianceJob implements Job {
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("设计符合性确认流程,定时任务开启 =====================================================");
// 查询出 任务待确认、结果待提交的数据
List<String> designFlowStatusList = new ArrayList<>();
designFlowStatusList.add(ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
designFlowStatusList.add(ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
// 查询出 结果待提交的数据
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
lawsInventoryEOQueryWrap.lambda().in(ProjectLawsInventoryEO::getDesignFlowStatus,designFlowStatusList);
lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getDesignFlowStatus,ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap);
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
// 根据项目进行分组
@@ -94,7 +91,6 @@ public class designComplianceJob implements Job {
continue;
}
// 设计符合性
Map<String, List<ProjectLawsInventoryEO>> lawsInventoryByDesignDutyIdGroupMap = lawsInventoryListByProjectLibraryId.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getDesignDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> lawsInventoryByDesignDutyIdGroup : lawsInventoryByDesignDutyIdGroupMap.entrySet()) {
String designDutyId = lawsInventoryByDesignDutyIdGroup.getKey();
@@ -107,27 +103,46 @@ public class designComplianceJob implements Job {
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList);
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
if(CollectionUtils.isNotEmpty(threeDaysList)){
Date designDueDate = threeDaysList.get(0).getDesignDueDate();
// 十四天后结束的
List<ProjectLawsInventoryEO> fourteenDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("fourteenDaysList");
if(CollectionUtils.isNotEmpty(fourteenDaysList)){
Date designDueDate = fourteenDaysList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = threeDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给法规工程师发消息
String serialNumbers = fourteenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务距离截止日期仅剩3天,请及时查看处理。");
params.put("contentEn","Hello! This task will expire in 3 days. Please check and address it in a timely manner. Thank you!");
params.put("contentCn","您好,您的任务将于14天后结束,请及时查看处理。");
params.put("contentEn","Hello! Your task will end in 14 days. Please check and address it in a timely manner. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","设计符合性流程");
params.put("flowTypeEn","Design Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 七天后结束的
List<ProjectLawsInventoryEO> sevenDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("sevenDaysList");
if(CollectionUtils.isNotEmpty(sevenDaysList)){
Date designDueDate = sevenDaysList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = sevenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,您的任务将于7天后结束,请及时查看处理。");
params.put("contentEn","Hello! Your task will end in 7 days. Please check and address it in a timely manner. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 当天结束的
List<ProjectLawsInventoryEO> currentDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("currentDaysList");
if(CollectionUtils.isNotEmpty(currentDaysList)){
@@ -139,15 +154,13 @@ public class designComplianceJob implements Job {
String serialNumbers = currentDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给法规工程师发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务已到截止日期,请尽快查看处理。");
params.put("contentEn","Hello! This task will expire today. Please check and address it ASAP. Thank you!");
params.put("contentCn","您好,您的任务将于今天到期,请尽快查看处理。");
params.put("contentEn","Hello! Your task will expire today. Please check and address it ASAP. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","设计符合性流程");
params.put("flowTypeEn","Design Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 逾期的
List<ProjectLawsInventoryEO> overdueList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("overdueList");
@@ -160,15 +173,13 @@ public class designComplianceJob implements Job {
String serialNumbers = overdueList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给法规工程师发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务已逾期,请尽快处理。");
params.put("contentEn","Hello! This task is overdue. Please address it ASAP. Thank you!");
params.put("contentCn","您好,您的任务已逾期,请尽快查看处理。");
params.put("contentEn","Hello! Your task is overdue. Please check and address it ASAP. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","设计符合性流程");
params.put("flowTypeEn","Design Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION5.getValue(),params);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION3.getValue(),params);
}
}
}
@@ -516,7 +527,7 @@ public class designComplianceJob implements Job {
}).collect(Collectors.toList());
// 七天后结束的
List<ProjectLawsInventoryEO> threeDaysList = projectLawsInventoryEOList.stream().filter(data -> {
List<ProjectLawsInventoryEO> sevenDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getDesignDueDate() != null){
if (StringUtils.equals(sevenDaysStr, sdf.format(data.getDesignDueDate()))) {
@@ -538,19 +549,35 @@ public class designComplianceJob implements Job {
return flag;
}).collect(Collectors.toList());
// 逾期的
// 逾期的 3天 7天 14天
List<ProjectLawsInventoryEO> overdueList = projectLawsInventoryEOList.stream().filter(data -> {
// 只要早于当前日期都算逾期 不算当天。
boolean flag = false;
if(data.getDesignDueDate() != null){
flag = (data.getDesignDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate())));
}
Calendar day3Later = new GregorianCalendar();
day3Later.setTime(data.getDesignDueDate());
day3Later.add(Calendar.DATE, 3);
Date overdue3Days = day3Later.getTime();
Calendar day7Later = new GregorianCalendar();
day7Later.setTime(data.getDesignDueDate());
day7Later.add(Calendar.DATE, 7);
Date overdue7Days = day7Later.getTime();
Calendar day14Later = new GregorianCalendar();
day14Later.setTime(data.getDesignDueDate());
day14Later.add(Calendar.DATE, 14);
Date overdue14Days = day14Later.getTime();
boolean flag = (
StringUtils.equals(sdf.format(overdue3Days), sdf.format(currentDate))
|| StringUtils.equals(sdf.format(overdue7Days), sdf.format(currentDate))
|| StringUtils.equals(sdf.format(overdue14Days), sdf.format(currentDate))
);
return flag;
}).collect(Collectors.toList());
result.put("currentDaysList",currentDaysList);
result.put("threeDaysList",threeDaysList);
result.put("sevenDaysList",sevenDaysList);
result.put("overdueList",overdueList);
result.put("fourteenDaysList",fourteenDaysList);
return result;
}
}
@@ -280,10 +280,10 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.CERTIFICATION_SUBMISSION.getValue());
}
certificationSubmissionVo.setTime(projectTaskPlanning.getVerifyDeadline());
if(projectTaskPlanning.getVerifyDeadline().after(trueNow)){
certificationSubmissionVo.setTime(projectTaskPlanning.getCertificationSubmission());
if(projectTaskPlanning.getCertificationSubmission().after(trueNow)){
certificationSubmissionVo.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
}else if(projectTaskPlanning.getVerifyDeadline().before(trueNow)){
}else if(projectTaskPlanning.getCertificationSubmission().before(trueNow)){
certificationSubmissionVo.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
}else{
certificationSubmissionVo.setStatus(PlanStatusEnum.ON_GOING.getValue());
@@ -487,7 +487,7 @@
<a-select allowClear
:placeholder="$t('pleaseSelect')+$t('expeditionProcess')"
mode="multiple"
v-model="formInlineQuestion.questionStatus">
v-model="formInlineQuestion.expeditingType">
<a-select-option :value="item.value" v-for="item in questionList">
<span class="itemOption-index" :title="item.name">
{{ item.name }}
@@ -559,7 +559,7 @@
roleSwitchingList: [],
formInlineQuestion: {},
rulesRoleQuestion: {
questionStatus: [
expeditingType: [
{
required: true,
message: this.$t('expeditionProcess') + this.$t('cannotEmpty'),
@@ -569,11 +569,11 @@
},
questionList: [
{
value: '1',
value: 'lawsInventoryDesignExpediting',
name: this.$t('designComplianceProcess')
},
{
value: '2',
value: 'lawsInventoryVerifyExpediting',
name: this.$t('validationComplianceProcess')
}
],
@@ -1524,13 +1524,13 @@
handleOkQuestion() {
this.$refs.ruleFormQuestion.validate(valid => {
let formInlineQuestion = JSON.parse(JSON.stringify(this.formInlineQuestion))
if (formInlineQuestion.questionStatus && formInlineQuestion.questionStatus.length > 0) {
formInlineQuestion.questionStatus = formInlineQuestion.questionStatus.join(',')
if (formInlineQuestion.expeditingType && formInlineQuestion.expeditingType.length > 0) {
formInlineQuestion.expeditingType = formInlineQuestion.expeditingType.join(',')
}
let query = {
ids: this.questionIdList.join(','),
projectLibraryId: this.$route.query.id,
questionStatus: formInlineQuestion.questionStatus
expeditingType: formInlineQuestion.expeditingType
}
this.confirmLoadingQuestion = true
postAction('project/projectLawsInventoryEO/expediting', query).then((res) => {
@@ -326,14 +326,14 @@
{
align: 'left',
slots: { title: 'projectInterfacePersonRegulationEngineerSetting' },
dataIndex: 'engineeringInterfacePersonName',
dataIndex: 'engineerLawSetName',
ellipsis: true,
width: 203
},
{
align: 'left',
slots: { title: 'projectInterfacePersonCertificationEngineerSetting' },
dataIndex: 'engineeringInterfacePersonName',
dataIndex: 'engineerAttSetName',
ellipsis: true,
width: 203
},
@@ -50,9 +50,6 @@
</template>
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
@@ -103,14 +100,10 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'codeNumber',
components: {
globalAdvancedQuery
},
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
@@ -184,7 +177,6 @@ export default {
pageNo: 1,
pageSize: 10,
total: 0,
fieldList: [],
queryParamQuery: {},
queryConditionVOList: []
}
@@ -202,7 +194,6 @@ export default {
this.selectedRowKeys = []
this.queryConditionVOList = []
this.replacePage()
this.queryConditionInventory()
},
// number() {
// this.regulation = ''
@@ -214,9 +205,6 @@ export default {
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.replacePage()
},
onChange(page, pageSize) {
@@ -228,18 +216,6 @@ export default {
this.pageSize = pageSize
this.replacePage()
},
queryConditionInventory() {
let query = {
flag: 1
}
getAction(this.url.queryConditionInventory, query).then((res) => {
if (res.success) {
this.fieldList = res.result || []
} else {
this.fieldList = []
}
})
},
replacePage() {
let queryConditionVOList = JSON.parse(JSON.stringify(this.queryConditionVOList))
let query = {
@@ -268,20 +244,6 @@ export default {
handleCancel() {
this.visible = false
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
this.queryConditionVOList = params
this.queryConditionVOList.forEach(res => {
res.type = matchType
})
}
this.replacePage()
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
@@ -56,7 +56,7 @@
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</a-drawer>
</template>
@@ -144,6 +144,9 @@ export default {
// this.loading = false
// }
// })
},
handleSubmit(){
},
onSelectChange(value) {
this.selectedRowKeys = value
@@ -48,7 +48,7 @@
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
rowKey="id"
:data-source="dataSource"
:columns="columns"
@@ -67,7 +67,7 @@
<a class="text-operation"
v-has="'dummyInventoryBase:issue'"
@click="withdraw(record)">
{{record.state == 2 ? $t('release') : $t('withdraw')}}
{{!record.state || record.state == 2 ? $t('release') : $t('withdraw')}}
</a>
<!-- v-if="record.createBy == userData.username || administrators"-->
<a class="text-operation" :disabled="record.state == 1?true:false"
@@ -309,7 +309,7 @@ export default {
withdraw(val) {
let item = {}
let content = ''
if (val.state == 2) {
if (!val.state || val.state == 2) {
content = this.$t('confirmRelease')
item.state = 1
} else {