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

This commit is contained in:
zyx.net
2022-08-12 16:09:19 +08:00
14 changed files with 174 additions and 52 deletions
@@ -51,7 +51,7 @@ public class PPEmployee {
private String data_provider; // 第三方数据提供商
private String extension_attribute1; // O365标签
private String working_hour; // 工作制
private String domain; // 账号所属域
private String domain; // 账号所属域 美国-amer
private String ad_failed; // 创建ad失败原账号
private String have_employees; // 是否有下属员工
private String id; // id ----id
@@ -227,7 +227,7 @@ public class SyncDataServiceImpl implements ISyncDataService{
JSONObject resultJsonEU = (JSONObject) myJsonEU.get("data");
//将第一页的账户信息转换为本地dto集合
List<JSONObject> userListEU = JSONObject.parseArray(resultJsonEU.get("list").toString(), JSONObject.class);
List<PPEmployee> currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EN");
List<PPEmployee> currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EU");
ppEmployeeList.addAll(currentPPEmployeeListEU);
//获取总记录数
@@ -246,7 +246,7 @@ public class SyncDataServiceImpl implements ISyncDataService{
log.debug("【欧洲】打印输出本次同步信息返回结果:"+myJsonEU.get("data").toString());
resultJsonEU = (JSONObject) myJsonEU.get("data");
userListEU = JSONObject.parseArray(resultJsonEU.get("list").toString(), JSONObject.class);
currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EN");
currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EU");
ppEmployeeList.addAll(currentPPEmployeeListEU);
}
}
@@ -213,6 +213,16 @@ public class FeishuServiceImpl implements IFeishuService {
contentSb.append("}");
contentSb.append("}");
}
if (StrUtil.isNotEmpty(feishuMsgVo.getAssignee())){
contentSb.append(",");
contentSb.append("{");
contentSb.append("\"is_short\": false,");
contentSb.append("\"text\": {");
contentSb.append("\"content\": \"**Assignee** " + feishuMsgVo.getAssignee() + "\",");
contentSb.append("\"tag\": \"lark_md\"");
contentSb.append("}");
contentSb.append("}");
}
if (StrUtil.isNotEmpty(feishuMsgVo.getDueDate())){
contentSb.append(",");
contentSb.append("{");
@@ -24,5 +24,7 @@ public class FeishuMsgVo {
private String url; //回调的网址
private String assignee; //评估人 适用范围:责任人提交通知发起人(设计符合性,pre-homo符合性,验证符合性)
}
@@ -2273,10 +2273,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
taskType = "Design Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getDesignInitiatorId())
);
initiatorLark = initiatorLarkInfo.getUsername();
feishuMsgVo.setAssignee(sysUser.getUsername());
// SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
// new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getDesignInitiatorId())
// );
// initiatorLark = initiatorLarkInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String prehomoInitiatorId = jsonObject.getString("prehomoInitiatorId"); //pre-Home发起人id
userIdList.add(prehomoInitiatorId);
@@ -2291,10 +2292,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
taskType = "Pre-Homo Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getPrehomoInitiatorId())
);
initiatorLark = initiatorLarkInfo.getUsername();
feishuMsgVo.setAssignee(sysUser.getUsername());
// SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
// new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getPrehomoInitiatorId())
// );
// initiatorLark = initiatorLarkInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String verifyInitiatorId = jsonObject.getString("verifyInitiatorId"); //验证符合性发起人id
userIdList.add(verifyInitiatorId);
@@ -2309,10 +2311,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
taskType = "Validation Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getVerifyInitiatorId())
);
initiatorLark = initiatorLarkInfo.getUsername();
feishuMsgVo.setAssignee(sysUser.getUsername());
// SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
// new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getVerifyInitiatorId())
// );
// initiatorLark = initiatorLarkInfo.getUsername();
}else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_INITIATOR_ACCEPTED_MSG.getValue())){
String designDutyId = jsonObject.getString("designDutyId"); //设计符合性责任人id
userIdList.add(designDutyId);
@@ -142,6 +142,10 @@ public class ExcelUtil {
if(ObjectUtil.isNull(cell)) {
continue;
}
// 判断单元格类型,非文本单元格不处理
if(! (org.apache.poi.ss.usermodel.Cell.CELL_TYPE_STRING == cell.getCellType())) {
continue;
}
String cellValue = cell.getStringCellValue();
@@ -115,6 +115,7 @@
},
handleCancel() {
this.visible = false
this.$emit('classificationMaintenanceModelForm')
},
onChange(page, pageSize) {
this.pageNo = page
@@ -47,6 +47,7 @@
<div class="page">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
:pageSizeOptions="['12','24','36','48','60']"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
@@ -70,7 +71,7 @@
queryParam: {},
conList: [],
applyMarketList: [],
pageSize: 10,
pageSize: 12,
total: 0,
pageNo: 1,
loading: false,
@@ -298,10 +298,13 @@
}
})
},
viewClick() {
viewClick(row) {
let newUrl = this.$router.resolve({
path: '/countryCardView',
query: {}
query: {
applyMarket: row.applyMarket,
id: row.id
}
})
window.open(newUrl.href, '_blank')
},
@@ -6,7 +6,7 @@
<span style="line-height: 66px;display: inline-block;float: left">
<a-icon type="arrow-left" style="margin-right: 6px;"/>
</span>
{{$t('See')}}
{{header_text}}
</div>
</div>
<div style="padding-top: 68px;background: #fff">
@@ -26,7 +26,7 @@
<div style="width: 100%" v-for="(item1,index) in contentList" class="content-box-top">
<div v-for="(item2,index2) in item1.list" style="width: 340px;display: inline-block"
class="content-box-left">
<div class="content-box-box-top" v-if="index == 0">
<div class="content-box-box-top" style="cursor: default" v-if="index == 0">
<img class="content-box-box-img" style="display: inline-block;width: auto" v-if="index2 == 0">
<img :src="item2.img" v-else class="content-box-box-img" alt="">
<span v-if="index2 == 0" class="content-box-box-text"></span>
@@ -36,15 +36,28 @@
</div>
<div class="content-box-box" v-else>
<a v-if="index2 == 0 && item2.relevantUrl"
style="color: rgb(33, 201, 204)"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}"
class="content-box-box-text content-box-box-text-index"
:href="item2.relevantUrl" target="_blank">{{item2.lableName}}</a>
<span style="color: #21c9cc"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}"
class="content-box-box-text content-box-box-text-index"
@click="viewFileClick(item2.lableName)"
v-if="item2.lableType == 7 && item2.lableName && index2 != 0">
v-else-if="item2.lableType == 7 && item2.lableName && index2 != 0">
{{$t('viewFile')}}
</span>
<span class="content-box-box-text content-box-box-text-index"
v-else-if="item2.lableType != 7 && !item2.lableName && index2 != 0"
style="cursor: default"
:title="item2.lableName"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}">
{{item2.lableName}}
</span>
<span class="content-box-box-text content-box-box-text-index"
v-else
style="cursor: default"
:title="item2.lableName"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}">
{{item2.lableName}}
@@ -94,6 +107,7 @@
queryCountryList: [],
countryCardViewList: [],
applyMarkets: '',
header_text: '',
url: {
list: '/problemKnowledgeBase/countryCardTempEO/list',
deleteOne: ''
@@ -138,6 +152,9 @@
this.displayList.forEach(val => {
val.showOrNot = true
})
this.$nextTick(() => {
this.$refs.displayInformationModelRef.dataListOne = JSON.parse(JSON.stringify(this.displayList))
})
this.consolidateData()
this.loading = false
} else {
@@ -169,12 +186,14 @@
})
}
if (content && content.length > 0) {
console.log(content)
content.forEach((res, index) => {
this.contentList[index + 1] = { name: res.lableName }
this.contentList[index + 1].list = []
this.contentList[index + 1].list.push({
lableName: res.lableName,
lableType: res.lableType
lableType: res.lableType,
relevantUrl: res.relevantUrl
})
})
}
@@ -215,6 +234,11 @@
this.clientWidth = 340 * (this.queryCountryList.length + 1) + 'px'
this.isTrue = true
})
let content = []
this.queryCountryList.forEach(val => {
content.push(val.applyMarket_dictText)
})
this.header_text = content.join('-')
callback && callback()
if (!callback) {
this.consolidateData()
@@ -9,6 +9,27 @@
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8" style="line-height: 48px">
<div class="box-title-text">
<div class="title-text" :title="$t('LabelName')">
<span>{{$t('LabelName')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('LabelName')"
v-model="queryParam.labelName"></a-input>
</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" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div style="margin-bottom: 60px">
<a-table
v-if="this.visible"
@@ -42,9 +63,11 @@
list: '/problemKnowledgeBase/countryCardTempEO/list',
deleteOne: ''
},
queryParam: {},
visible: false,
selectedRowKeys: [],
dataList: [],
dataListOne: [],
loading: false,
confirmLoading: false,
columns: [
@@ -67,10 +90,24 @@
mounted() {
},
methods: {
searchQuery() {
if (this.queryParam.labelName) {
this.dataList = this.dataList.filter(res => {
return res.lableName.includes(this.queryParam.labelName)
})
this.dataList = [...this.dataList]
}
},
searchReset() {
this.queryParam = {}
this.dataList = JSON.parse(JSON.stringify(this.dataListOne))
this.dataList = [...this.dataList]
},
getData(data) {
this.visible = true
this.$nextTick(() => {
this.dataList = data
this.queryParam = {}
this.dataList = JSON.parse(JSON.stringify(data))
this.dataList = [...this.dataList]
})
},
@@ -78,11 +115,16 @@
this.visible = false
},
handleSubmit() {
this.$emit('displayInformationModelForm', this.dataList)
this.$emit('displayInformationModelForm', this.dataListOne)
this.visible = false
},
onCheckAllChange(index) {
this.dataList[index].showOrNot = !this.dataList[index].showOrNot
this.dataListOne.forEach(res => {
if (res.id == this.dataList[index].id) {
res.showOrNot = !res.showOrNot
}
})
}
}
}
@@ -107,18 +149,41 @@
border-radius: 0 0 2px 2px;
}
.box-title {
width: 100%;
text-align: right;
margin-bottom: 20px;
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.operator-text {
cursor: pointer;
margin-right: 13px;
font-size: 14px;
font-weight: 400;
color: #040B29;
.title-text {
width: 20%;
min-width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.text-operation {
margin-right: 8px;
}
</style>
@@ -59,7 +59,7 @@
<a-form-model-item class="itemModel" prop="title">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.title"
v-model.trim="formInline.title"
:placeholder="$t('PleaseEnter')+$t('title')"/>
</a-form-model-item>
</div>
@@ -573,6 +573,7 @@
.box-button {
height: 38px;
margin-top: 4px;
}
.submit-button {
@@ -1,15 +1,17 @@
<template>
<div class="box">
<div class="search-detail-wrap">
<div class="box-title-text">
<div class="title-text" :title="$t('searchContent')">
<span>{{$t('searchContent')}}</span>
<a-form layout="inline" @keyup.enter.native="onSearch">
<div class="box-title-text">
<div class="title-text" :title="$t('searchContent')">
<span>{{$t('searchContent')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div>
</a-form>
</div>
<div class="box-content">
<div class="box-content-left">
@@ -75,7 +77,8 @@
/>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
<classificationMaintenanceModel ref="classificationMaintenanceModelRef"/>
<classificationMaintenanceModel @classificationMaintenanceModelForm="classificationMaintenanceModelForm"
ref="classificationMaintenanceModelRef"/>
</div>
</template>
@@ -120,6 +123,9 @@
}
})
},
classificationMaintenanceModelForm(){
this.replacePage()
},
onSearch() {
this.pageNo = 1
this.getList()
@@ -12,15 +12,17 @@
<div style="padding-top: 68px;background: #fff">
<div class="detail-content" style="padding: 30px">
<div class="search-detail-wrap">
<div class="box-title-text">
<div class="title-text" :title="$t('searchContent')">
<span>{{$t('searchContent')}}</span>
<a-form layout="inline" @keyup.enter.native="onSearch">
<div class="box-title-text">
<div class="title-text" :title="$t('searchContent')">
<span>{{$t('searchContent')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div>
</a-form>
</div>
<div v-if="conList.length > 0" style="height: calc(100vh - 240px);overflow:auto;">
<div v-for="(item,index) in conList" :key="item.id">