|
|
|
@ -27,6 +27,7 @@ import com.xujie.sys.modules.sys.dao.SysUserDao; |
|
|
|
import com.xujie.sys.modules.sys.dto.ManagerInfoDto; |
|
|
|
import com.xujie.sys.modules.sys.dto.UserRoleDto; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
@ -1379,10 +1380,13 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String copyExpApply(String sourceApplyNo, Boolean copyTriConfirm, Boolean copyAttachment,Boolean copyRawMaterialList, Long currentUserId) { |
|
|
|
public String copyExpApply(String sourceApplyNo,String applyNo, Boolean copyTriConfirm, Boolean copyAttachment,Boolean copyRawMaterialList, Long currentUserId) { |
|
|
|
log.info("=== 开始复制申请单 === 源申请单号: {}, 复制三方确认: {}, 复制附件: {}", |
|
|
|
sourceApplyNo, copyTriConfirm, copyAttachment); |
|
|
|
|
|
|
|
if (StringUtils.isBlank(applyNo)) { |
|
|
|
throw new XJException("新试验单号不能为空"); |
|
|
|
} |
|
|
|
// 1. 查询源申请单 |
|
|
|
ErfExpApply sourceEntity = this.getById(sourceApplyNo); |
|
|
|
if (sourceEntity == null) { |
|
|
|
@ -1392,13 +1396,7 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
// 2. 创建新申请单实体(复制基本信息) |
|
|
|
ErfExpApply newEntity = new ErfExpApply(); |
|
|
|
BeanUtils.copyProperties(sourceEntity, newEntity); |
|
|
|
|
|
|
|
// 3. 生成新的申请单号 |
|
|
|
String buCode = sourceEntity.getBuNo().split("-").length > 1 |
|
|
|
? sourceEntity.getBuNo().split("-")[1] |
|
|
|
: sourceEntity.getBuNo(); |
|
|
|
String newApplyNo = generateApplyNo(buCode); |
|
|
|
newEntity.setApplyNo(newApplyNo); |
|
|
|
newEntity.setApplyNo(applyNo); |
|
|
|
|
|
|
|
// 4. 重置状态和流程相关字段 |
|
|
|
newEntity.setStatus("草稿"); |
|
|
|
@ -1419,12 +1417,12 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
newEntity.setCreateTime(new Date()); |
|
|
|
// 6. 保存新申请单 |
|
|
|
this.save(newEntity); |
|
|
|
log.info("新申请单已创建: {}", newApplyNo); |
|
|
|
log.info("新申请单已创建: {}", applyNo); |
|
|
|
|
|
|
|
// 7. 复制三方确认信息(仅High Risk) |
|
|
|
if (Boolean.TRUE.equals(copyTriConfirm) && "High Risk".equals(sourceEntity.getExperimentType())) { |
|
|
|
try { |
|
|
|
erfTriConfirmService.copyTriConfirmRecords(sourceApplyNo, newApplyNo); |
|
|
|
erfTriConfirmService.copyTriConfirmRecords(sourceApplyNo, applyNo); |
|
|
|
log.info("三方确认信息复制成功"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.warn("复制三方确认信息失败: {}", e.getMessage()); |
|
|
|
@ -1436,7 +1434,7 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
if (Boolean.TRUE.equals(copyAttachment)) { |
|
|
|
try { |
|
|
|
// 调用附件服务复制附件 |
|
|
|
copyAttachments(sourceApplyNo, newApplyNo); |
|
|
|
copyAttachments(sourceApplyNo, applyNo); |
|
|
|
log.info("附件复制成功"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.warn("复制附件失败: {}", e.getMessage()); |
|
|
|
@ -1446,7 +1444,7 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
// 9. 复制原材料清单 |
|
|
|
if (Boolean.TRUE.equals(copyRawMaterialList)) { |
|
|
|
try { |
|
|
|
erfExpRawMaterialService.copyRawMaterialList(sourceApplyNo, newApplyNo); |
|
|
|
erfExpRawMaterialService.copyRawMaterialList(sourceApplyNo, applyNo); |
|
|
|
log.info("原材料清单复制成功"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.warn("复制原材料清单失败: {}", e.getMessage()); |
|
|
|
@ -1454,8 +1452,8 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
log.info("=== 复制申请单完成 === 新申请单号: {}", newApplyNo); |
|
|
|
return newApplyNo; |
|
|
|
log.info("=== 复制申请单完成 === 新申请单号: {}", applyNo); |
|
|
|
return applyNo; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
|