Browse Source

Alpha

master
han\hanst 2 weeks ago
parent
commit
8cf49995f4
  1. 39
      src/main/java/com/xujie/sys/modules/pms/data/EamProjectInfoData.java
  2. 76
      src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java
  3. 3
      src/main/resources/mapper/factory/SiteMapper.xml
  4. 3
      src/main/resources/mapper/pms/EamMapper.xml
  5. 24
      src/main/resources/mapper/pms/EamProjectMapper.xml

39
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;
}

76
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<EamProjectPartInfoData> list = (List<EamProjectPartInfoData>) 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<String> 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("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectCategory()).append("</td>");
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getPriority()).append("</td>");
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(proofingInformationData.getStatus()).append("</td>");
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(formatter.format(proofingInformationData.getDueDate())).append("</td>");
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(
proofingInformationData.getDueDate()!=null?formatter.format(proofingInformationData.getDueDate()):"").append("</td>");
if (!Objects.equals(type, "项目物料立项")) {
// 使用 <a> 标签创建可点击链接链接地址和文本均自定义
String documentLink = "<a href='http://172.26.68.20:9001/#/eam-eamProjectInfoForUploads?flag=4&documentDefinitionListId=" + proofingInformationData.getDocumentDefinitionListId() + "'>"
@ -745,6 +722,24 @@ public class EamProjectServiceImpl implements EamProjectService {
qcMapper.saveSendMailRecord(mailRecord);
}
private void addUsernameIfPresent(List<String> 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));

3
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
<if test = "site != null and site != ''">
AND a.site = #{site}
</if>
</select>
<!-- 获取当前用户包含的角色 -->

3
src/main/resources/mapper/pms/EamMapper.xml

@ -3700,6 +3700,9 @@
<if test="query.documentType != null and query.documentType != ''">
AND UPPER(a.document_type) LIKE '%' + UPPER(#{query.documentType}) + '%'
</if>
<if test="query.responsibleDepartment != null and query.responsibleDepartment != ''">
AND UPPER(a.responsible_department) LIKE '%' + UPPER(#{query.responsibleDepartment}) + '%'
</if>
</select>
<select id="checkEamDocumentType" resultType="com.xujie.sys.modules.pms.data.EamDocumentTypeData">
SELECT

24
src/main/resources/mapper/pms/EamProjectMapper.xml

@ -5,9 +5,9 @@
<mapper namespace="com.xujie.sys.modules.pms.mapper.EamProjectMapper">
<insert id="saveNeweamProject">
INSERT INTO plm_project_info
(site,bu_no,project_no,ori_project_id,project_category,project_name,project_desc,status,project_source,customer_no,final_customer_id,priority,remark,need_date,c_project_region,project_manager,project_owner,engineer,c_quality_engineer1,c_quality_engineer2,c_quality_engineer3,c_quality_engineer4,c_quality_engineer5,c_quality_engineer6,c_manufacture_engineer,doc_engineer,ipqc_hard_tag,c_quality_engineer7,doc_engineer2,project_creation_date,create_date,create_by)
(site,bu_no,project_no,ori_project_id,project_category,project_name,project_desc,status,project_source,customer_no,final_customer_id,priority,remark,need_date,c_project_region,project_manager,project_owner,engineer,c_quality_engineer1,c_quality_engineer2,c_quality_engineer3,c_quality_engineer4,c_quality_engineer5,c_quality_engineer6,c_manufacture_engineer,doc_engineer,ipqc_hard_tag,c_quality_engineer7,qc_engineer,pe_engineer,ee_engineer,doc_engineer2,project_creation_date,create_date,create_by)
VALUES
(#{site},#{buNo},#{projectNo},#{oriProjectId},#{projectCategory},#{projectName},#{projectDesc},#{status},#{projectSource},#{customerNo},#{finalCustomerId},#{priority},#{remark},#{needDate},#{cProjectRegion},#{projectManager},#{projectOwner},#{engineer},#{cQualityEngineer1},#{cQualityEngineer2},#{cQualityEngineer3},#{cQualityEngineer4},#{cQualityEngineer5},#{cQualityEngineer6},#{cManufactureEngineer},#{docEngineer},#{ipqcHardTag},#{cQualityEngineer7},#{docEngineer2},#{projectCreationDate},GetDATE(),#{createBy})
(#{site},#{buNo},#{projectNo},#{oriProjectId},#{projectCategory},#{projectName},#{projectDesc},#{status},#{projectSource},#{customerNo},#{finalCustomerId},#{priority},#{remark},#{needDate},#{cProjectRegion},#{projectManager},#{projectOwner},#{engineer},#{cQualityEngineer1},#{cQualityEngineer2},#{cQualityEngineer3},#{cQualityEngineer4},#{cQualityEngineer5},#{cQualityEngineer6},#{cManufactureEngineer},#{docEngineer},#{ipqcHardTag},#{cQualityEngineer7},#{qcEngineer},#{peEngineer},#{eeEngineer},#{docEngineer2},#{projectCreationDate},GetDATE(),#{createBy})
</insert>
<insert id="saveProductionValidationDocument">
INSERT INTO plm_project_document_confirm_file_list
@ -31,7 +31,7 @@
#{cQualityEngineer2},c_quality_engineer3 = #{cQualityEngineer3},c_quality_engineer4 =
#{cQualityEngineer4},c_quality_engineer5 = #{cQualityEngineer5},c_quality_engineer6 =
#{cQualityEngineer6},c_manufacture_engineer = #{cManufactureEngineer},doc_engineer =
#{docEngineer},ipqc_hard_tag = #{ipqcHardTag},c_quality_engineer7 = #{cQualityEngineer7},update_date =
#{docEngineer},ipqc_hard_tag = #{ipqcHardTag},c_quality_engineer7 = #{cQualityEngineer7},qc_engineer = #{qcEngineer},pe_engineer = #{peEngineer},ee_engineer = #{eeEngineer},update_date =
GETDATE(),update_by = #{updateBy},project_creation_date = #{projectCreationDate},doc_engineer2 = #{docEngineer2}
,project_close_date =
CASE
@ -99,7 +99,7 @@
SELECT
a.id as project_id,a.site,a.bu_no,d.bu_desc,a.project_no,a.project_category,a.project_name, a.project_desc,a.status, a.project_source, a.customer_no, a.final_customer_id, a.priority,a.engineer,
a.remark,a.need_date,a.c_project_region,a.project_manager,a.project_owner,a.c_project_build_date,a.c_quality_engineer1,a.c_quality_engineer2,a.c_quality_engineer3,a.c_quality_engineer4,a.c_quality_engineer5,a.c_quality_engineer6,
a.c_manufacture_engineer,a.doc_engineer,a.doc_engineer2,a.ipqc_hard_tag,A.c_quality_engineer7,a.project_close_date,a.project_creation_date,a.create_date,a.create_by,a.update_date,a.update_by,c.customer_desc, CKT_MES_II_REAL.dbo.plm_get_customer_desc(a.site,a.final_customer_id) as final_customer_name
a.c_manufacture_engineer,a.doc_engineer,a.doc_engineer2,a.ipqc_hard_tag,A.c_quality_engineer7,a.qc_engineer,a.pe_engineer,a.ee_engineer,a.project_close_date,a.project_creation_date,a.create_date,a.create_by,a.update_date,a.update_by,c.customer_desc, CKT_MES_II_REAL.dbo.plm_get_customer_desc(a.site,a.final_customer_id) as final_customer_name
FROM plm_project_info as a
LEFT JOIN plm_customer_information as c ON a.customer_no = c.customer_no and a.site = c.site
left join CKT_MES_II_REAL.dbo.BU as d on a.site = d.site and a.bu_no = d.bu_no
@ -165,7 +165,7 @@
SELECT
a.id as project_id,a.site,a.bu_no,d.bu_desc,a.project_no,a.project_category,a.project_name, a.project_desc,a.status, a.project_source, a.customer_no, a.final_customer_id, a.priority,a.engineer,
a.remark,a.need_date,a.c_project_region,a.project_manager,a.project_owner,a.c_project_build_date,a.c_quality_engineer1,a.c_quality_engineer2,a.c_quality_engineer3,a.c_quality_engineer4,a.c_quality_engineer5,a.c_quality_engineer6,
a.c_manufacture_engineer,a.doc_engineer,a.doc_engineer2,a.ipqc_hard_tag,a.c_quality_engineer7,a.project_close_date,a.project_creation_date,a.create_date,a.create_by,a.update_date,a.update_by,c.customer_desc, CKT_MES_II_REAL.dbo.plm_get_customer_desc(a.site,a.final_customer_id) as final_customer_name
a.c_manufacture_engineer,a.doc_engineer,a.doc_engineer2,a.ipqc_hard_tag,a.c_quality_engineer7,a.qc_engineer,a.pe_engineer,a.ee_engineer,a.project_close_date,a.project_creation_date,a.create_date,a.create_by,a.update_date,a.update_by,c.customer_desc, CKT_MES_II_REAL.dbo.plm_get_customer_desc(a.site,a.final_customer_id) as final_customer_name
FROM plm_project_info as a
LEFT JOIN plm_customer_information as c ON a.customer_no = c.customer_no and a.site = c.site
left join CKT_MES_II_REAL.dbo.BU as d on a.site = d.site and a.bu_no = d.bu_no
@ -182,7 +182,7 @@
SELECT
a.site,a.bu_no,a.id as project_id,a.project_category, a.project_name, a.project_desc,a.status, a.project_source, a.customer_no, a.priority,
a.remark,a.need_date,a.c_project_region,a.project_manager,a.project_owner,a.c_project_build_date,a.c_quality_engineer1,a.c_quality_engineer2,a.c_quality_engineer3,a.c_quality_engineer4,a.c_quality_engineer5,a.c_quality_engineer6,
a.c_manufacture_engineer,a.doc_engineer,a.doc_engineer2,a.ipqc_hard_tag,a.c_quality_engineer7,a.project_close_date,a.project_creation_date,a.create_date,a.create_by,a.update_date,a.update_by,b.test_part_no,b.part_desc
a.c_manufacture_engineer,a.doc_engineer,a.doc_engineer2,a.ipqc_hard_tag,a.c_quality_engineer7,a.qc_engineer,a.pe_engineer,a.ee_engineer,a.project_close_date,a.project_creation_date,a.create_date,a.create_by,a.update_date,a.update_by,b.test_part_no,b.part_desc
FROM plm_project_info as a
LEFT JOIN plm_project_part as b ON a.id = b.project_id
WHERE a.project_no = #{projectNo} and a.site = #{site} and a.bu_no = #{buNo}
@ -237,8 +237,6 @@
AND b.BU = a.bu_no
AND b.document_type = '产品文档'
<where>
a.site = #{query.site}
AND a.bu_no = #{query.buNo}
AND s.user_id IS NOT NULL
AND b.userid IS NULL
<if test="query.username != null and query.username != ''">
@ -439,6 +437,8 @@
LEFT JOIN plm_customer_information as c ON a.customer_no = c.customer_no and a.site = c.site
left join CKT_MES_II_REAL.dbo.BU as d on b.site = d.site and b.bu_no = d.bu_no
<where>
b.site in (select site from eam_access_site where username = #{query.userName})
and (b.site + '-' + b.bu_no) in (select * from dbo.query_bu(#{query.userName}))
<if test="query.projectId != null and query.projectId != ''">
AND (
a.project_id = #{query.projectId}
@ -659,6 +659,9 @@
engineer,
ipqc_hard_tag,
c_quality_engineer7,
qc_engineer,
pe_engineer,
ee_engineer,
status,
part_type,
priority,
@ -689,6 +692,9 @@
#{engineer},
#{ipqcHardTag},
#{cQualityEngineer7},
#{qcEngineer},
#{peEngineer},
#{eeEngineer},
#{status},
#{partType},
#{priority},
@ -709,7 +715,7 @@
SET test_part_no = #{testPartNo},part_desc = #{partDesc},update_date = GETDATE(),update_by = #{updateBy},
build_date = #{buildDate}, priority = #{priority}, project_category = #{projectCategory}, need_date =
#{needDate}, project_manager = #{projectManager}, project_owner = #{projectOwner}, engineer = #{engineer}, c_quality_engineer1 = #{cQualityEngineer1}, c_quality_engineer2 = #{cQualityEngineer2}, c_quality_engineer3 = #{cQualityEngineer3}, c_quality_engineer4 = #{cQualityEngineer4}, c_quality_engineer5 = #{cQualityEngineer5}, c_quality_engineer6 = #{cQualityEngineer6}, c_manufacture_engineer = #{cManufactureEngineer},doc_engineer = #{docEngineer},doc_engineer2 = #{docEngineer2},ipqc_hard_tag = #{ipqcHardTag},
c_quality_engineer7 = #{cQualityEngineer7},remark = #{remark},
c_quality_engineer7 = #{cQualityEngineer7},qc_engineer = #{qcEngineer},pe_engineer = #{peEngineer},ee_engineer = #{eeEngineer},remark = #{remark},
status = CASE WHEN #{status} IS NOT NULL THEN #{status} ELSE status END,customer_no = #{customerNo},
part_type = CASE WHEN #{partType} IS NOT NULL THEN #{partType} ELSE part_type END,
close_date = (CASE

Loading…
Cancel
Save