From 3009127bdf80a0bb39eb2774323dbde7c3eefd38 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Thu, 4 Jul 2024 15:06:23 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=8A=9F=E8=83=BD=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E6=88=90=E5=91=98=E5=8D=95=E4=BD=8D=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SafetyCenterSubitemController.java | 11 +- .../entity/SafetyCenterSubitem.java | 1 + .../service/SafetyCenterSubitemService.java | 136 ++++++++++++++++-- .../vo/SafetyCenterSubitemContactsImport.java | 31 ++++ .../vo/SafetyCenterSubitemImport.java | 39 +++++ 5 files changed, 209 insertions(+), 9 deletions(-) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemContactsImport.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemImport.java diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/controller/SafetyCenterSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/controller/SafetyCenterSubitemController.java index 147af04d..24f8108e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/controller/SafetyCenterSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/controller/SafetyCenterSubitemController.java @@ -12,6 +12,7 @@ import com.jero.common.system.query.QueryGenerator; import com.jero.drafting.entity.PayDraftingGroupSubItem; import com.jero.functionalsafetycenter.entity.SafetyCenterSubitem; import com.jero.functionalsafetycenter.service.SafetyCenterSubitemService; +import com.jero.functionalsafetycenter.vo.SafetyCenterSubitemImport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -175,7 +176,15 @@ public class SafetyCenterSubitemController extends JeroController importExcel(HttpServletRequest request, HttpServletResponse response) { - List excelData = super.getExcelData(request, SafetyCenterSubitem.class); + String projectId = request.getParameter("projectId"); + if (StringUtils.isBlank(projectId)){ + throw new JeroBootException(Result.NULL_ID); + } + List excelData = super.getExcelData(request, SafetyCenterSubitemImport.class); + if (excelData.isEmpty()) { + throw new JeroBootException(Result.NULL_DATA); + } + safetyCenterSubitemService.importExcelData(projectId,excelData); return super.importExcel(request, response, SafetyCenterSubitem.class); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/entity/SafetyCenterSubitem.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/entity/SafetyCenterSubitem.java index 72aeca20..c0c44cb1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/entity/SafetyCenterSubitem.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/entity/SafetyCenterSubitem.java @@ -71,6 +71,7 @@ public class SafetyCenterSubitem { */ @TableField(value = "remarks") @ApiModelProperty(value = "备注") + @Excel(name = "备注") private String remarks; /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java index 2a81cf40..87791071 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java @@ -5,11 +5,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.exception.JeroBootException; +import com.jero.company.entity.PayCompanyManagement; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayCompanyManagementService; +import com.jero.company.service.IPayContactsManagementService; import com.jero.functionalsafetycenter.common.SafetyCenterCommon; import com.jero.functionalsafetycenter.entity.SafetyCenter; import com.jero.functionalsafetycenter.entity.SafetyCenterSubitemContacts; +import com.jero.functionalsafetycenter.vo.SafetyCenterSubitemContactsImport; +import com.jero.functionalsafetycenter.vo.SafetyCenterSubitemImport; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -33,6 +41,10 @@ public class SafetyCenterSubitemService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SafetyCenterSubitem::getProjectId,projectId); wrapper.eq(SafetyCenterSubitem::getCompanyId,companyId); if (this.count(wrapper) > 0){ - throw new JeroBootException("成员单位已经存在"); + throw new JeroBootException("当前项目中已经存在,成员单位:"+companyName+""); } //判重,联系人是否重复 List contactsList = safetyCenterSubitem.getContactsList(); @@ -67,14 +82,21 @@ public class SafetyCenterSubitemService extends ServiceImpl parentContactList = contactsService.listBySubitemId(parentCenterSubitemId); List parentContactIdList = parentContactList.stream().map(SafetyCenterSubitemContacts::getContactsId).distinct().collect(Collectors.toList()); - if (!parentContactIdList.containsAll(contactIdList)) { - throw new JeroBootException("联系人无法添加到当前项目"); + List contactNameList = new ArrayList<>(); + for (String contactId : contactIdList) { + if (!parentContactIdList.contains(contactId)){ + PayContactsManagement contactsManagement = payContactsManagementService.getById(contactId); + contactNameList.add(contactsManagement.getName()); + } + } + if (!contactNameList.isEmpty()){ + throw new JeroBootException("企业联系人:"+ String.join(",",contactNameList) +",无法添加到当前项目"); } } //保存成员 @@ -99,12 +121,15 @@ public class SafetyCenterSubitemService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.ne(SafetyCenterSubitem::getId,subitemId); wrapper.eq(SafetyCenterSubitem::getProjectId,projectId); wrapper.eq(SafetyCenterSubitem::getCompanyId,companyId); if (this.count(wrapper) > 0){ - throw new JeroBootException("成员单位已经存在"); + throw new JeroBootException("当前项目中已经存在,成员单位:"+companyName+""); } //判重,联系人是否重复 List contactsList = safetyCenterSubitem.getContactsList(); @@ -125,14 +150,21 @@ public class SafetyCenterSubitemService extends ServiceImpl parentContactList = contactsService.listBySubitemId(parentCenterSubitemId); List parentContactIdList = parentContactList.stream().map(SafetyCenterSubitemContacts::getContactsId).distinct().collect(Collectors.toList()); - if (!parentContactIdList.containsAll(contactIdList)) { - throw new JeroBootException("联系人无法添加到当前项目"); + List contactNameList = new ArrayList<>(); + for (String contactId : contactIdList) { + if (!parentContactIdList.contains(contactId)){ + PayContactsManagement contactsManagement = payContactsManagementService.getById(contactId); + contactNameList.add(contactsManagement.getName()); + } + } + if (!contactNameList.isEmpty()){ + throw new JeroBootException("企业联系人:"+ String.join(",",contactNameList) +",无法添加到当前项目"); } //区分删除的联系人 List oldContactList = contactsService.listBySubitemId(subitemId); @@ -233,4 +265,92 @@ public class SafetyCenterSubitemService extends ServiceImpl excelData) { + SafetyCenter safetyCenter = safetyCenterService.getById(projectId); + if (safetyCenter == null){ + throw new JeroBootException("项目不存在"); + } + List errorMessage = new ArrayList<>(); + List companyNameList = new ArrayList<>(); + int errorRowNum = 3; + int errorRowNum2 = 3; + for (Object obj : excelData) { + errorRowNum += 1; + SafetyCenterSubitemImport subitemImport = (SafetyCenterSubitemImport) obj; + String companyName = subitemImport.getCompanyName(); + List contactsList = subitemImport.getContactsList(); + if (errorRowNum != 4){ + errorRowNum += contactsList.size() -1; + } + PayCompanyManagement company = null; + if (StringUtils.isBlank(companyName)){ + errorMessage.add("第" + errorRowNum + "行:成员单位不能为空"); + continue; + }else { + company = payCompanyManagementService.getCompanyByName(companyName); + if (company == null){ + errorMessage.add("第" + errorRowNum + "行:成员单位不存在"); + errorRowNum2 += contactsList.size(); + continue; + } + if (companyNameList.contains(companyName)) { + errorMessage.add("第" + errorRowNum + "行:成员单位重复"); + errorRowNum2 += contactsList.size(); + continue; + }else { + companyNameList.add(companyName); + } + } + String companyId = company.getId(); + List distinctContactsList = new ArrayList<>(); + List subitemContactsList = new ArrayList<>(); + for (SafetyCenterSubitemContactsImport contactsImport : contactsList) { + errorRowNum2 += 1; + String contacts = contactsImport.getContacts(); + if (StringUtils.isBlank(contacts)){ + errorMessage.add("第" + errorRowNum2 + "行:企业联系人不能为空"); + continue; + } + PayContactsManagement payContactsManagement = payContactsManagementService.checkByCompanyIdAndName(contacts, companyId); + if (payContactsManagement == null){ + errorMessage.add("第" + errorRowNum2 + "行:企业联系人不存在"); + continue; + } + if (distinctContactsList.contains(contacts)){ + errorMessage.add("第" + errorRowNum + "行:企业联系人重复"); + continue; + }else { + distinctContactsList.add(contacts); + } + SafetyCenterSubitemContacts contacts1 = new SafetyCenterSubitemContacts(); + contacts1.setContactsId(payContactsManagement.getId()); + subitemContactsList.add(contacts1); + } + SafetyCenterSubitem subitem = new SafetyCenterSubitem(); + subitem.setProjectId(projectId); + subitem.setCompanyId(companyId); + subitem.setRemarks(subitemImport.getRemarks()); + subitem.setContactsList(subitemContactsList); + try { + this.add(subitem); + }catch (JeroBootException e){ + log.error("",e); + errorMessage.add(e.getMessage()); + } + } + if (!errorMessage.isEmpty()){ + StringBuilder msg = new StringBuilder(); + for (String s : errorMessage) { + msg.append(s).append(",请修改!
"); + } + throw new JeroBootException(msg.toString()); + } + + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemContactsImport.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemContactsImport.java new file mode 100644 index 00000000..d311cccc --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemContactsImport.java @@ -0,0 +1,31 @@ +package com.jero.functionalsafetycenter.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * 功能安全中心成员-联系人 + * + * @author liJiaRao + * @date 2024-06-12 15:13 + */ +@Data +public class SafetyCenterSubitemContactsImport { + + /** + * 企业联系人 + */ + @ApiModelProperty(value = "企业联系人") + @Excel(name = "企业联系人") + private String contacts; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @Excel(name = "备注") + private String remarks; + +} \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemImport.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemImport.java new file mode 100644 index 00000000..52bc5e97 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/vo/SafetyCenterSubitemImport.java @@ -0,0 +1,39 @@ +package com.jero.functionalsafetycenter.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecgframework.poi.excel.annotation.ExcelCollection; + +import java.util.List; + +/** + * 功能安全中心成员 + * + * @author liJiaRao + * @date 2024-06-12 16:40 + */ +@Data +public class SafetyCenterSubitemImport { + + /** + * 成员单位 + */ + @ApiModelProperty(value = "成员单位") + @Excel(name = "成员单位") + private String companyName; + + /** + * 企业联系人列表 + */ + @ApiModelProperty(value = "企业联系人列表") + @ExcelCollection(name = "企业联系人列表") + private List contactsList; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remarks; + +} \ No newline at end of file