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

This commit is contained in:
高嵩
2023-03-30 14:59:01 +08:00
14 changed files with 130 additions and 32 deletions
@@ -434,3 +434,6 @@ ALTER TABLE `project_related_personnel`
ALTER TABLE `project_task_planning`
ADD COLUMN `certification_submission` datetime(0) NULL COMMENT '认证提交' AFTER `attestation_start_time`;
-- 项目库-认证清单-认证目录 说明字段长度修改 2023-3-30 未同步生产环境
ALTER TABLE `project_certification_directory`
MODIFY COLUMN `explain_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `detection_report_location`;
@@ -2663,6 +2663,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
projectCertificationInventoryEOTemp.setId(UUID.randomUUID().toString().replace("-", ""));
projectCertificationInventoryEOTemp.setProjectLibraryId(projectLibraryId);
projectCertificationInventoryEOTemp.setFlowStatus(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue());
projectCertificationInventoryEOTemp.setCreateTime(new Date());
projectCertificationInventoryEOTemp.setUpdateTime(new Date());
projectCertificationInventoryEOList.add(projectCertificationInventoryEOTemp);
}else {
noSerialNumberList.add(authDummyInventoryInfoEO.getSerialNumber());
@@ -2711,13 +2713,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
public void importData(MultipartFile file, ProjectCertificationInventoryEO projectCertificationInventoryEO) {
String title = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID," +
title = title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*标准编号,*责任领域,*工程接口人,*责任人," +
"*交付物类型,交付物模板,*截止日期";
"*交付物类型,交付物模板,*截止日期,报告编号,产品型号,生产企业名称";
}else {
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," +
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
"*Deliverable Type,Deliverable Template,*Due Date";
"*Deliverable Type,Deliverable Template,*Due Date,Report No,Product Model,Name Of Manufacturer";
}
int pos = file.getOriginalFilename().lastIndexOf(".");
@@ -2989,6 +2991,12 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//截止时间
String endTime = projectCertificationInventoryEO.getEndTimeStr();
//报告编号
String reportNumber = projectCertificationInventoryEO.getReportNumber();
//产品型号
String productModel = projectCertificationInventoryEO.getProductModel();
//生产企业名称
String productionEnterpriseName = projectCertificationInventoryEO.getProductionEnterpriseName();
//文件
//交付物模板
@@ -3000,16 +3008,51 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//编号必填
flag = must(projectCertificationInventoryEO, errorMsg, msgList, serialNumber, "编号", "Standard No");
//报告编号
if(StringUtils.isNotBlank(reportNumber)){
if(reportNumber.length() > 200){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "报告编号不能超过200个字符, ";
}else{
message = errorMsg + " The Report No cannot contain more than 200 characters, ";
}
msgList.add(message);
}
}
//产品型号
if(StringUtils.isNotBlank(productModel)){
if(productModel.length() > 200){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "产品型号不能超过200个字符, ";
}else{
message = errorMsg + " The Product Model cannot contain more than 200 characters, ";
}
msgList.add(message);
}
}
//生产企业名称
if(StringUtils.isNotBlank(productionEnterpriseName)){
if(productionEnterpriseName.length() > 200){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "生产企业名称不能超过200个字符, ";
}else{
message = errorMsg + " The Name Of Manufacturer cannot contain more than 200 characters, ";
}
msgList.add(message);
}
}
//WVTA ID
if(StringUtils.isNotBlank(wvtaId)){
if(wvtaId.length() > 100){
if(wvtaId.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "WVTA ID不能超过100个字符, ";
message = errorMsg + "WVTA ID不能超过300个字符, ";
}else{
message = errorMsg + " The WVTA ID cannot contain more than 100 characters, ";
message = errorMsg + " The WVTA ID cannot contain more than 300 characters, ";
}
msgList.add(message);
}
@@ -3025,12 +3068,12 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//类别
if(StringUtils.isNotBlank(category)){
if(category.length() > 100){
if(category.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "类别不能超过100个字符, ";
message = errorMsg + "类别不能超过300个字符, ";
}else{
message = errorMsg + " The Category cannot contain more than 100 characters, ";
message = errorMsg + " The Category cannot contain more than 300 characters, ";
}
msgList.add(message);
}
@@ -3049,9 +3092,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if(inspectionItem.length() > 100){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "检验项目不能超过100个字符, ";
message = errorMsg + "检验项目不能超过300个字符, ";
}else{
message = errorMsg + " The InspectionItem cannot contain more than 100 characters, ";
message = errorMsg + " The InspectionItem cannot contain more than 300 characters, ";
}
msgList.add(message);
}
@@ -3067,12 +3110,12 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//配置项
if(StringUtils.isNotBlank(configItem)){
if(configItem.length() > 100){
if(configItem.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "配置项不能超过100个字符, ";
}else{
message = errorMsg + " The ConfigItem cannot contain more than 100 characters, ";
message = errorMsg + " The ConfigItem cannot contain more than 300 characters, ";
}
msgList.add(message);
}
@@ -9741,7 +9741,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
params.put("Initiator",projectLibraryBase.getStudioEngineerName());
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE2.getValue(),params);
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(),params);
}
}
@@ -9844,7 +9844,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
params.put("hrefFeishu_EN",(String)hrefFeishuMap.get("hrefFeishu_EN"));
params.put("Initiator",projectLibraryBase.getStudioEngineerName());
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE2.getValue(),params);
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(),params);
}
}
+2
View File
@@ -1739,5 +1739,7 @@ module.exports = {
verifyConformanceConfirmation:'Verify conformance confirmation',
designConformanceVerification:'Design conformance verification',
nomorethan:'No more than 10',
uploadedfilelarger:'The uploaded file is larger than 50 MB',
marketCertificationList:'Market Certification List',
uploadedfilelarger:'The uploaded file is larger than',
}
+3 -1
View File
@@ -604,7 +604,7 @@ module.exports = {
StandardBreakdown: '标准分解单',
searchInResults: '结果中检索',
searchContent: '搜索内容',
viewFile: '查看文件',
viewFile: '查看已上传文件',
fileFormatIncorrect: '文件格式不正确',
pleaseUploadFile: '请上传文件',
documentSplitList: '文档拆分列表展示',
@@ -1842,4 +1842,6 @@ module.exports = {
designConformanceVerification:'设计符合性确认',
nomorethan:'不能超过10个',
uploadedfilelarger:'文件大于',
uploadedfilelarger:'文件大于50M',
marketCertificationList:'市场认证清单',
}
@@ -170,6 +170,7 @@
import { getAction, postAction, deleteAction,downloadFile } from '@/api/manage'
import ImportFile from '@/components/ImportFileData/index'
import uploadFile from '@/components/uploadFile/file'
import { result } from 'lodash'
export default {
name: 'beupgradedonline',
@@ -375,6 +376,9 @@ this.$forceUpdate()
}
getAction('/ota/otaBaSjSjyxpg/queryByOtaId',{otaIdT:otaIdT,otaId:otaId}).then(res=>{
if(res.code==200){
if(res.result.zxsj==0){
res.result.zxsj=null
}
this.form=res.result==null ? {
sjmd:'',
// fhgd:1,
@@ -395,6 +399,9 @@ this.$forceUpdate()
otaId=''
}
this.form.otaId=otaId
if(this.form.zxsj==undefined){
this.form.zxsj=0
}
postAction('/ota/otaBaSjSjyxpg/add',this.form).then(res=>{
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
@@ -316,8 +316,8 @@ import ImportFile from '@/components/ImportFileData/index'
this.form.cpmc = item.cpmc
this.form.cpxh = item.cpxh
getAction('/ota/otaBaCxJbxx/queryByOtaId',{otaIdT:'',otaId:item.id}).then(res=>{
this.form.dllx1=res.result.dllx1
this.form.dllx2=res.result.dllx2
this.form.dllx1=res.result.dllx1 == null?undefined:res.result.dllx1
this.form.dllx2=res.result.dllx2== null?undefined:res.result.dllx2
this.$forceUpdate()
})
}
@@ -156,7 +156,7 @@
<span class="title-text-text plus3" :title="$t('Vehicledynamictype')">{{$t('Vehicledynamictype')}}</span>
</div>
<a-form-model-item class="itemModel" style="width: 38%">
<a-select class="box-input" v-model="form.dllx1" :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="changeSelect($event,target)">
<a-select class="box-input" v-model="form.dllx1" allowClear :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="changeSelect($event,target)">
<a-select-option v-for="(item, key) in projectNameList1"
:key="key"
:value="item">
@@ -165,7 +165,7 @@
</a-select>
</a-form-model-item>
<a-form-model-item class="itemModel" style="width: 40%;margin-left:20px">
<a-select v-model="form.dllx2" class="box-input" :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="update">
<a-select v-model="form.dllx2" class="box-input" allowClear :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="update">
<a-select-option v-for="(item, key) in projectNameList2"
:key="key"
:value="item">
@@ -326,6 +326,7 @@ import { message } from 'ant-design-vue'
this.form.cpxh=res.result.cpxh
this.form.txzd=res.result.txzd
this.form.txzd=res.result.txzd
this.form.cdotasj=res.result.cdotasj
this.form.id=res.result.id
if(this.$route.query.type == 1 && res.result.cxmb == null){
this.form.cxmb = this.form.ggpc+'-'+ this.form.cpmc+'-'+this.form.cpxh
@@ -338,8 +339,14 @@ import { message } from 'ant-design-vue'
if(res.result.dllx2 == null){
res.result.dllx2 = undefined
}
if(res.result.cplb == null){
res.result.cplb = undefined
}
this.form.dllx1=res.result.dllx1
this.form.dllx2=res.result.dllx2
this.form.cplb=res.result.cplb
this.getDllx2()
// this.changeSelect()
this.$forceUpdate()
}
@@ -366,6 +373,7 @@ import { message } from 'ant-design-vue'
if(otaId==null || otaId == undefined){
otaId=''
}
postAction('/ota/otaBaCxJbxx/add',{ otaId:otaId,...this.form}).then( res => {
if(res.code == 200){
localStorage.setItem('otaId', res.result.otaId)
@@ -387,6 +395,24 @@ import { message } from 'ant-design-vue'
}else{
this. projectNameList2=['其他']
}
},
getDllx2(){
if(this.form.dllx1==undefined){
this.projectNameList=[]
}
if(this.form.dllx1=='传统动力汽车'){
this. projectNameList2=['汽油','柴油']
}
if(this.form.dllx1=='节能汽车'){
this. projectNameList2=['混合动力','天然气','甲醇','其他']
}
if(this.form.dllx1=='新能源汽车'){
this. projectNameList2=['纯电动','插电式混合动力','燃料电池']
}
if(this.form.dllx1=='其他'){
this. projectNameList2=['其他']
}
},
update(){
@@ -253,7 +253,7 @@ import ImportFile from '@/components/ImportFileData/index'
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
last(){
@@ -284,7 +284,7 @@ import ImportFile from '@/components/ImportFileData/index'
}
button{
width: 89px;
//width: 89px;
border-radius: 4px;
cursor: pointer;
background: #00B3BE;
@@ -299,7 +299,7 @@ export default {
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
last() {
@@ -323,7 +323,7 @@ export default {
}
button {
width: 89px;
/*width: 89px;*/
border-radius: 4px;
cursor: pointer;
background: #00B3BE;
@@ -168,7 +168,7 @@ export default {
ids:this.ids
}
this.confirmLoading = true
postAction('ota/otaBaSjList/batchRecord', query).then((res) => {
postAction('ota/otaBaCxList/batchRecord', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
@@ -15,10 +15,10 @@
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('CertificationListName')">
<span>{{$t('CertificationListName')}}</span>
<div class="title-text" :title="$t('marketCertificationList')">
<span>{{$t('marketCertificationList')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('CertificationListName')"
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('marketCertificationList')"
v-model="queryParam.name"></j-input>
</div>
</a-col>
@@ -87,7 +87,7 @@
selectedRowKeys: [],
columns: [
{
title: this.$t('CertificationListName'),
title: this.$t('marketCertificationList'),
dataIndex: 'name',
align: 'left',
ellipsis: true,
@@ -162,7 +162,7 @@
<div @click="processResetClick"
v-if="roleSwitchingCode == 0 || roleSwitchingCode == 2"
class="operator-text-title">
<a-icon type="stop"/>
<a-icon type="file-search"/>
{{ $t('processReset') }}
</div>
</div>
@@ -242,7 +242,22 @@ export default {
}).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
if (res.result && res.result.length > 0) {
let detailedWarningList = []
res.result.forEach(val => {
detailedWarningList.push(
< div > { val } < /div>)
})
this.$warning({
content: (
< div >
{ detailedWarningList }
< /div>
)
})
} else {
this.$message.success(this.$t('OperationSuccessful'))
}
this.visible = false
this.selectedRowKeys = []
this.$emit('transferListFormHomo')