Browse Source

关联试验申请单

ecss-tx
han\hanst 3 weeks ago
parent
commit
2465147c31
  1. 8
      src/main/java/com/xujie/sys/modules/pms/mapper/ProofingInformationMapper.java
  2. 86
      src/main/java/com/xujie/sys/modules/pms/service/Impl/ProofingInformationServiceImpl.java
  3. 14
      src/main/resources/mapper/pms/ProofingInformationMapper.xml

8
src/main/java/com/xujie/sys/modules/pms/mapper/ProofingInformationMapper.java

@ -125,4 +125,12 @@ public interface ProofingInformationMapper extends BaseMapper<ProofingInformatio
"#{updateDate} " +
"WHERE id = CONVERT(INT, #{documentDefinitionListId})")
void updateDocumentListForCopy(ProofDocumentData proofDocumentData);
/**
* 打样下达时定位试验申请单+三方签字对应的 plm_document_list_definition 主键 id
*/
Integer selectDocumentListIdForErfProofCopy(@Param("site") String site,
@Param("proofingId") Integer proofingId,
@Param("projectId") Integer projectId,
@Param("projectPartId") Integer projectPartId);
}

86
src/main/java/com/xujie/sys/modules/pms/service/Impl/ProofingInformationServiceImpl.java

@ -16,7 +16,6 @@ import com.xujie.sys.modules.sift.vo.QuerySavedVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
@ -30,6 +29,16 @@ import java.util.function.Function;
@Service
public class ProofingInformationServiceImpl implements ProofingInformationService {
/**
* 工程试验申请单在 sys_oss 中的业务标识 erf_exp_apply 附件查询一致
*/
private static final String ERF_OSS_MODULE = "ERF";
private static final String ERF_OSS_EXP_APPLY = "EXP_APPLY";
/**
* 打样文档与 getCopyDocumentFileList 等查询一致
*/
private static final String PROOF_OSS_REFTYPE = "项目文档";
@Autowired
private ProofingInformationMapper proofingInformationMapper;
@ -102,7 +111,11 @@ public class ProofingInformationServiceImpl implements ProofingInformationServic
boolean deleteSuccessful = true;
// 根据Id拿到旧数据
ProofingInformationData proofingInformationData = proofingInformationMapper.selecProofingOne(data.getProofingId());
if (data.getType() != 1) {
if (Objects.equals(data.getType(), 1)) {
copyErfExpApplyAttachmentsToProofDocument(data);
}
if (!Objects.equals(data.getType(), 1)) {
// 如果有旧记录且项目分类不同进行删除操作
if (proofingInformationData != null && !proofingInformationData.getcProjectTypeDb().equals(data.getcProjectTypeDb())) {
try {
@ -462,6 +475,75 @@ public class ProofingInformationServiceImpl implements ProofingInformationServic
return proofingInformationMapper.getCopyDocumentFileList(data);
}
/**
* 打样单号与工程试验申请单号一致时 erf_exp_apply sys_oss 中的附件order_ref1=ERF, order_ref6=EXP_APPLY
* 复制到打样文档试验申请单+三方签字对应的文档清单行
*/
private void copyErfExpApplyAttachmentsToProofDocument(ProofingInformationData data) {
if (data == null) {
return;
}
String applyNo = data.getProofingNo();
if (applyNo == null || applyNo.trim().isEmpty()) {
return;
}
applyNo = applyNo.trim();
Integer proofingId = data.getProofingId();
Integer projectId = data.getProjectId();
Integer projectPartId = data.getProjectPartId();
String site = data.getSite();
if (proofingId == null || projectId == null || projectPartId == null || site == null || site.isEmpty()) {
return;
}
Integer docListId = proofingInformationMapper.selectDocumentListIdForErfProofCopy(site, proofingId, projectId, projectPartId);
if (docListId == null) {
return;
}
QueryWrapper<SysOssEntity> qw = new QueryWrapper<>();
qw.eq("order_ref1", ERF_OSS_MODULE).eq("order_ref2", applyNo).eq("order_ref6", ERF_OSS_EXP_APPLY);
List<SysOssEntity> sources = sysOssService.list(qw);
if (sources == null || sources.isEmpty()) {
return;
}
String updateBy = data.getUpdateBy() != null ? data.getUpdateBy() : "";
String docDefIdStr = String.valueOf(docListId);
Date now = new Date();
boolean first = true;
for (SysOssEntity src : sources) {
if (src == null) {
continue;
}
SysOssEntity n = new SysOssEntity();
n.setUrl(src.getUrl());
n.setNewFileName(src.getNewFileName());
n.setFileName(src.getFileName());
n.setFileType(src.getFileType());
n.setFileSuffix(src.getFileSuffix());
n.setFileTypeCode(src.getFileTypeCode());
n.setCreatedBy(updateBy);
n.setCreateDate(now);
n.setOrderRef1(site);
n.setOrderRef2(String.valueOf(proofingId));
n.setOrderRef3(docDefIdStr);
n.setOrderRef4(String.valueOf(projectId));
n.setOrderRef5(String.valueOf(projectPartId));
n.setOrderRef6(null);
n.setOrderReftype(PROOF_OSS_REFTYPE);
n.setConclusion(src.getConclusion());
n.setCAdditionalInfo(src.getCAdditionalInfo());
n.setProjectIspush(src.getProjectIspush());
sysOssService.save(n);
if (first) {
ProofDocumentData pd = new ProofDocumentData();
pd.setDocumentDefinitionListId(docDefIdStr);
pd.setUpdateBy(updateBy);
pd.setUpdateDate(now);
proofingInformationMapper.updateDocumentListForCopy(pd);
first = false;
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void copyDocumentFileToDoc(ProofDocumentData data) {

14
src/main/resources/mapper/pms/ProofingInformationMapper.xml

@ -1120,6 +1120,20 @@
<select id="selecProofingOneByNo" resultType="com.xujie.sys.modules.pms.data.ProofingInformationData">
SELECT * FROM plm_proofing_information WHERE proofing_no = #{proofingNo}
</select>
<!-- 试验申请单附件同步至打样文档:文档类型为「试验申请单+三方签字」(与前端 document_type + document_desc 展示一致) -->
<select id="selectDocumentListIdForErfProofCopy" resultType="java.lang.Integer">
SELECT TOP 1 p.id
FROM plm_document_list_definition AS p
INNER JOIN document_type_definition AS dtd
ON p.document_type_id = dtd.document_type_id AND p.site = dtd.Site
WHERE p.site = #{site}
AND p.proofing_id = #{proofingId}
AND p.project_id = #{projectId}
AND p.test_part_id = #{projectPartId}
AND dtd.document_type LIKE N'%试验申请单%'
AND dtd.document_type LIKE N'%三方签字%'
</select>
<select id="getCopyDocumentFileList" resultType="com.xujie.sys.modules.pms.data.ProofDocumentData">
Select t.site,t.project_id,pi.project_no,pi.project_desc,t.test_part_id,ppp.test_part_no,ppp.part_desc,t.proofing_id,isnull(ppi.proofing_no,'*') as proofing_no,t.id,t.document_type_id,dtd.document_type,dtd.estimated_completion_days,(SELECT role_desc FROM business_role WHERE role_no = dtd.responsible_department AND site = '2') AS responsible_department
,t.uploaded_flag,d.file_name,d.create_date,d.created_by,d.id as oss_id,d.conclusion,d.url

Loading…
Cancel
Save