From bc2f397673fef3f83dd3480a40120c64ecd245e0 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Sat, 7 Oct 2023 11:25:30 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6-=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E6=B8=85=E5=8D=95=E7=BC=96=E8=BE=91=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...formProjectLawsInventoryEOServiceImpl.java | 2 +- ...ProjectLawsInventoryEOEditServiceImpl.java | 264 +++++++++++++++++- 2 files changed, 261 insertions(+), 5 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java index 902dcf898..4e9c06391 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java @@ -569,7 +569,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl oldPliQueryWrap = new QueryWrapper<>(); + oldPliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId()); + List oldPliEoList = projectLawsInventoryEOService.list(oldPliQueryWrap); + + this.updateProjectLawsInventorySendMessage(projectLawsInventoryEO); + + // 根据法规清单id,获取该法规清单在待办中心的任务明细。 + List oldPliEoIdList = oldPliEoList.stream().map(ProjectLawsInventoryEO::getId).distinct().collect(Collectors.toList()); + QueryWrapper pidEoQueryWrap = new QueryWrapper<>(); + pidEoQueryWrap.lambda().in(ProcessInfoDetailEO::getProjectLawsInventoryId, oldPliEoIdList); + List pidEoList = this.processInfoDetailEOService.list(pidEoQueryWrap); + if (CollectionUtils.isNotEmpty(pidEoList)) { + // 处理编辑法规工程师的逻辑 + this.updateRegulationOwner(projectLawsInventoryEO, oldPliEoList, pidEoList); + // 处理编辑责任人的逻辑 + this.updateDutyPerson(projectLawsInventoryEO, oldPliEoList, pidEoList); + } + // 处理修改设计或验证符合性截止日期的逻辑 + this.updateDesignOrVerifyEndTime(projectLawsInventoryEO, oldPliEoList); + + projectLawsInventoryEO.setUpdateTime(now); + ProjectLawsInventoryEO projectLawsInventoryEOCopy = SerializationUtils.clone(projectLawsInventoryEO);//复制 + + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + + String contentLog = username + "编辑了清单中的“" + projectLawsInventoryEO.getSerialNumber() + "”:
"; + String enContentLog = username + " edited the “" + projectLawsInventoryEO.getSerialNumber() + "” in the list:
"; + + List infoEOList = new ArrayList<>(); + infoEOList.add(projectLawsInventoryEO); + List infoEOListCopy = new ArrayList<>(); + infoEOListCopy.add(projectLawsInventoryEOCopy); + + //查询数据库里原来的数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + List dataList = projectLawsInventoryEOService.list(queryWrapper.eq("id", projectLawsInventoryEO.getId())); + List dataListCopy = DeepCopyListUtil.depCopy(dataList); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId()); + setDateNull(projectLawsInventoryEO, updateWrapper); + //保存 + projectLawsInventoryEOService.update(projectLawsInventoryEO, updateWrapper); +// saveOrUpdate(projectLawsInventoryEO); + + //获取编辑中的责任领域 + List dutyTerritoryList = new ArrayList<>(); + dutyTerritoryList = Arrays.asList(projectLawsInventoryEO.getDutyTerritory().split(",")); + dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList()); + //获取当前的projectLibrartId + String projectLibrartId = projectLawsInventoryEO.getProjectLibraryId(); + String cut = projectLawsInventoryEO.getCut(); + + Map params = new HashMap<>(); + params.put("projectLibraryId", projectLibrartId); + params.put("userId", currentUser.getId()); + params.put("modelType", RoleRelModelTypeEnum.LAWS_INVENTORY.getValue()); + ProjectLibraryRoleRelEO projectLibraryRoleRelEO = projectLibraryRoleRelEOService.queryByProjectLibraryIdAndUserId(params); + String roleCode1 = projectLibraryRoleRelEO.getRoleCode(); + //分别获取当前编辑中的设计符合性和认证符合性责任人 + List designDutyIdList = new ArrayList<>(); + designDutyIdList = Arrays.asList(projectLawsInventoryEO.getDesignDutyId().split(",")); + List verifyDutyIdList = new ArrayList<>(); + verifyDutyIdList = Arrays.asList(projectLawsInventoryEO.getVerifyDutyId().split(",")); + + //allDutyList 为法规工程师中验证符合性和确认符合中的责任人 + List allDutyList = new ArrayList<>(); + allDutyList.addAll(designDutyIdList); + allDutyList.addAll(verifyDutyIdList); + allDutyList = allDutyList.stream().distinct().collect(Collectors.toList()); + + //获取相关责任领域下的和projectLibrartId的相关人员名单的信息 + List projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList); + + List allList = new ArrayList<>(); + List enginnerList = new ArrayList<>(); + List lawEnginnerList = new ArrayList<>(); + List enginnerLawSetList = new ArrayList<>(); + List enginnerAttSetList = new ArrayList<>(); + //根据相关人员名单获取的工程接口人 + for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) { + String enginneringInterfacePerson = relatedPersonnel.getEngineeringInterfacePerson(); + if (!StringUtils.isEmpty(enginneringInterfacePerson)) { + enginnerList = Arrays.stream(enginneringInterfacePerson.split(",")).collect(Collectors.toList()); + allList.addAll(enginnerList); + } + } + //获取相关人员名单中的法规工程师 + for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) { + String lawEngineer = relatedPersonnel.getLawEngineer(); + if (!StringUtils.isEmpty(lawEngineer)) { + lawEnginnerList = Arrays.stream(lawEngineer.split(",")).collect(Collectors.toList()); + allList.addAll(lawEnginnerList); + } + } + //获取相关人员名单中的工程接口-法规工程师设置 + for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) { + String engineerLawSet = relatedPersonnel.getEngineerLawSet(); + if (!StringUtils.isEmpty(engineerLawSet)) { + enginnerLawSetList = Arrays.stream(engineerLawSet.split(",")).collect(Collectors.toList()); + allList.addAll(enginnerLawSetList); + } + } + //获取相关人员名单中的工程接口-认证工程师设置 + for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) { + String engineerAttSet = relatedPersonnel.getEngineerAttSet(); + if (!StringUtils.isEmpty(engineerAttSet)) { + enginnerAttSetList = Arrays.stream(engineerAttSet.split(",")).collect(Collectors.toList()); + allList.addAll(enginnerAttSetList); + } + } + //获取当前项目库id的studio工程师和认证工程师 + List studionList = new ArrayList<>(); + List certificationEngineerList = new ArrayList<>(); + List projectLibraryBases = projectLibraryBaseService.queryById(projectLibrartId, cut); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBases) { + studionList.add(projectLibraryBase.getStudioEngineer()); + + String certificationEngineer = projectLibraryBase.getCertificationEngineer(); + if (!StringUtils.isEmpty(certificationEngineer)) { + certificationEngineerList = Arrays.stream(certificationEngineer.split(",")).collect(Collectors.toList()); + allList.addAll(certificationEngineerList); + } + } + allList = allList.stream().filter(all -> { + return StringUtils.isNotBlank(all); + }).distinct().collect(Collectors.toList()); + /* + for(String all : allList){ + if(all.equals("")){ + allList.remove(all); + } + } + */ + //遍历所有人alllist中是否包含责任人,如果包含,不用操作。 + //-------如果不包含,再去判断当前用户的角色是studio、法规还是认证 + for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) { + if (allList.size() > 0) { + for (String allDuty : allDutyList) { + String dutyPerson = allDuty; + if (StringUtils.isNotEmpty(dutyPerson) && !allList.contains(dutyPerson) && StringUtils.isNotEmpty(roleCode1)) { + if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue())) { + if (relatedPersonnel.getEngineeringInterfacePerson() != null) { + String engineeringInterfacePerson = dutyPerson + "," + relatedPersonnel.getEngineeringInterfacePerson(); + relatedPersonnel.setEngineeringInterfacePerson(engineeringInterfacePerson); + } else { + relatedPersonnel.setEngineeringInterfacePerson(dutyPerson); + } + } else if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.REGULATI_ENGINEER.getValue())) { + if (relatedPersonnel.getEngineerLawSet() != null) { + String engineerLawSet = dutyPerson + "," + relatedPersonnel.getEngineerLawSet(); + relatedPersonnel.setEngineerLawSet(engineerLawSet); + } else { + relatedPersonnel.setEngineerLawSet(dutyPerson); + } + } else if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())) { + if (relatedPersonnel.getEngineerAttSet() != null) { + String engineerAttSet = dutyPerson + "," + relatedPersonnel.getEngineerAttSet(); + relatedPersonnel.setEngineerAttSet(engineerAttSet); + } else { + relatedPersonnel.setEngineerAttSet(dutyPerson); + } + } + } + } + } + } + this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList); + + + //翻译-中文 + translateData(infoEOList); + translateData(dataList); + //翻译-英文 + translateDataToEn(infoEOListCopy); + translateDataToEn(dataListCopy); + + //比对不同字段 + Map infoDiff = ListDiff.compareObject(dataList.get(0), projectLawsInventoryEO); + Map infoDiffEn = ListDiff.compareObject(dataListCopy.get(0), projectLawsInventoryEOCopy); + + //设置更新log + setContentLog(infoDiff, contentLog, infoDiffEn, enContentLog, projectLawsInventoryEO.getProjectLibraryId()); + + + //验证用户是否是该法规上级 项目库的studio, 如果是,则同步更新流程 + int roleCode = projectLawsInventoryEOService.checkUserRole(projectLawsInventoryEO.getProjectLibraryId(), currentUser.getId(), ""); + if (StringUtils.equals(String.valueOf(roleCode), ProjectRoleEnum.STUDIO_ENGINEER.getValue())) { + //更新流程信息 + projectLawsInventoryEOService.updateFlowInfo(projectLawsInventoryEO); + } + + //设置权限 先删后加 + List adds = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getRegulationOwnerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getHomologationEngineerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getEngineeringInterfacePerson(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + } + if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) { + setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + } + if (ObjectUtils.isNotEmpty(adds)) { + projectUserPermissionService.saveBatch(adds); + } + + +// } +// else { +// throw new JeroBootException("该用户没有权限操作该数据!"); +// } + } /** * 发送消息 From fecc568c3d6b0866ec386f54c37f4bd265f5041d Mon Sep 17 00:00:00 2001 From: "zyx.net" Date: Mon, 9 Oct 2023 14:09:45 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=BA=93=E6=96=B0=E5=A2=9E=E5=BC=B9=E6=A1=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 27 + jero-web/src/common/lang/zh-cn.js | 27 + .../components/addModel.vue | 731 ++++++++++++++---- 3 files changed, 614 insertions(+), 171 deletions(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 9e94e6906..3158a6629 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1982,4 +1982,31 @@ module.exports = { matchempty:'The match is empty', onlyDataProcessStatusDeleted:'Data can only be deleted if the process status is task ready, approved, or rejected by the responsible person', platformitemhasbeenassociated:'A platform item has been associated', + power:'power', + producer:'producer', + Nameplatelabel:'Nameplate label', + Batteryfilingrecord:'Battery filing record', + Modelinformation:'Model information', + Batterynationalcode:'Battery national code', + Recordnformation:'Record information', + Electriccellproductionenterprises:'Electric cell production enterprises', + Assemblymanufacturer:'Assembly manufacturer', + PartNumberCN:'Part Number (Domestic)', + PartNumberEU:'Part Number (Foreign)', + bitfilecode:'24-bit file code', + Vendorcode:'Vendor code', + Productclasscode:'Product class code', + Batterytypecode:'Battery type code', + Specificationcode:'Specification code', + Traceinformationcode:'Trace information code', + Productionyearmonthdateserialnumber:'Production year month date serial number', + dimension:'dimension(mm)', + Ratedcapacity:'Rated capacity(Ah)', + Nominalvoltage:'Nominal voltage(V)', + Ratedmass:'Rated mass(kg)', + Numbercontainedmodules:'Number of contained modules', + Moduleseriesparallelmode:'Module series parallel mode', + modulspecificationcodeused:'The module or monomer specification code used', + Coolingmode:'Cooling mode', + Filingcompletiontime:'Filing completion time', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 2e896649a..7ab96d38a 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -3938,4 +3938,31 @@ module.exports = { Processdetails:'流程详情', matchempty:'匹配项为空', platformitemhasbeenassociated:'已关联平台件项目', + power:'功率', + producer:'生产商', + Nameplatelabel:'铭牌标签', + Batteryfilingrecord:'电池备案记录', + Modelinformation:'型号信息', + Batterynationalcode:'电池国标码', + Recordnformation:'备案信息', + Electriccellproductionenterprises:'电芯生产企业', + Assemblymanufacturer:'总成生产企业', + PartNumberCN:'零件号(国内)', + PartNumberEU:'零件号(国外)', + bitfilecode:'24位备案码', + Vendorcode:'供应商代码', + Productclasscode:'产品类型代码', + Batterytypecode:'电池类型代码', + Specificationcode:'规格代码', + Traceinformationcode:'追溯信息代码', + Productionyearmonthdateserialnumber:'生产年月日序列号', + dimension:'尺寸(mm)', + Ratedcapacity:'额定容量(Ah)', + Nominalvoltage:'标称电压(V)', + Ratedmass:'额定质量(kg)', + Numbercontainedmodules:'包含模块个数', + Moduleseriesparallelmode:'模块串并联方式', + modulspecificationcodeused:'所用模块或单体规格代码', + Coolingmode:'冷却方式', + Filingcompletiontime:'备案完成时间', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue index fd768320a..69b9bd99c 100644 --- a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue +++ b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue @@ -11,16 +11,49 @@ style="height: 100%;overflow: auto;padding-bottom: 53px;"> + +
+ {{$t('basicInformationOfParameters')}} +
* - {{$t('entryName')}} + {{$t('power')}}
- - + + + +
+
+ +
+
+ * + {{$t('producer')}} +
+ + + +
+
+
+ + +
+
+ * + {{$t('targetMarket')}} +
+ +
@@ -45,25 +78,41 @@
- {{$t('configurationItem')}} + {{$t('projectStatus')}}
- - + +
- {{$t('certificationProgram')}} + * + {{$t('statisticalNodes')}}
- - + + + + + {{ item.key }} + + +
@@ -72,19 +121,80 @@
- {{$t('dehicleDevelopmentPlan')}} + + {{$t('regulatoryEngineer')}}
- - + +
+
+
+ {{$t('engineeringInterfacePerson')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Nameplatelabel')}} +
+ +
+ +
+ +
+ +
+
+
+ + example + +
+
+
+
+
+ + + + + + + + + + + + + + + + +
{{$t('explain')}} @@ -93,151 +203,306 @@ + :rows="4"/> + +
+ + + +
+ {{$t('Batteryfilingrecord')}} +
+ +
+ {{$t('Modelinformation')}} +
+ + +
+
+ {{$t('productModel')}} +
+ + + +
+
+ +
+
+ {{$t('Electriccellproductionenterprises')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Assemblymanufacturer')}} +
+ + + +
+
+ +
+
+ {{$t('PartNumberCN')}} +
+ + + +
+
+
+ + +
+
+ {{$t('PartNumberEU')}} +
+ + + +
+
+
+ +
+ {{$t('Batterynationalcode')}} +
+ + +
+
+ {{$t('bitfilecode')}} +
+ + + +
+
+ +
+
+ {{$t('Vendorcode') + '(1~3)'}} +
+ + + +
+
+
+ + +
+
+ {{$t('Productclasscode') + '(4)'}} +
+ + + +
+
+ +
+
+ {{$t('Batterytypecode') + '(5)'}} +
+ + + +
+
+
+ + +
+
+ {{$t('Specificationcode') + '(6~7)'}} +
+ + + +
+
+ +
+
+ {{$t('Traceinformationcode') + '(8~14)'}} +
+ + + +
+
+
+ + +
+
+ {{$t('Productionyearmonthdateserialnumber') + '(15~20)'}} +
+ + + +
+
+
+ +
+ {{$t('Recordnformation')}} +
+ + +
+
+ {{$t('dimension')}} +
+ + + +
+
+ +
+
+ {{$t('Ratedcapacity')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Nominalvoltage')}} +
+ + + +
+
+ +
+
+ {{$t('Ratedmass')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Numbercontainedmodules')}} +
+ + + +
+
+ +
+
+ {{$t('Moduleseriesparallelmode')}} +
+ + + +
+
+
+ + +
+
+ {{$t('modulspecificationcodeused')}} +
+ + + +
+
+ +
+
+ {{$t('Coolingmode')}} +
+ + + +
+
+
+ +
+ {{$t('remarks')}} +
+ + +
+
+ {{$t('Filingcompletiontime')}} +
+ + + +
+
+
+ + +
+
+ {{$t('remarks')}} +
+ +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -251,6 +516,16 @@ import PersonnelSelection from '@/components/PersonnelSelection/index' import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import { mapGetters } from 'vuex' + import moment from 'moment' + + function getBase64(file) { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.readAsDataURL(file) + reader.onload = () => resolve(reader.result) + reader.onerror = (error) => reject(error) + }) + } export default { name: 'addModel', @@ -324,6 +599,30 @@ trigger: 'blur' } ], + power:[ + { + required: true, + message: this.$t('power') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 200, + message: this.$t('DigitalPlatform') + this.$t('cannotExceed') + 200 + this.$t('Characters'), + trigger: 'blur' + } + ], + producer:[ + { + required: true, + message: this.$t('producer') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 200, + message: this.$t('DigitalPlatform') + this.$t('cannotExceed') + 200 + this.$t('Characters'), + trigger: 'blur' + } + ], digitalPlatform: [ { max: 200, @@ -345,6 +644,13 @@ trigger: 'change' } ], + targetMarket: [ + { + required: true, + message: this.$t('targetMarket') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], brand: [ { required: true, @@ -371,24 +677,82 @@ trigger: 'change' } ], - certificationEngineerName: [ + dutyTerritory: [ { - max: 100, - message: this.$t('certifiedEngineer') + this.$t('cannotExceed') + 100 + this.$t('Characters'), + required: true, + message: this.$t('statisticalNodes') + this.$t('cannotEmpty'), trigger: 'change' } - ] + ], + regulationOwnerIdName: [ + { + required: true, + message: this.$t('regulatoryEngineer') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], + designDutyIdName: [ + { + required: true, + message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], }, disabled: false, + previewVisible: false, + previewImage: '', + cut: '', + fileList: [], projectNameList: [], - title: '' + firstLevelDutyTerritoryList:[], + title: '', + uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload', + state: undefined, + myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl, + upDataList: [], + downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download', + downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download', } }, mounted() { this.getNameList() + let long = localStorage.getItem('language') + this.cut = '' + if (long && long == 'zh-cn') { + this.cut = 'cn' + } else if (long && long == 'en-us') { + this.cut = 'en' + } }, methods: { ...mapGetters(['userInfo']), + handleCancelimg() { + this.previewVisible = false; + }, + async handlePreview(file) { + if (!file.url && !file.preview) { + file.preview = await getBase64(file.originFileObj); + } + this.previewImage = file.url || file.preview; + this.previewVisible = true; + }, + handleChange({ fileList }) { + this.fileList = fileList; + console.log(this.fileList) + }, + getFirstLevelDutyTerritory() { + getAction('/sys/dictItem/getFirstLevelDutyTerritory', {}).then((res) => { + if (res.success) { + this.firstLevelDutyTerritoryList = res.result + } else { + this.firstLevelDutyTerritoryList = [] + } + }) + }, + dateChange(item) { + this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' + }, getNameList(value) { getAction('project/projectNameInfoEO/list', {}).then((res) => { if (res.success) { @@ -411,8 +775,9 @@ this.title = this.$t('add') this.formInline = {} this.getNameList() - this.formInline.studioEngineerName = this.userInfo().username - this.formInline.studioEngineer = this.userInfo().id + this.getFirstLevelDutyTerritory() + this.formInline.regulationOwnerIdName = this.userInfo().username + this.formInline.regulationOwnerId = this.userInfo().id this.formInline.projectVersion = '00' this.formInline = { ...this.formInline } this.$nextTick(() => { @@ -582,7 +947,31 @@ height: 40px; margin-bottom: 24px; } + .itemModelimg { + width: calc(100% - 130px); + display: inline-block; + margin-top: 2px; + margin-bottom: 24px; + } + .header-text { + font-size: 16px; + color: #000000; + font-weight: bold; + } + .header-title-text{ + font-size: 16px; + color: #000000; + line-height: 50px; + margin: 0 19px; + } + .header-title{ + background: #F5F6F7; + width: 100%; + height: 50px; + margin-top: 10px; + margin-bottom: 10px; + } .Required { color: red; margin-right: 4px; From e035f46fda61bd3489e609fb7b59226184f1580f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=B5=A9?= Date: Mon, 9 Oct 2023 14:26:12 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E5=8F=91=E6=B6=88=E6=81=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/modules/project/job/PrehomoJob.java | 4 +- ...ojectTaskInventoryDetailEOServiceImpl.java | 26 ++++----- .../ProjectTaskInventoryEOServiceImpl.java | 54 +++++++++---------- ...ectTaskInventoryFeedbackEOServiceImpl.java | 52 +++++++++--------- 4 files changed, 69 insertions(+), 67 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/PrehomoJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/PrehomoJob.java index 04736c68e..2c0a4ac94 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/PrehomoJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/PrehomoJob.java @@ -73,7 +73,7 @@ public class PrehomoJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("prehomo流程,定时任务开启 ====================================================="); - +/* //查询出已经启动了prehomo流程的数据。 并且流程没有结束。 QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); queryProjectTaskInventoryWrapper.isNotNull("prehomo_p_id"); @@ -367,5 +367,7 @@ public class PrehomoJob implements Job { } } log.info("prehomo流程,定时任务结束 ====================================================="); + + */ } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java index 6be203fab..582a40d6c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryDetailEOServiceImpl.java @@ -543,19 +543,19 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl Date: Mon, 9 Oct 2023 14:52:32 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=20=E5=B9=B3=E5=8F=B0=E4=BB=B6=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5=20=20=E5=B9=B3=E5=8F=B0=E4=BB=B6?= =?UTF-8?q?=E5=90=88=E8=A7=84=E8=AE=A4=E8=AF=81=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-boot/db/蔚来标准sql/dev_third_record.sql | 4 + .../PlatformTaskPlanningEOController.java | 20 +- .../entity/PlatformTaskPlanningEO.java | 3 + .../modules/platform/enums/UpAndDownEnum.java | 45 +++++ .../IPlatformTaskPlanningEOService.java | 8 +- ...PlatformProjectLibraryBaseServiceImpl.java | 58 +++++- .../PlatformTaskPlanningEOServiceImpl.java | 78 ++++++-- .../project/entity/ProjectLibraryBase.java | 174 +++++++++--------- 8 files changed, 268 insertions(+), 122 deletions(-) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/enums/UpAndDownEnum.java diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index 7f3547aba..19ad40a3f 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -1279,3 +1279,7 @@ ADD COLUMN `module_specification_code` varchar(255) NULL COMMENT '所用模块 ADD COLUMN `cooling_method` varchar(255) NULL COMMENT '冷却方式' AFTER `module_specification_code`, ADD COLUMN `filing_completion_time` datetime(0) NULL COMMENT '备案完成时间' AFTER `cooling_method`, ADD COLUMN `remark` varchar(1000) NULL COMMENT '备注' AFTER `filing_completion_time`; + +--平台件合规认证计划添加标识字段2023-09-28 +ALTER TABLE `platform_task_planning` +ADD COLUMN `flag` varchar(255) NULL COMMENT '位置标识(用来区分上下两部分数据,up->上,down->下)' AFTER `project_id`, diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformTaskPlanningEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformTaskPlanningEOController.java index eb2e32349..005fc3917 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformTaskPlanningEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/controller/PlatformTaskPlanningEOController.java @@ -78,9 +78,9 @@ public class PlatformTaskPlanningEOController extends JeroController> queryList(String projectId) { - List list = platformTaskPlanningEOService.queryList(projectId); - return Result.OK(list); + public Result queryList(String projectId) { + Map result = platformTaskPlanningEOService.queryList(projectId); + return Result.OK(result); } /** @@ -106,9 +106,17 @@ public class PlatformTaskPlanningEOController extends JeroController addBatch(@RequestBody Map data) { - JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list"))); - List platformTaskPlanningEOList = jsonArray.toJavaList(PlatformTaskPlanningEO.class); - platformTaskPlanningEOService.addBatch(platformTaskPlanningEOList); +// JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list"))); +// JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp"))); +// JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown"))); +// List platformTaskPlanningEOListUp = jsonArray.toJavaList(PlatformTaskPlanningEO.class); +// List platformTaskPlanningEOListDown = jsonArray.toJavaList(PlatformTaskPlanningEO.class); +// platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown); + JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp"))); + JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown"))); + List platformTaskPlanningEOListUp = jsonArrayUp.toJavaList(PlatformTaskPlanningEO.class); + List platformTaskPlanningEOListDown = jsonArrayDown.toJavaList(PlatformTaskPlanningEO.class); + platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown); return Result.OK("添加成功!"); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/entity/PlatformTaskPlanningEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/entity/PlatformTaskPlanningEO.java index e49019c50..fc9e52a8f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/entity/PlatformTaskPlanningEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/entity/PlatformTaskPlanningEO.java @@ -93,4 +93,7 @@ public class PlatformTaskPlanningEO implements Serializable { @TableField(exist = false) private boolean isG; + //标识(用来区分上下两部分数据,up->上,down->下) + private String Flag; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/enums/UpAndDownEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/enums/UpAndDownEnum.java new file mode 100644 index 000000000..2bd57ebfb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/enums/UpAndDownEnum.java @@ -0,0 +1,45 @@ +package com.jero.modules.platform.enums; + +/** + * 任务状态枚举类 + */ +public enum UpAndDownEnum { + UP("上部分","up"), + DOWN("下部分","down"), + ; + + + String name; + String value; + + private UpAndDownEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String getTextByValue(String value) { + UpAndDownEnum[] values = values(); + for (UpAndDownEnum taskStatusEnum : values) { + if (taskStatusEnum.value.equals(value)) { + return taskStatusEnum.name; + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/IPlatformTaskPlanningEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/IPlatformTaskPlanningEOService.java index 4e965dc96..08873412b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/IPlatformTaskPlanningEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/IPlatformTaskPlanningEOService.java @@ -3,6 +3,7 @@ package com.jero.modules.platform.service; import com.jero.modules.platform.entity.PlatformTaskPlanningEO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** * @Description: 平台件合规认证计划 @@ -22,9 +23,10 @@ public interface IPlatformTaskPlanningEOService extends IService platformTaskPlanningEOList); + void addBatch(List platformTaskPlanningEOListUp,List platformTaskPlanningEOListDown); /** * 更新 @@ -63,5 +65,5 @@ public interface IPlatformTaskPlanningEOService extends IService queryList(String projectId); + Map queryList(String projectId); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java index 47ab2c106..0fa1ddf45 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java @@ -1057,7 +1057,6 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl result = this.list(queryWrapper); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - List dictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.BRAND.getValue()); //置顶 @@ -1068,9 +1067,29 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl sysUserList = getSysUserList(result); //目标市场数据字典 -// List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); for(ProjectLibraryBase projectLibraryBase: result){ + if(ObjectUtils.isNotEmpty(sysUserList)){ + //法规工程师 + if(StringUtils.isNotBlank(projectLibraryBase.getRegulationOwnerId())){ + List collect = sysUserList.stream() + .filter(e -> e.getId().equals(projectLibraryBase.getRegulationOwnerId())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + projectLibraryBase.setRegulationOwnerIdName(collect.get(0).getUsername()); + } + } + //工程接口人 + if(StringUtils.isNotBlank(projectLibraryBase.getEngineeringInterfacePerson())){ + List collect = sysUserList.stream() + .filter(e -> e.getId().equals(projectLibraryBase.getEngineeringInterfacePerson())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + projectLibraryBase.setEngineeringInterfacePersonName(collect.get(0).getUsername()); + } + } + } //处理品牌 List sysDictItemList = dictItemList.stream() .filter(e -> e.getItemValue().equals(projectLibraryBase.getBrand())).collect(Collectors.toList()); @@ -1098,14 +1117,14 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl param = new HashMap<>(); -// param.put("cut",cut); -// String targetMarket = getMarket(param, targetMarketList, projectLibraryBase); -// //项目名称(功率-生产商-目标市场) -// String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket; -// projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值 -// //平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值 -// projectLibraryBase.setProjectName(projectName); + Map param = new HashMap<>(); + param.put("cut",cut); + String targetMarket = getMarket(param, targetMarketList, projectLibraryBase); + //项目名称(功率-生产商-目标市场) + String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket; + projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值 + //平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值 + projectLibraryBase.setProjectName(projectName); } if(ObjectUtils.isEmpty(params.get("orderByField"))){ @@ -1121,6 +1140,25 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl getSysUserList(List result) { + List RegulationOwnerIdList = result.stream().map(ProjectLibraryBase::getRegulationOwnerId).distinct().collect(Collectors.toList()); + List EngineeringInterfacePersonList = result.stream().map(ProjectLibraryBase::getEngineeringInterfacePerson).distinct().collect(Collectors.toList()); + List userIdList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(RegulationOwnerIdList)){ + userIdList.addAll(RegulationOwnerIdList); + } + if(ObjectUtils.isNotEmpty(EngineeringInterfacePersonList)){ + userIdList.addAll(EngineeringInterfacePersonList); + } + List sysUserList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(userIdList)){ + QueryWrapper userqueryWrapper = new QueryWrapper<>(); + userqueryWrapper.in("id ", userIdList); + sysUserList = sysUserMapper.selectList(userqueryWrapper); + } + return sysUserList; + } + private void hearSort(Map params, List resultList) { if(ObjectUtils.isNotEmpty(params.get("orderByField"))){ Collator comparator = Collator.getInstance(Locale.CHINESE); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformTaskPlanningEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformTaskPlanningEOServiceImpl.java index c66620ffa..fed2b22e6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformTaskPlanningEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformTaskPlanningEOServiceImpl.java @@ -3,16 +3,20 @@ package com.jero.modules.platform.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.platform.entity.PlatformTaskPlanningEO; +import com.jero.modules.platform.enums.UpAndDownEnum; import com.jero.modules.platform.mapper.PlatformTaskPlanningEOMapper; import com.jero.modules.platform.service.IPlatformTaskPlanningEOService; import com.jero.modules.project.enums.PlanStatusEnum; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -40,23 +44,33 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl platformTaskPlanningEOList) { - if(!platformTaskPlanningEOList.isEmpty()){ + public void addBatch(List platformTaskPlanningEOListUp,List platformTaskPlanningEOListDown) { + if(!platformTaskPlanningEOListUp.isEmpty()){ //先删除在新增 // LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // wrapper.eq(PlatformTaskPlanningEO::getCreateBy,loginUser.getUsername()); - wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOList.get(0).getProjectId()); + wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOListUp.get(0).getProjectId()); this.remove(wrapper); - for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOList) { + + for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListUp) { Date now = new Date(); platformTaskPlanningEO.setCreateTime(now); platformTaskPlanningEO.setUpdateTime(now); + platformTaskPlanningEO.setFlag("up"); } - saveBatch(platformTaskPlanningEOList); + for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListDown) { + Date now = new Date(); + platformTaskPlanningEO.setCreateTime(now); + platformTaskPlanningEO.setUpdateTime(now); + platformTaskPlanningEO.setFlag("down"); + } + saveBatch(platformTaskPlanningEOListUp); + saveBatch(platformTaskPlanningEOListDown); } } @@ -112,7 +126,7 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl queryList(String projectId) { + public Map queryList(String projectId) { SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd"); Date date = null; try { @@ -124,21 +138,45 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl taskPlanningEOList = list(wrapper); - for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) { - platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName()); - platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime()); - platformTaskPlanningEO.setG(false); - if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){ - if(platformTaskPlanningEO.getNodeTime().after(date)){ - platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue()); - }else if(platformTaskPlanningEO.getNodeTime().before(date)){ - platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue()); - }else{ - platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue()); + Map result = new HashMap<>(); + if(ObjectUtils.isEmpty(taskPlanningEOList)){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.isNull(PlatformTaskPlanningEO::getProjectId); + List list = list(queryWrapper); + + List up = list.stream() + .filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList()); + List down = list.stream() + .filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList()); + + result.put("listUp",up); + result.put("listDown",down); + + }else{ + for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) { + platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName()); + platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime()); + platformTaskPlanningEO.setG(false); + if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){ + if(platformTaskPlanningEO.getNodeTime().after(date)){ + platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue()); + }else if(platformTaskPlanningEO.getNodeTime().before(date)){ + platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue()); + }else{ + platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue()); + } } } + taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList()); + + List up = taskPlanningEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList()); + List down = taskPlanningEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList()); + + result.put("listUp",up); + result.put("listDown",down); } - taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList()); - return taskPlanningEOList; + return result; } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java index 6c08fb090..c88c5812e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java @@ -166,89 +166,97 @@ public class ProjectLibraryBase implements Comparable { //平台件项目库字段-------------------------------------------------------------------------------------------------------------- -// @ApiModelProperty(value = "功率") -// private String power; -// -// @ApiModelProperty(value = "生产商") -// private String producer; -// -// @ApiModelProperty(value = "责任部门") -// private String dutyDepart; -// -// @ApiModelProperty(value = "法规工程师") -// private String regulationOwnerId; -// -// @ApiModelProperty(value = "工程接口人") -// private String engineeringInterfacePerson; -// -// @ApiModelProperty(value = "名牌标签") -// private String brandLabel; -// -// @ApiModelProperty(value = "产品型号") -// private String productModel; -// -// @ApiModelProperty(value = "电芯生产企业") -// private String cellEnterprise; -// -// @ApiModelProperty(value = "总成生产企业") -// private String assemblyEnterprise; -// -// @ApiModelProperty(value = "零件号(国内)") -// private String partNumberCn; -// -// @ApiModelProperty(value = "零件号(国外)") -// private String part_numberEn; -// -// @ApiModelProperty(value = "24位备案码") -// private String filingCode; -// -// @ApiModelProperty(value = "供应商代码(1-3)") -// private String supplierCode; -// -// @ApiModelProperty(value = "产品类型代码(4)") -// private String productTypeCode; -// -// @ApiModelProperty(value = "电池类型代码(5)") -// private String batteryTypeCode; -// -// @ApiModelProperty(value = "规格代码(6-7)") -// private String specificationCode; -// -// @ApiModelProperty(value = "追溯代码(8)") -// private String traceabilityCode; -// -// @ApiModelProperty(value = "生产也月日序列号") -// private String ymdNumber; -// -// @ApiModelProperty(value = "尺寸") -// private String size; -// -// @ApiModelProperty(value = "额定容量") -// private String ratedCapacity; -// -// @ApiModelProperty(value = "标称电压") -// private String nominalVoltage; -// -// @ApiModelProperty(value = "额定质量") -// private String ratedMass; -// -// @ApiModelProperty(value = "包含模块个数") -// private String moduleNumber; -// -// @ApiModelProperty(value = "模块串并联方式") -// private String connectionType; -// -// @ApiModelProperty(value = "所用模块或单体规格代码") -// private String moduleSpecificationCode; -// -// @ApiModelProperty(value = "冷却方式") -// private String coolingMethod; -// -// @ApiModelProperty(value = "备案完成时间") -// private String filingCompletionTime; -// -// @ApiModelProperty(value = "备注") -// private String remark; + @ApiModelProperty(value = "功率") + private String power; + + @ApiModelProperty(value = "生产商") + private String producer; + + @ApiModelProperty(value = "责任部门") + private String dutyDepart; + + @ApiModelProperty(value = "法规工程师") + private String regulationOwnerId; + + @TableField(exist = false) + @ApiModelProperty(value = "法规工程师回显") + private String regulationOwnerIdName; + + @ApiModelProperty(value = "工程接口人") + private String engineeringInterfacePerson; + + @TableField(exist = false) + @ApiModelProperty(value = "工程接口人回显") + private String engineeringInterfacePersonName; + + @ApiModelProperty(value = "名牌标签") + private String brandLabel; + + @ApiModelProperty(value = "产品型号") + private String productModel; + + @ApiModelProperty(value = "电芯生产企业") + private String cellEnterprise; + + @ApiModelProperty(value = "总成生产企业") + private String assemblyEnterprise; + + @ApiModelProperty(value = "零件号(国内)") + private String partNumberCn; + + @ApiModelProperty(value = "零件号(国外)") + private String part_numberEn; + + @ApiModelProperty(value = "24位备案码") + private String filingCode; + + @ApiModelProperty(value = "供应商代码(1-3)") + private String supplierCode; + + @ApiModelProperty(value = "产品类型代码(4)") + private String productTypeCode; + + @ApiModelProperty(value = "电池类型代码(5)") + private String batteryTypeCode; + + @ApiModelProperty(value = "规格代码(6-7)") + private String specificationCode; + + @ApiModelProperty(value = "追溯代码(8)") + private String traceabilityCode; + + @ApiModelProperty(value = "生产也月日序列号") + private String ymdNumber; + + @ApiModelProperty(value = "尺寸") + private String size; + + @ApiModelProperty(value = "额定容量") + private String ratedCapacity; + + @ApiModelProperty(value = "标称电压") + private String nominalVoltage; + + @ApiModelProperty(value = "额定质量") + private String ratedMass; + + @ApiModelProperty(value = "包含模块个数") + private String moduleNumber; + + @ApiModelProperty(value = "模块串并联方式") + private String connectionType; + + @ApiModelProperty(value = "所用模块或单体规格代码") + private String moduleSpecificationCode; + + @ApiModelProperty(value = "冷却方式") + private String coolingMethod; + + @ApiModelProperty(value = "备案完成时间") + private String filingCompletionTime; + + @ApiModelProperty(value = "备注") + private String remark; @Override From 31e3c04b5ff9e6b485d9ee9505ff41090b189fa1 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Mon, 9 Oct 2023 16:01:41 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=20=E5=B9=B3=E5=8F=B0=E4=BB=B6-=E5=90=8D?= =?UTF-8?q?=E7=89=8C=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...PlatformProjectLibraryBaseServiceImpl.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java index 0fa1ddf45..1a2b323e6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java @@ -23,6 +23,8 @@ import com.jero.modules.cert.template.enums.ControlTypeEnum; import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.feishu.enums.TemplateInfoEnum2; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.ota.service.impl.OtaManageApplyEOServiceImpl; import com.jero.modules.platform.mapper.PlatformProjectLawsInventoryEOMapper; import com.jero.modules.platform.mapper.PlatformProjectLibraryBaseMapper; @@ -194,6 +196,8 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl oSSFileList = new ArrayList<>(); + for (String fileId : projectLibraryBase.getBrandLabel().split(",")) { + OSSFile ossFile = new OSSFile(); + ossFile.setId(fileId); + ossFile.setConnectId(valueTemp); + oSSFileList.add(ossFile); + } + iOSSFileService.updateFileInfo(oSSFileList); + } save(projectLibraryBase); //创建任务计划时间轴 From bc887fe1898f2c0e23bebb04201dfcafec1fc44f Mon Sep 17 00:00:00 2001 From: "zyx.net" Date: Mon, 9 Oct 2023 16:13:18 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=BA=93=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ProjectDetails.vue | 109 ++++++++++++++---- .../components/addModel.vue | 99 ++++++++-------- 2 files changed, 141 insertions(+), 67 deletions(-) diff --git a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/ProjectDetails.vue index 9d1842670..0187711b7 100644 --- a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/ProjectDetails.vue @@ -15,42 +15,52 @@
- {{$t('entryName')}} - {{queryForm.projectNameId}} + {{$t('power')}} + {{queryForm.power}}
+
+ {{$t('producer')}} + {{queryForm.producer}} +
+
+ {{$t('targetMarket')}} + {{queryForm.targetMarket}} +
+
+
{{$t('brand')}} {{queryForm.brandText}}
- {{$t('configurationItem')}} + {{$t('projectStatus')}} {{queryForm.ipdInfo}} + :title="queryForm.projectStatus" + >{{queryForm.projectStatus}} +
+
+ {{$t('statisticalNodes')}} + {{queryForm.dutyTerritory}}
{{$t('regulatoryEngineer')}} - {{queryForm.createBy}} + {{queryForm.regulationOwnerIdName}}
- {{$t('dehicleDevelopmentPlan')}} + {{$t('engineeringInterfacePerson')}} {{queryForm.vehicleDevelopmentPlan}} -
-
- {{$t('certificationProgram')}} - {{queryForm.attestationPlan}} + :title="queryForm.engineeringInterfacePersonName" + >{{queryForm.engineeringInterfacePersonName}}
@@ -60,6 +70,31 @@ >{{queryForm.explanation}}
+
+
+ {{$t('Nameplatelabel')}} +
+ + +
+ +
+ +
+
+
+ + example + +
+
+
{{$t('complianceCertificationProgram')}} @@ -136,12 +171,31 @@ }, selectedRowKeys: [], idList: [], + previewVisible: false, + previewImage: '', + fileList: [], + projectNameList: [], + firstLevelDutyTerritoryList:[], + title: '', + uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload', + state: undefined, + myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl, + upDataList: [], + downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download', + downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download', regulatoryCertificationTaskPlanList: [] } }, mounted() { this.getForm() this.administrators = false + let long = localStorage.getItem('language') + this.cut = '' + if (long && long == 'zh-cn') { + this.cut = 'cn' + } else if (long && long == 'en-us') { + this.cut = 'en' + } this.activeKey = this.$t('regulatoryComplianceManagement') if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { this.userInfo().userRoleList.forEach(res => { @@ -201,7 +255,20 @@ downloadFile('/platform/projectLibraryBase/exportProjectProgressStatisticsXls', this.queryForm.projectNameId+'-'+this.queryForm.projectVersion+'-'+this.$t('projectProgressStatistics') + '.xls', query) }, - + handleCancelimg() { + this.previewVisible = false; + }, + async handlePreview(file) { + if (!file.url && !file.preview) { + file.preview = await getBase64(file.originFileObj); + } + this.previewImage = file.url || file.preview; + this.previewVisible = true; + }, + handleChange({ fileList }) { + this.fileList = fileList; + console.log(this.fileList) + }, versionStatisticsClick() { this.$refs.versionStatisticsRef.addModel(JSON.parse(JSON.stringify(this.selectedRowKeys))) }, diff --git a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue index 69b9bd99c..369d89a3b 100644 --- a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue +++ b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue @@ -77,7 +77,7 @@
- + * {{$t('projectStatus')}}
@@ -100,7 +100,6 @@ allowClear show-search mode="multiple" - class="box-input" optionFilterProp="label" :getPopupContainer="triggerNode=> triggerNode.parentNode" v-model="formInline.dutyTerritory"> @@ -121,7 +120,7 @@
- + * {{$t('regulatoryEngineer')}}
@@ -136,14 +135,15 @@
+ * {{$t('engineeringInterfacePerson')}}
- - + + v-model="formInline.engineeringInterfacePersonName"/>
@@ -156,12 +156,14 @@
+
@@ -179,21 +181,6 @@ - - - - - - - - - - - - - - -
@@ -203,7 +190,7 @@ + :rows="2"/>
@@ -235,7 +222,7 @@
+ v-model="formInline.cellEnterprise">
@@ -248,7 +235,7 @@
+ v-model="formInline.assemblyEnterprise">
@@ -259,7 +246,7 @@
+ v-model="formInline.partNumberCn">
@@ -272,7 +259,7 @@
+ v-model="formInline.part_numberEn">
@@ -289,7 +276,7 @@ + v-model="formInline.filingCode"> @@ -300,7 +287,7 @@ + v-model="formInline.supplierCode"> @@ -313,7 +300,7 @@ + v-model="formInline.productTypeCode"> @@ -324,7 +311,7 @@ + v-model="formInline.batteryTypeCode"> @@ -337,7 +324,7 @@ + v-model="formInline.specificationCode"> @@ -348,7 +335,7 @@ + v-model="formInline.traceabilityCode"> @@ -361,7 +348,7 @@ + v-model="formInline.ymdNumber"> @@ -378,7 +365,7 @@ + v-model="formInline.size"> @@ -389,7 +376,7 @@ + v-model="formInline.ratedCapacity"> @@ -402,7 +389,7 @@ + v-model="formInline.nominalVoltage"> @@ -413,7 +400,7 @@ + v-model="formInline.ratedMass"> @@ -426,7 +413,7 @@ + v-model="formInline.moduleNumber"> @@ -437,7 +424,7 @@ + v-model="formInline.connectionType"> @@ -450,7 +437,7 @@ + v-model="formInline.moduleSpecificationCode"> @@ -461,7 +448,7 @@ + v-model="formInline.coolingMethod"> @@ -479,10 +466,10 @@ @@ -498,7 +485,7 @@ + v-model="formInline.remark" :rows="2"/> @@ -514,9 +501,11 @@