mitao
2025-02-19 ae7f04be9321ddbe17c46fae8ab05d34e7493f9f
medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwContractServiceImpl.java
@@ -19,6 +19,7 @@
import com.sinata.system.service.MwContractService;
import com.sinata.system.service.SysDepartmentService;
import lombok.RequiredArgsConstructor;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -82,7 +83,12 @@
    @Transactional(rollbackFor = Exception.class)
    public void add(MwContractDTO dto) {
        MwContract mwContract = BeanUtils.copyBean(dto, MwContract.class);
        save(mwContract);
        try {
            save(mwContract);
        } catch (DuplicateKeyException e) {
            throw new ServiceException("合同编号重复");
        }
        if (CollUtils.isNotEmpty(dto.getAttachmentList())) {
            List<MwAttachment> mwAttachments = BeanUtils.copyToList(dto.getAttachmentList(), MwAttachment.class);
            mwAttachments.forEach(attachment -> {
@@ -105,7 +111,12 @@
            throw new ServiceException("合同id不能为空");
        }
        MwContract mwContract = BeanUtils.copyBean(dto, MwContract.class);
        updateById(mwContract);
        try {
            updateById(mwContract);
        } catch (DuplicateKeyException e) {
            throw new ServiceException("合同编号重复");
        }
        if (CollUtils.isNotEmpty(dto.getAttachmentList())) {
            //删除原来的附件
            mwAttachmentService.lambdaUpdate().eq(MwAttachment::getType, AttachmentTypeEnum.CONTRACT.getCode()).eq(MwAttachment::getTargetId, dto.getId()).remove();