diff --git a/src/main/java/com/xujie/sys/modules/pms/data/EamProjectInfoData.java b/src/main/java/com/xujie/sys/modules/pms/data/EamProjectInfoData.java index 5a20683b..7d57abeb 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/EamProjectInfoData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/EamProjectInfoData.java @@ -249,6 +249,21 @@ public class EamProjectInfoData extends QueryPage { private String cQualityEngineer7; + /** + * QC + */ + private String qcEngineer; + + /** + * PE + */ + private String peEngineer; + + /** + * EE + */ + private String eeEngineer; + /** * 项目结案日期 * @@ -658,6 +673,30 @@ public class EamProjectInfoData extends QueryPage { this.cQualityEngineer7 = cQualityEngineer7; } + public String getQcEngineer() { + return qcEngineer; + } + + public void setQcEngineer(String qcEngineer) { + this.qcEngineer = qcEngineer; + } + + public String getPeEngineer() { + return peEngineer; + } + + public void setPeEngineer(String peEngineer) { + this.peEngineer = peEngineer; + } + + public String getEeEngineer() { + return eeEngineer; + } + + public void setEeEngineer(String eeEngineer) { + this.eeEngineer = eeEngineer; + } + public String getDocEngineer2() { return docEngineer2; } diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java index 654edc0c..4b99aee7 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java @@ -19,6 +19,7 @@ import com.xujie.sys.modules.pms.service.ProofingInformationService; import com.xujie.sys.modules.pms.util.HttpClientUtil; import com.xujie.sys.modules.sift.vo.QuerySavedVo; import com.xujie.sys.modules.sys.entity.SysUserEntity; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.mybatis.spring.SqlSessionTemplate; import com.xujie.sys.common.utils.PageUtils; @@ -280,15 +281,13 @@ public class EamProjectServiceImpl implements EamProjectService { eamProjectPartInfoData.setProjectPartId(inData.getProjectPartId()); eamProjectPartInfoData.setLimit(-1); eamProjectPartInfoData.setPage(1); - PageUtils pageUtils = this.eamProjectPartSearch(eamProjectPartInfoData); - List list = (List) pageUtils.getList(); ProofingInformationData proofingInformationData = new ProofingInformationData(); proofingInformationData.setSite(inData.getSite()); proofingInformationData.setBuNo(inData.getBuNo()); proofingInformationData.setProjectCategory(inData.getProjectCategory()); proofingInformationData.setcProjectTypeDb(inData.getProjectCategory()); proofingInformationData.setProjectId(inData.getProjectId()); - proofingInformationData.setProjectPartId(list.get(0).getProjectPartId()); + proofingInformationData.setProjectPartId(inData.getProjectPartId()); proofingInformationData.setProjectNo(inData.getProjectNo()); proofingInformationData.setProjectDesc(inData.getProjectDesc()); proofingInformationData.setPartDesc(inData.getPartDesc()); @@ -558,42 +557,19 @@ public class EamProjectServiceImpl implements EamProjectService { } } else { if (Objects.equals(inData.getStatus(), "进行中")) { - String r1 = null; - String r2 = null; - String r3 = null; - String r4 = null; - String r5 = null; - String r6 = null; - String r7 = null; - String r8 = null; - String r9 = null; List userNames = new ArrayList<>(); - r1 = inData.getcManufactureEngineer().split("-")[0]; - r2 = inData.getcQualityEngineer1().split("-")[0]; - r3 = inData.getcQualityEngineer2().split("-")[0]; - r4 = inData.getcQualityEngineer3().split("-")[0]; - r9 = inData.getEngineer().split("-")[0]; - userNames.add(r1); - userNames.add(r2); - userNames.add(r3); - userNames.add(r4); - userNames.add(r9); - if (inData.getcQualityEngineer4() != null && !inData.getcQualityEngineer4().equals("")){ - r5 = inData.getcQualityEngineer4().split("-")[0]; - userNames.add(r5); - } - if (inData.getcQualityEngineer5() != null && !inData.getcQualityEngineer5().equals("")){ - r6 = inData.getcQualityEngineer5().split("-")[0]; - userNames.add(r6); - } - if (inData.getcQualityEngineer6() != null && !inData.getcQualityEngineer6().equals("")){ - r7 = inData.getcQualityEngineer6().split("-")[0]; - userNames.add(r7); - } - if (inData.getDocEngineer() != null && !inData.getDocEngineer().equals("")){ - r8 = inData.getDocEngineer().split("-")[0]; - userNames.add(r8); - } + addUsernameIfPresent(userNames, inData.getcManufactureEngineer()); + addUsernameIfPresent(userNames, inData.getcQualityEngineer1()); + addUsernameIfPresent(userNames, inData.getcQualityEngineer2()); + addUsernameIfPresent(userNames, inData.getcQualityEngineer3()); + addUsernameIfPresent(userNames, inData.getEngineer()); + addUsernameIfPresent(userNames, inData.getcQualityEngineer4()); + addUsernameIfPresent(userNames, inData.getcQualityEngineer5()); + addUsernameIfPresent(userNames, inData.getcQualityEngineer6()); + addUsernameIfPresent(userNames, inData.getDocEngineer()); + addUsernameIfPresent(userNames, inData.getQcEngineer()); + addUsernameIfPresent(userNames, inData.getPeEngineer()); + addUsernameIfPresent(userNames, inData.getEeEngineer()); // 将所有username存储在一个集合中 emailAddress = EamProjectMapper.getEmailsByUsernames(userNames, inData.getSite()); if (!emailAddress.isEmpty()) { @@ -653,7 +629,8 @@ public class EamProjectServiceImpl implements EamProjectService { s.append("").append(proofingInformationData.getProjectCategory()).append(""); s.append("").append(proofingInformationData.getPriority()).append(""); s.append("").append(proofingInformationData.getStatus()).append(""); - s.append("").append(formatter.format(proofingInformationData.getDueDate())).append(""); + s.append("").append( + proofingInformationData.getDueDate()!=null?formatter.format(proofingInformationData.getDueDate()):"").append(""); if (!Objects.equals(type, "项目物料立项")) { // 使用 标签创建可点击链接,链接地址和文本均自定义 String documentLink = "" @@ -745,6 +722,24 @@ public class EamProjectServiceImpl implements EamProjectService { qcMapper.saveSendMailRecord(mailRecord); } + private void addUsernameIfPresent(List userNames, String userWithDisplay) { + String username = extractUsername(userWithDisplay); + if (StringUtils.isNotBlank(username)) { + userNames.add(username); + } + } + + private String extractUsername(String userWithDisplay) { + if (StringUtils.isBlank(userWithDisplay)) { + return null; + } + int separatorIndex = userWithDisplay.indexOf("-"); + if (separatorIndex > 0) { + return userWithDisplay.substring(0, separatorIndex); + } + return userWithDisplay; + } + @Override public void warnSendMailHandle(ProofDocumentData inData) { String type = null; @@ -918,6 +913,9 @@ public class EamProjectServiceImpl implements EamProjectService { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setFrom(mailSendData.getEmailForm(), mailSendData.getPersonal()); + if (emailAddress.getEmail()==null || emailAddress.getEmail().isEmpty()) { + throw new RuntimeException("收件人邮箱地址为空,请联系系统管理员!"); + } // 如果emailAddress.getEmail()的第一个字符是;,则去掉第一个字符 if (emailAddress.getEmail().startsWith(";")) { emailAddress.setEmail(emailAddress.getEmail().substring(1)); diff --git a/src/main/resources/mapper/factory/SiteMapper.xml b/src/main/resources/mapper/factory/SiteMapper.xml index 0249f612..38aba7fb 100644 --- a/src/main/resources/mapper/factory/SiteMapper.xml +++ b/src/main/resources/mapper/factory/SiteMapper.xml @@ -241,6 +241,9 @@ left join access_role b on a.site=b.site and a.role_no = b.role_no and b.username = #{username} WHERE a.site in (select site from eam_access_site where username = #{username}) and b.username is null + + AND a.site = #{site} + @@ -454,4 +457,4 @@ - \ No newline at end of file + diff --git a/src/main/resources/mapper/pms/EamMapper.xml b/src/main/resources/mapper/pms/EamMapper.xml index f22f4663..91aaf440 100644 --- a/src/main/resources/mapper/pms/EamMapper.xml +++ b/src/main/resources/mapper/pms/EamMapper.xml @@ -3700,6 +3700,9 @@ AND UPPER(a.document_type) LIKE '%' + UPPER(#{query.documentType}) + '%' + + AND UPPER(a.responsible_department) LIKE '%' + UPPER(#{query.responsibleDepartment}) + '%' +