收款与付款-采购、综合服务付款接口
This commit is contained in:
		| @ -67,4 +67,6 @@ public interface IXzdCsContractInformationService extends IService<XzdCsContract | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); |     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); | ||||||
|  |  | ||||||
|  |     String queryCodeById(Long contractCode); | ||||||
| } | } | ||||||
|  | |||||||
| @ -167,7 +167,6 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha | |||||||
|         if (flag) { |         if (flag) { | ||||||
|             bo.setId(add.getId()); |             bo.setId(add.getId()); | ||||||
|         } |         } | ||||||
|         addzixiang(bo,add); |  | ||||||
|         String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName(); |         String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName(); | ||||||
|         if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { |         if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { | ||||||
|             throw new ServiceException("扣款与奖励项不能为空"); |             throw new ServiceException("扣款与奖励项不能为空"); | ||||||
| @ -232,11 +231,6 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha | |||||||
|         lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId()); |         lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId()); | ||||||
|         xzdDeductionItemsService.remove(lambdaQueryWrapper4); |         xzdDeductionItemsService.remove(lambdaQueryWrapper4); | ||||||
|  |  | ||||||
|         addzixiang(bo, update); |  | ||||||
|         return baseMapper.updateById(update) > 0; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private void addzixiang(XzdCsContractChangeBo bo, XzdCsContractChange update) { |  | ||||||
|         String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName(); |         String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName(); | ||||||
|         if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { |         if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { | ||||||
|             throw new ServiceException("扣款与奖励项不能为空"); |             throw new ServiceException("扣款与奖励项不能为空"); | ||||||
| @ -264,8 +258,10 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha | |||||||
|             clause.setContractDetailsId(update.getId()); |             clause.setContractDetailsId(update.getId()); | ||||||
|         } |         } | ||||||
|         xzdSettlementRulesService.saveBatch(bo.getZftk()); |         xzdSettlementRulesService.saveBatch(bo.getZftk()); | ||||||
|  |         return baseMapper.updateById(update) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 保存前的数据校验 |      * 保存前的数据校验 | ||||||
|      */ |      */ | ||||||
|  | |||||||
| @ -405,4 +405,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra | |||||||
|         xzdSettlementRulesService.remove(lambdaQueryWrapper3); |         xzdSettlementRulesService.remove(lambdaQueryWrapper3); | ||||||
|         return baseMapper.deleteByIds(ids) > 0; |         return baseMapper.deleteByIds(ids) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String queryCodeById(Long contractCode) { | ||||||
|  |         return baseMapper.selectVoById(contractCode).getContractCode(); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -26,6 +26,7 @@ import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendVo; | |||||||
| import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; | import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; | ||||||
| import org.dromara.xzd.comprehensive.mapper.XzdCsContractSuspendMapper; | import org.dromara.xzd.comprehensive.mapper.XzdCsContractSuspendMapper; | ||||||
| import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendService; | import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendService; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
| import java.util.*; | import java.util.*; | ||||||
|  |  | ||||||
| @ -163,6 +164,7 @@ public class XzdCsContractSuspendServiceImpl extends ServiceImpl<XzdCsContractSu | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { | ||||||
|         if(isValid){ |         if(isValid){ | ||||||
|             //TODO 做一些业务上的校验,判断是否需要校验 |             //TODO 做一些业务上的校验,判断是否需要校验 | ||||||
|  | |||||||
| @ -100,9 +100,9 @@ public class XzdSfkCaigouFk extends BaseEntity { | |||||||
|     private String statCycle; |     private String statCycle; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 是否是研发类 |      * 项目类型 | ||||||
|      */ |      */ | ||||||
|     private Long isYanfa; |     private String projectType; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 税率(带*,必填) |      * 税率(带*,必填) | ||||||
|  | |||||||
| @ -72,7 +72,7 @@ public class XzdSfkZonhefuwuFk extends BaseEntity { | |||||||
|     /** |     /** | ||||||
|      * 项目 |      * 项目 | ||||||
|      */ |      */ | ||||||
|     private Long projectId; |     private Long project; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 付款单位 |      * 付款单位 | ||||||
| @ -164,6 +164,11 @@ public class XzdSfkZonhefuwuFk extends BaseEntity { | |||||||
|      */ |      */ | ||||||
|     private BigDecimal currentPaymentRatio; |     private BigDecimal currentPaymentRatio; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 累计进度支付占累计进度应付(%) | ||||||
|  |      */ | ||||||
|  |     private BigDecimal totalPaymentRatio; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 累计支付占合同比例(%) |      * 累计支付占合同比例(%) | ||||||
|      */ |      */ | ||||||
|  | |||||||
| @ -8,8 +8,12 @@ import io.github.linpeilie.annotations.AutoMapper; | |||||||
| import lombok.Data; | import lombok.Data; | ||||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||||
| import jakarta.validation.constraints.*; | import jakarta.validation.constraints.*; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; | ||||||
|  |  | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 采购合同付款业务对象 xzd_sfk_caigou_fk |  * 采购合同付款业务对象 xzd_sfk_caigou_fk | ||||||
| @ -31,7 +35,7 @@ public class XzdSfkCaigouFkBo extends BaseEntity { | |||||||
|     /** |     /** | ||||||
|      * 单据编码(带*,必填) |      * 单据编码(带*,必填) | ||||||
|      */ |      */ | ||||||
|     @NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) |     @NotBlank(message = "单据编码(带*,必填)不能为空", groups = { EditGroup.class }) | ||||||
|     private String docCode; |     private String docCode; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @ -106,9 +110,9 @@ public class XzdSfkCaigouFkBo extends BaseEntity { | |||||||
|     private String statCycle; |     private String statCycle; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 是否是研发类 |      * 项目类型 | ||||||
|      */ |      */ | ||||||
|     private Long isYanfa; |     private String projectType; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 税率(带*,必填) |      * 税率(带*,必填) | ||||||
| @ -227,5 +231,8 @@ public class XzdSfkCaigouFkBo extends BaseEntity { | |||||||
|      */ |      */ | ||||||
|     private String fileId; |     private String fileId; | ||||||
|  |  | ||||||
|  |     List<XzdSfkFukuan> fukuanList; | ||||||
|  |  | ||||||
|  |     List<XzdSfkFapiao> fapiaoList; | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,5 +1,7 @@ | |||||||
| package org.dromara.xzd.paymentsReceipts.domain.bo; | package org.dromara.xzd.paymentsReceipts.domain.bo; | ||||||
|  |  | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk; | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk; | ||||||
| import org.dromara.common.mybatis.core.domain.BaseEntity; | import org.dromara.common.mybatis.core.domain.BaseEntity; | ||||||
| import org.dromara.common.core.validate.AddGroup; | import org.dromara.common.core.validate.AddGroup; | ||||||
| @ -10,6 +12,7 @@ import lombok.EqualsAndHashCode; | |||||||
| import jakarta.validation.constraints.*; | import jakarta.validation.constraints.*; | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 综合服务合同付款业务对象 xzd_sfk_zonhefuwu_fk |  * 综合服务合同付款业务对象 xzd_sfk_zonhefuwu_fk | ||||||
| @ -31,7 +34,7 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity { | |||||||
|     /** |     /** | ||||||
|      * 单据编码(带*,必填) |      * 单据编码(带*,必填) | ||||||
|      */ |      */ | ||||||
|     @NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) |     @NotBlank(message = "单据编码(带*,必填)不能为空", groups = {EditGroup.class }) | ||||||
|     private String docCode; |     private String docCode; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @ -76,7 +79,7 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity { | |||||||
|     /** |     /** | ||||||
|      * 项目 |      * 项目 | ||||||
|      */ |      */ | ||||||
|     private Long projectId; |     private Long project; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 付款单位 |      * 付款单位 | ||||||
| @ -172,6 +175,11 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity { | |||||||
|      */ |      */ | ||||||
|     private BigDecimal currentPaymentRatio; |     private BigDecimal currentPaymentRatio; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 累计进度支付占累计进度应付(%) | ||||||
|  |      */ | ||||||
|  |     private BigDecimal totalPaymentRatio; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 累计支付占合同比例(%) |      * 累计支付占合同比例(%) | ||||||
|      */ |      */ | ||||||
| @ -222,5 +230,9 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity { | |||||||
|      */ |      */ | ||||||
|     private String fileId; |     private String fileId; | ||||||
|  |  | ||||||
|  |     List<XzdSfkFukuan> fukuanList; | ||||||
|  |  | ||||||
|  |     List<XzdSfkFapiao> fapiaoList; | ||||||
|  |  | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package org.dromara.xzd.paymentsReceipts.domain.vo; | package org.dromara.xzd.paymentsReceipts.domain.vo; | ||||||
|  |  | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
|  |  | ||||||
|  | import org.dromara.common.mybatis.core.domain.BaseEntity; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.XzdSfkCaigouFk; | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkCaigouFk; | ||||||
| import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||||
| import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; | ||||||
| @ -8,12 +10,14 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; | |||||||
| import org.dromara.common.excel.convert.ExcelDictConvert; | import org.dromara.common.excel.convert.ExcelDictConvert; | ||||||
| import io.github.linpeilie.annotations.AutoMapper; | import io.github.linpeilie.annotations.AutoMapper; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; | ||||||
|  |  | ||||||
| import java.io.Serial; | import java.io.Serial; | ||||||
| import java.io.Serializable; | import java.io.Serializable; | ||||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -25,7 +29,7 @@ import java.util.Date; | |||||||
| @Data | @Data | ||||||
| @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | ||||||
| @AutoMapper(target = XzdSfkCaigouFk.class) | @AutoMapper(target = XzdSfkCaigouFk.class) | ||||||
| public class XzdSfkCaigouFkVo implements Serializable { | public class XzdSfkCaigouFkVo extends BaseEntity { | ||||||
|  |  | ||||||
|     @Serial |     @Serial | ||||||
|     private static final long serialVersionUID = 1L; |     private static final long serialVersionUID = 1L; | ||||||
| @ -63,6 +67,7 @@ public class XzdSfkCaigouFkVo implements Serializable { | |||||||
|     @ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class) |     @ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class) | ||||||
|     @ExcelDictFormat(readConverterExp = "带=*,必填") |     @ExcelDictFormat(readConverterExp = "带=*,必填") | ||||||
|     private Long contractCode; |     private Long contractCode; | ||||||
|  |     private String contractCodeName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 合同名称 |      * 合同名称 | ||||||
| @ -94,12 +99,14 @@ public class XzdSfkCaigouFkVo implements Serializable { | |||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "项目") |     @ExcelProperty(value = "项目") | ||||||
|     private Long project; |     private Long project; | ||||||
|  |     private String projectName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 付款单位 |      * 付款单位 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "付款单位") |     @ExcelProperty(value = "付款单位") | ||||||
|     private Long paymentUnit; |     private Long paymentUnit; | ||||||
|  |     private String paymentUnitName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 收款单位(带*,必填) |      * 收款单位(带*,必填) | ||||||
| @ -107,12 +114,14 @@ public class XzdSfkCaigouFkVo implements Serializable { | |||||||
|     @ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class) |     @ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class) | ||||||
|     @ExcelDictFormat(readConverterExp = "带=*,必填") |     @ExcelDictFormat(readConverterExp = "带=*,必填") | ||||||
|     private Long receiptUnit; |     private Long receiptUnit; | ||||||
|  |     private String receiptUnitName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 收款银行 |      * 收款银行 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "收款银行") |     @ExcelProperty(value = "收款银行") | ||||||
|     private Long receiptBank; |     private Long receiptBank; | ||||||
|  |     private String receiptBankName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 收款银行账号 |      * 收款银行账号 | ||||||
| @ -128,10 +137,11 @@ public class XzdSfkCaigouFkVo implements Serializable { | |||||||
|     private String statCycle; |     private String statCycle; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 是否是研发类 |      * 项目类型 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "是否是研发类") |     @ExcelProperty(value = "项目类型") | ||||||
|     private Long isYanfa; |     private String projectType; | ||||||
|  |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 税率(带*,必填) |      * 税率(带*,必填) | ||||||
| @ -279,4 +289,8 @@ public class XzdSfkCaigouFkVo implements Serializable { | |||||||
|     private String fileId; |     private String fileId; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     List<XzdSfkFukuan> fukuanList; | ||||||
|  |  | ||||||
|  |     List<XzdSfkFapiao> fapiaoList; | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,6 +1,10 @@ | |||||||
| package org.dromara.xzd.paymentsReceipts.domain.vo; | package org.dromara.xzd.paymentsReceipts.domain.vo; | ||||||
|  |  | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
|  |  | ||||||
|  | import org.dromara.common.mybatis.core.domain.BaseEntity; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk; | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk; | ||||||
| import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||||
| import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; | ||||||
| @ -13,7 +17,7 @@ import java.io.Serial; | |||||||
| import java.io.Serializable; | import java.io.Serializable; | ||||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -25,7 +29,7 @@ import java.util.Date; | |||||||
| @Data | @Data | ||||||
| @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | ||||||
| @AutoMapper(target = XzdSfkZonhefuwuFk.class) | @AutoMapper(target = XzdSfkZonhefuwuFk.class) | ||||||
| public class XzdSfkZonhefuwuFkVo implements Serializable { | public class XzdSfkZonhefuwuFkVo extends BaseEntity { | ||||||
|  |  | ||||||
|     @Serial |     @Serial | ||||||
|     private static final long serialVersionUID = 1L; |     private static final long serialVersionUID = 1L; | ||||||
| @ -63,6 +67,7 @@ public class XzdSfkZonhefuwuFkVo implements Serializable { | |||||||
|     @ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class) |     @ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class) | ||||||
|     @ExcelDictFormat(readConverterExp = "带=*,必填") |     @ExcelDictFormat(readConverterExp = "带=*,必填") | ||||||
|     private Long contractCode; |     private Long contractCode; | ||||||
|  |     private String contractCodeName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 合同名称 |      * 合同名称 | ||||||
| @ -93,13 +98,15 @@ public class XzdSfkZonhefuwuFkVo implements Serializable { | |||||||
|      * 项目 |      * 项目 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "项目") |     @ExcelProperty(value = "项目") | ||||||
|     private Long projectId; |     private Long project; | ||||||
|  |     private String projectName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 付款单位 |      * 付款单位 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "付款单位") |     @ExcelProperty(value = "付款单位") | ||||||
|     private Long paymentUnit; |     private Long paymentUnit; | ||||||
|  |     private String paymentUnitName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 收款单位(带*,必填) |      * 收款单位(带*,必填) | ||||||
| @ -107,12 +114,14 @@ public class XzdSfkZonhefuwuFkVo implements Serializable { | |||||||
|     @ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class) |     @ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class) | ||||||
|     @ExcelDictFormat(readConverterExp = "带=*,必填") |     @ExcelDictFormat(readConverterExp = "带=*,必填") | ||||||
|     private Long receiptUnit; |     private Long receiptUnit; | ||||||
|  |     private String receiptUnitName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 收款银行 |      * 收款银行 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "收款银行") |     @ExcelProperty(value = "收款银行") | ||||||
|     private Long receiptBank; |     private Long receiptBank; | ||||||
|  |     private String receiptBankName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 收款银行账号 |      * 收款银行账号 | ||||||
| @ -203,6 +212,11 @@ public class XzdSfkZonhefuwuFkVo implements Serializable { | |||||||
|     @ExcelDictFormat(readConverterExp = "%=") |     @ExcelDictFormat(readConverterExp = "%=") | ||||||
|     private BigDecimal totalProgressSettlementRatio; |     private BigDecimal totalProgressSettlementRatio; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 累计进度支付占累计进度应付(%) | ||||||
|  |      */ | ||||||
|  |     private BigDecimal totalPaymentRatio; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 本期进度支付占本期进度应付(%) |      * 本期进度支付占本期进度应付(%) | ||||||
|      */ |      */ | ||||||
| @ -273,4 +287,8 @@ public class XzdSfkZonhefuwuFkVo implements Serializable { | |||||||
|     private String fileId; |     private String fileId; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     List<XzdSfkFukuan> fukuanList; | ||||||
|  |  | ||||||
|  |     List<XzdSfkFapiao> fapiaoList; | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| package org.dromara.xzd.paymentsReceipts.service.impl; | package org.dromara.xzd.paymentsReceipts.service.impl; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||||
|  | import org.dromara.common.core.exception.ServiceException; | ||||||
| import org.dromara.common.core.utils.MapstructUtils; | import org.dromara.common.core.utils.MapstructUtils; | ||||||
| import org.dromara.common.core.utils.StringUtils; | import org.dromara.common.core.utils.StringUtils; | ||||||
| import org.dromara.common.mybatis.core.page.TableDataInfo; | import org.dromara.common.mybatis.core.page.TableDataInfo; | ||||||
| @ -9,16 +10,30 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  | import org.dromara.common.utils.BatchNumberGenerator; | ||||||
|  | import org.dromara.system.service.impl.SysOssServiceImpl; | ||||||
|  | import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService; | ||||||
|  | import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFapiaoService; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFukuanService; | ||||||
|  | import org.dromara.xzd.service.IXzdCorrespondentList; | ||||||
|  | import org.dromara.xzd.service.IXzdSupplierOpenBankService; | ||||||
|  | import org.dromara.xzd.service.impl.XzdProjectServiceImpl; | ||||||
|  | import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl; | ||||||
|  | import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; | ||||||
|  | import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkCaigouFkBo; | import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkCaigouFkBo; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkCaigouFkVo; | import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkCaigouFkVo; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.XzdSfkCaigouFk; | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkCaigouFk; | ||||||
| import org.dromara.xzd.paymentsReceipts.mapper.XzdSfkCaigouFkMapper; | import org.dromara.xzd.paymentsReceipts.mapper.XzdSfkCaigouFkMapper; | ||||||
| import org.dromara.xzd.paymentsReceipts.service.IXzdSfkCaigouFkService; | import org.dromara.xzd.paymentsReceipts.service.IXzdSfkCaigouFkService; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
| import java.util.List; | import java.util.*; | ||||||
| import java.util.Map; |  | ||||||
| import java.util.Collection; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 采购合同付款Service业务层处理 |  * 采购合同付款Service业务层处理 | ||||||
| @ -32,6 +47,23 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|  |  | ||||||
|     private final XzdSfkCaigouFkMapper baseMapper; |     private final XzdSfkCaigouFkMapper baseMapper; | ||||||
|  |  | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdSfkFapiaoService fapiaoService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdSfkFukuanService fukuanService; | ||||||
|  |     @Autowired | ||||||
|  |     private SysOssServiceImpl sysOssService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdPurchaseContractInformationService purchaseContractInformationService; | ||||||
|  |     @Autowired | ||||||
|  |     private XzdProjectServiceImpl xzdProjectService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdSupplierOpenBankService supplierOpenBankService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdCorrespondentList iXzdCorrespondentList; | ||||||
|  |     @Autowired | ||||||
|  |     private XzdSupplierInfoServiceImpl xzdSupplierInfoService; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 查询采购合同付款 |      * 查询采购合同付款 | ||||||
|      * |      * | ||||||
| @ -40,7 +72,10 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|     public XzdSfkCaigouFkVo queryById(Long id){ |     public XzdSfkCaigouFkVo queryById(Long id){ | ||||||
|         return baseMapper.selectVoById(id); |         XzdSfkCaigouFkVo vo = baseMapper.selectVoById(id); | ||||||
|  |         getName(vo); | ||||||
|  |         getHttk(vo); | ||||||
|  |         return vo; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @ -54,6 +89,7 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|     public TableDataInfo<XzdSfkCaigouFkVo> queryPageList(XzdSfkCaigouFkBo bo, PageQuery pageQuery) { |     public TableDataInfo<XzdSfkCaigouFkVo> queryPageList(XzdSfkCaigouFkBo bo, PageQuery pageQuery) { | ||||||
|         LambdaQueryWrapper<XzdSfkCaigouFk> lqw = buildQueryWrapper(bo); |         LambdaQueryWrapper<XzdSfkCaigouFk> lqw = buildQueryWrapper(bo); | ||||||
|         Page<XzdSfkCaigouFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |         Page<XzdSfkCaigouFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); | ||||||
|  |         result.getRecords().forEach(this::getName); | ||||||
|         return TableDataInfo.build(result); |         return TableDataInfo.build(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -66,7 +102,9 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|     @Override |     @Override | ||||||
|     public List<XzdSfkCaigouFkVo> queryList(XzdSfkCaigouFkBo bo) { |     public List<XzdSfkCaigouFkVo> queryList(XzdSfkCaigouFkBo bo) { | ||||||
|         LambdaQueryWrapper<XzdSfkCaigouFk> lqw = buildQueryWrapper(bo); |         LambdaQueryWrapper<XzdSfkCaigouFk> lqw = buildQueryWrapper(bo); | ||||||
|         return baseMapper.selectVoList(lqw); |         List<XzdSfkCaigouFkVo> vos = baseMapper.selectVoList(lqw); | ||||||
|  |         vos.forEach(this::getName); | ||||||
|  |         return vos; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private LambdaQueryWrapper<XzdSfkCaigouFk> buildQueryWrapper(XzdSfkCaigouFkBo bo) { |     private LambdaQueryWrapper<XzdSfkCaigouFk> buildQueryWrapper(XzdSfkCaigouFkBo bo) { | ||||||
| @ -87,7 +125,7 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|         lqw.eq(bo.getReceiptBank() != null, XzdSfkCaigouFk::getReceiptBank, bo.getReceiptBank()); |         lqw.eq(bo.getReceiptBank() != null, XzdSfkCaigouFk::getReceiptBank, bo.getReceiptBank()); | ||||||
|         lqw.eq(StringUtils.isNotBlank(bo.getReceiptBankAccount()), XzdSfkCaigouFk::getReceiptBankAccount, bo.getReceiptBankAccount()); |         lqw.eq(StringUtils.isNotBlank(bo.getReceiptBankAccount()), XzdSfkCaigouFk::getReceiptBankAccount, bo.getReceiptBankAccount()); | ||||||
|         lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdSfkCaigouFk::getStatCycle, bo.getStatCycle()); |         lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdSfkCaigouFk::getStatCycle, bo.getStatCycle()); | ||||||
|         lqw.eq(bo.getIsYanfa() != null, XzdSfkCaigouFk::getIsYanfa, bo.getIsYanfa()); |         lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSfkCaigouFk::getProjectType, bo.getProjectType()); | ||||||
|         lqw.eq(bo.getTaxRate() != null, XzdSfkCaigouFk::getTaxRate, bo.getTaxRate()); |         lqw.eq(bo.getTaxRate() != null, XzdSfkCaigouFk::getTaxRate, bo.getTaxRate()); | ||||||
|         lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSfkCaigouFk::getProjectCategory, bo.getProjectCategory()); |         lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSfkCaigouFk::getProjectCategory, bo.getProjectCategory()); | ||||||
|         lqw.eq(bo.getCurrentProgressPayment() != null, XzdSfkCaigouFk::getCurrentProgressPayment, bo.getCurrentProgressPayment()); |         lqw.eq(bo.getCurrentProgressPayment() != null, XzdSfkCaigouFk::getCurrentProgressPayment, bo.getCurrentProgressPayment()); | ||||||
| @ -120,13 +158,26 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|      * @return 是否新增成功 |      * @return 是否新增成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean insertByBo(XzdSfkCaigouFkBo bo) { |     public Boolean insertByBo(XzdSfkCaigouFkBo bo) { | ||||||
|         XzdSfkCaigouFk add = MapstructUtils.convert(bo, XzdSfkCaigouFk.class); |         XzdSfkCaigouFk add = MapstructUtils.convert(bo, XzdSfkCaigouFk.class); | ||||||
|         validEntityBeforeSave(add); |         validEntityBeforeSave(add); | ||||||
|  |         String banBen = BatchNumberGenerator.generateBatchNumber("SFKCGFK-"); | ||||||
|  |         add.setDocCode(banBen); | ||||||
|         boolean flag = baseMapper.insert(add) > 0; |         boolean flag = baseMapper.insert(add) > 0; | ||||||
|         if (flag) { |         if (flag) { | ||||||
|             bo.setId(add.getId()); |             bo.setId(add.getId()); | ||||||
|         } |         } | ||||||
|  |         if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) { | ||||||
|  |             throw new ServiceException("发票信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(add.getId());}); | ||||||
|  |         fapiaoService.saveBatch(bo.getFapiaoList()); | ||||||
|  |         if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) { | ||||||
|  |             throw new ServiceException("付款信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFukuanList().forEach(item -> {item.setMainDocumentId(add.getId());}); | ||||||
|  |         fukuanService.saveBatch(bo.getFukuanList()); | ||||||
|         return flag; |         return flag; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -137,9 +188,22 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|      * @return 是否修改成功 |      * @return 是否修改成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean updateByBo(XzdSfkCaigouFkBo bo) { |     public Boolean updateByBo(XzdSfkCaigouFkBo bo) { | ||||||
|         XzdSfkCaigouFk update = MapstructUtils.convert(bo, XzdSfkCaigouFk.class); |         XzdSfkCaigouFk update = MapstructUtils.convert(bo, XzdSfkCaigouFk.class); | ||||||
|         validEntityBeforeSave(update); |         validEntityBeforeSave(update); | ||||||
|  |         fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, bo.getId())); | ||||||
|  |         fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, bo.getId())); | ||||||
|  |         if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) { | ||||||
|  |             throw new ServiceException("发票信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(update.getId());}); | ||||||
|  |         fapiaoService.saveBatch(bo.getFapiaoList()); | ||||||
|  |         if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) { | ||||||
|  |             throw new ServiceException("付款信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFukuanList().forEach(item -> {item.setMainDocumentId(update.getId());}); | ||||||
|  |         fukuanService.saveBatch(bo.getFukuanList()); | ||||||
|         return baseMapper.updateById(update) > 0; |         return baseMapper.updateById(update) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -158,10 +222,81 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper, | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { | ||||||
|         if(isValid){ |         if(isValid){ | ||||||
|             //TODO 做一些业务上的校验,判断是否需要校验 |             //TODO 做一些业务上的校验,判断是否需要校验 | ||||||
|         } |         } | ||||||
|  |         List<Long> deleteIds = new ArrayList<>(); | ||||||
|  |         for (Long id : ids) { | ||||||
|  |             XzdSfkCaigouFkVo vo = baseMapper.selectVoById(id); | ||||||
|  |             if (vo != null){ | ||||||
|  |                 //删除附件 | ||||||
|  |                 if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ | ||||||
|  |                     List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); | ||||||
|  |                     deleteIds.addAll(list); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (!deleteIds.isEmpty()) { | ||||||
|  |             sysOssService.deleteWithValidByIds(deleteIds, false); | ||||||
|  |         } | ||||||
|  |         fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().in(XzdSfkFapiao::getMainDocumentId, ids)); | ||||||
|  |         fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().in(XzdSfkFukuan::getMainDocumentId, ids)); | ||||||
|         return baseMapper.deleteByIds(ids) > 0; |         return baseMapper.deleteByIds(ids) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取部分字段名称 | ||||||
|  |      * @param item | ||||||
|  |      */ | ||||||
|  |     private void getName(XzdSfkCaigouFkVo item) { | ||||||
|  |         //项目名称 | ||||||
|  |         if (item.getProject() != null){ | ||||||
|  |             String projectName = xzdProjectService.queryNameById(item.getProject()); | ||||||
|  |             if (projectName != null){ | ||||||
|  |                 item.setProjectName(projectName); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //合同编码 | ||||||
|  |         if (item.getContractCode() != null){ | ||||||
|  |             String code = purchaseContractInformationService.queryCodeById(item.getContractCode()); | ||||||
|  |             if (code != null){ | ||||||
|  |                 item.setContractCodeName(code); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //收款单位(供应商名称) | ||||||
|  |         if (item.getReceiptUnit() != null){ | ||||||
|  |             String unitName = xzdSupplierInfoService.queryNameById(item.getReceiptUnit()); | ||||||
|  |             if (unitName != null){ | ||||||
|  |                 item.setReceiptUnitName(unitName); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //付款单位(客户名称) | ||||||
|  |         if (item.getPaymentUnit()!= null){ | ||||||
|  |             String byid = iXzdCorrespondentList.queryNameById(item.getPaymentUnit()); | ||||||
|  |             if (byid!=null){ | ||||||
|  |                 item.setPaymentUnitName(byid); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //收款银行 | ||||||
|  |         if (item.getReceiptBank() != null){ | ||||||
|  |             String bankName = supplierOpenBankService.queryNameById(item.getReceiptBank()); | ||||||
|  |             if (bankName != null){ | ||||||
|  |                 item.setReceiptBankName(bankName); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取子项 | ||||||
|  |      * @param vo | ||||||
|  |      */ | ||||||
|  |     private void getHttk(XzdSfkCaigouFkVo vo) { | ||||||
|  |         //发票信息 | ||||||
|  |         vo.setFapiaoList(fapiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, vo.getId()))); | ||||||
|  |  | ||||||
|  |         //付款信息 | ||||||
|  |         vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, vo.getId()))); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| package org.dromara.xzd.paymentsReceipts.service.impl; | package org.dromara.xzd.paymentsReceipts.service.impl; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||||
|  | import org.dromara.common.core.exception.ServiceException; | ||||||
| import org.dromara.common.core.utils.MapstructUtils; | import org.dromara.common.core.utils.MapstructUtils; | ||||||
| import org.dromara.common.core.utils.StringUtils; | import org.dromara.common.core.utils.StringUtils; | ||||||
| import org.dromara.common.mybatis.core.page.TableDataInfo; | import org.dromara.common.mybatis.core.page.TableDataInfo; | ||||||
| @ -9,16 +10,28 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  | import org.dromara.common.utils.BatchNumberGenerator; | ||||||
|  | import org.dromara.system.service.impl.SysOssServiceImpl; | ||||||
|  | import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkCaigouFkVo; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFapiaoService; | ||||||
|  | import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFukuanService; | ||||||
|  | import org.dromara.xzd.service.IXzdCorrespondentList; | ||||||
|  | import org.dromara.xzd.service.IXzdSupplierOpenBankService; | ||||||
|  | import org.dromara.xzd.service.impl.XzdProjectServiceImpl; | ||||||
|  | import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkZonhefuwuFkBo; | import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkZonhefuwuFkBo; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkZonhefuwuFkVo; | import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkZonhefuwuFkVo; | ||||||
| import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk; | import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk; | ||||||
| import org.dromara.xzd.paymentsReceipts.mapper.XzdSfkZonhefuwuFkMapper; | import org.dromara.xzd.paymentsReceipts.mapper.XzdSfkZonhefuwuFkMapper; | ||||||
| import org.dromara.xzd.paymentsReceipts.service.IXzdSfkZonhefuwuFkService; | import org.dromara.xzd.paymentsReceipts.service.IXzdSfkZonhefuwuFkService; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
| import java.util.List; | import java.util.*; | ||||||
| import java.util.Map; |  | ||||||
| import java.util.Collection; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 综合服务合同付款Service业务层处理 |  * 综合服务合同付款Service业务层处理 | ||||||
| @ -32,6 +45,24 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|  |  | ||||||
|     private final XzdSfkZonhefuwuFkMapper baseMapper; |     private final XzdSfkZonhefuwuFkMapper baseMapper; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdSfkFapiaoService fapiaoService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdSfkFukuanService fukuanService; | ||||||
|  |     @Autowired | ||||||
|  |     private SysOssServiceImpl sysOssService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdCsContractInformationService csContractInformationService; | ||||||
|  |     @Autowired | ||||||
|  |     private XzdProjectServiceImpl xzdProjectService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdSupplierOpenBankService supplierOpenBankService; | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdCorrespondentList iXzdCorrespondentList; | ||||||
|  |     @Autowired | ||||||
|  |     private XzdSupplierInfoServiceImpl xzdSupplierInfoService; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 查询综合服务合同付款 |      * 查询综合服务合同付款 | ||||||
|      * |      * | ||||||
| @ -40,7 +71,10 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|     public XzdSfkZonhefuwuFkVo queryById(Long id){ |     public XzdSfkZonhefuwuFkVo queryById(Long id){ | ||||||
|         return baseMapper.selectVoById(id); |         XzdSfkZonhefuwuFkVo vo = baseMapper.selectVoById(id); | ||||||
|  |         getName(vo); | ||||||
|  |         getHttk(vo); | ||||||
|  |         return vo; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @ -54,6 +88,7 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|     public TableDataInfo<XzdSfkZonhefuwuFkVo> queryPageList(XzdSfkZonhefuwuFkBo bo, PageQuery pageQuery) { |     public TableDataInfo<XzdSfkZonhefuwuFkVo> queryPageList(XzdSfkZonhefuwuFkBo bo, PageQuery pageQuery) { | ||||||
|         LambdaQueryWrapper<XzdSfkZonhefuwuFk> lqw = buildQueryWrapper(bo); |         LambdaQueryWrapper<XzdSfkZonhefuwuFk> lqw = buildQueryWrapper(bo); | ||||||
|         Page<XzdSfkZonhefuwuFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |         Page<XzdSfkZonhefuwuFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); | ||||||
|  |         result.getRecords().forEach(this::getName); | ||||||
|         return TableDataInfo.build(result); |         return TableDataInfo.build(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -66,7 +101,9 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|     @Override |     @Override | ||||||
|     public List<XzdSfkZonhefuwuFkVo> queryList(XzdSfkZonhefuwuFkBo bo) { |     public List<XzdSfkZonhefuwuFkVo> queryList(XzdSfkZonhefuwuFkBo bo) { | ||||||
|         LambdaQueryWrapper<XzdSfkZonhefuwuFk> lqw = buildQueryWrapper(bo); |         LambdaQueryWrapper<XzdSfkZonhefuwuFk> lqw = buildQueryWrapper(bo); | ||||||
|         return baseMapper.selectVoList(lqw); |         List<XzdSfkZonhefuwuFkVo> vos = baseMapper.selectVoList(lqw); | ||||||
|  |         vos.forEach(this::getName); | ||||||
|  |         return vos; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private LambdaQueryWrapper<XzdSfkZonhefuwuFk> buildQueryWrapper(XzdSfkZonhefuwuFkBo bo) { |     private LambdaQueryWrapper<XzdSfkZonhefuwuFk> buildQueryWrapper(XzdSfkZonhefuwuFkBo bo) { | ||||||
| @ -81,7 +118,7 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|         lqw.eq(bo.getPaymentProperty() != null, XzdSfkZonhefuwuFk::getPaymentProperty, bo.getPaymentProperty()); |         lqw.eq(bo.getPaymentProperty() != null, XzdSfkZonhefuwuFk::getPaymentProperty, bo.getPaymentProperty()); | ||||||
|         lqw.eq(bo.getExpendContractAmount() != null, XzdSfkZonhefuwuFk::getExpendContractAmount, bo.getExpendContractAmount()); |         lqw.eq(bo.getExpendContractAmount() != null, XzdSfkZonhefuwuFk::getExpendContractAmount, bo.getExpendContractAmount()); | ||||||
|         lqw.eq(bo.getCurrentApproveAmount() != null, XzdSfkZonhefuwuFk::getCurrentApproveAmount, bo.getCurrentApproveAmount()); |         lqw.eq(bo.getCurrentApproveAmount() != null, XzdSfkZonhefuwuFk::getCurrentApproveAmount, bo.getCurrentApproveAmount()); | ||||||
|         lqw.eq(bo.getProjectId() != null, XzdSfkZonhefuwuFk::getProjectId, bo.getProjectId()); |         lqw.eq(bo.getProject() != null, XzdSfkZonhefuwuFk::getProject, bo.getProject()); | ||||||
|         lqw.eq(bo.getPaymentUnit() != null, XzdSfkZonhefuwuFk::getPaymentUnit, bo.getPaymentUnit()); |         lqw.eq(bo.getPaymentUnit() != null, XzdSfkZonhefuwuFk::getPaymentUnit, bo.getPaymentUnit()); | ||||||
|         lqw.eq(bo.getReceiptUnit() != null, XzdSfkZonhefuwuFk::getReceiptUnit, bo.getReceiptUnit()); |         lqw.eq(bo.getReceiptUnit() != null, XzdSfkZonhefuwuFk::getReceiptUnit, bo.getReceiptUnit()); | ||||||
|         lqw.eq(bo.getReceiptBank() != null, XzdSfkZonhefuwuFk::getReceiptBank, bo.getReceiptBank()); |         lqw.eq(bo.getReceiptBank() != null, XzdSfkZonhefuwuFk::getReceiptBank, bo.getReceiptBank()); | ||||||
| @ -119,13 +156,26 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|      * @return 是否新增成功 |      * @return 是否新增成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean insertByBo(XzdSfkZonhefuwuFkBo bo) { |     public Boolean insertByBo(XzdSfkZonhefuwuFkBo bo) { | ||||||
|         XzdSfkZonhefuwuFk add = MapstructUtils.convert(bo, XzdSfkZonhefuwuFk.class); |         XzdSfkZonhefuwuFk add = MapstructUtils.convert(bo, XzdSfkZonhefuwuFk.class); | ||||||
|         validEntityBeforeSave(add); |         validEntityBeforeSave(add); | ||||||
|  |         String banBen = BatchNumberGenerator.generateBatchNumber("SFKZHFWFK-"); | ||||||
|  |         add.setDocCode(banBen); | ||||||
|         boolean flag = baseMapper.insert(add) > 0; |         boolean flag = baseMapper.insert(add) > 0; | ||||||
|         if (flag) { |         if (flag) { | ||||||
|             bo.setId(add.getId()); |             bo.setId(add.getId()); | ||||||
|         } |         } | ||||||
|  |         if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) { | ||||||
|  |             throw new ServiceException("发票信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(add.getId());}); | ||||||
|  |         fapiaoService.saveBatch(bo.getFapiaoList()); | ||||||
|  |         if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) { | ||||||
|  |             throw new ServiceException("付款信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFukuanList().forEach(item -> {item.setMainDocumentId(add.getId());}); | ||||||
|  |         fukuanService.saveBatch(bo.getFukuanList()); | ||||||
|         return flag; |         return flag; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -136,9 +186,22 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|      * @return 是否修改成功 |      * @return 是否修改成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean updateByBo(XzdSfkZonhefuwuFkBo bo) { |     public Boolean updateByBo(XzdSfkZonhefuwuFkBo bo) { | ||||||
|         XzdSfkZonhefuwuFk update = MapstructUtils.convert(bo, XzdSfkZonhefuwuFk.class); |         XzdSfkZonhefuwuFk update = MapstructUtils.convert(bo, XzdSfkZonhefuwuFk.class); | ||||||
|         validEntityBeforeSave(update); |         validEntityBeforeSave(update); | ||||||
|  |         fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, bo.getId())); | ||||||
|  |         fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, bo.getId())); | ||||||
|  |         if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) { | ||||||
|  |             throw new ServiceException("发票信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(update.getId());}); | ||||||
|  |         fapiaoService.saveBatch(bo.getFapiaoList()); | ||||||
|  |         if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) { | ||||||
|  |             throw new ServiceException("付款信息不能为空"); | ||||||
|  |         } | ||||||
|  |         bo.getFukuanList().forEach(item -> {item.setMainDocumentId(update.getId());}); | ||||||
|  |         fukuanService.saveBatch(bo.getFukuanList()); | ||||||
|         return baseMapper.updateById(update) > 0; |         return baseMapper.updateById(update) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -157,10 +220,81 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { | ||||||
|         if(isValid){ |         if(isValid){ | ||||||
|             //TODO 做一些业务上的校验,判断是否需要校验 |             //TODO 做一些业务上的校验,判断是否需要校验 | ||||||
|         } |         } | ||||||
|  |         List<Long> deleteIds = new ArrayList<>(); | ||||||
|  |         for (Long id : ids) { | ||||||
|  |             XzdSfkZonhefuwuFkVo vo = baseMapper.selectVoById(id); | ||||||
|  |             if (vo != null){ | ||||||
|  |                 //删除附件 | ||||||
|  |                 if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ | ||||||
|  |                     List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); | ||||||
|  |                     deleteIds.addAll(list); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (!deleteIds.isEmpty()) { | ||||||
|  |             sysOssService.deleteWithValidByIds(deleteIds, false); | ||||||
|  |         } | ||||||
|  |         fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().in(XzdSfkFapiao::getMainDocumentId, ids)); | ||||||
|  |         fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().in(XzdSfkFukuan::getMainDocumentId, ids)); | ||||||
|         return baseMapper.deleteByIds(ids) > 0; |         return baseMapper.deleteByIds(ids) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取部分字段名称 | ||||||
|  |      * @param item | ||||||
|  |      */ | ||||||
|  |     private void getName(XzdSfkZonhefuwuFkVo item) { | ||||||
|  |         //项目名称 | ||||||
|  |         if (item.getProject() != null){ | ||||||
|  |             String projectName = xzdProjectService.queryNameById(item.getProject()); | ||||||
|  |             if (projectName != null){ | ||||||
|  |                 item.setProjectName(projectName); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //合同编码 | ||||||
|  |         if (item.getContractCode() != null){ | ||||||
|  |             String code = csContractInformationService.queryCodeById(item.getContractCode()); | ||||||
|  |             if (code != null){ | ||||||
|  |                 item.setContractCodeName(code); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //收款单位(供应商名称) | ||||||
|  |         if (item.getReceiptUnit() != null){ | ||||||
|  |             String unitName = xzdSupplierInfoService.queryNameById(item.getReceiptUnit()); | ||||||
|  |             if (unitName != null){ | ||||||
|  |                 item.setReceiptUnitName(unitName); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //付款单位(客户名称) | ||||||
|  |         if (item.getPaymentUnit()!= null){ | ||||||
|  |             String byid = iXzdCorrespondentList.queryNameById(item.getPaymentUnit()); | ||||||
|  |             if (byid!=null){ | ||||||
|  |                 item.setPaymentUnitName(byid); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //收款银行 | ||||||
|  |         if (item.getReceiptBank() != null){ | ||||||
|  |             String bankName = supplierOpenBankService.queryNameById(item.getReceiptBank()); | ||||||
|  |             if (bankName != null){ | ||||||
|  |                 item.setReceiptBankName(bankName); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取子项 | ||||||
|  |      * @param vo | ||||||
|  |      */ | ||||||
|  |     private void getHttk(XzdSfkZonhefuwuFkVo vo) { | ||||||
|  |         //发票信息 | ||||||
|  |         vo.setFapiaoList(fapiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, vo.getId()))); | ||||||
|  |  | ||||||
|  |         //付款信息 | ||||||
|  |         vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, vo.getId()))); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -68,4 +68,7 @@ public interface IXzdSupplierOpenBankService extends IService<XzdSupplierOpenBan | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); |     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); | ||||||
|  |  | ||||||
|  |     String queryNameById(Long id); | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -147,4 +147,9 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenB | |||||||
|         } |         } | ||||||
|         return baseMapper.deleteByIds(ids) > 0; |         return baseMapper.deleteByIds(ids) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String queryNameById(Long id) { | ||||||
|  |         return baseMapper.selectVoById(id).getOpenBank(); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -64,6 +64,7 @@ public class XzdJsZhfwJinduVo implements Serializable { | |||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "合同编码") |     @ExcelProperty(value = "合同编码") | ||||||
|     private Long contractCode; |     private Long contractCode; | ||||||
|  |     private String contractCodeCode; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 合同名称 |      * 合同名称 | ||||||
| @ -100,12 +101,14 @@ public class XzdJsZhfwJinduVo implements Serializable { | |||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "项目") |     @ExcelProperty(value = "项目") | ||||||
|     private Long project; |     private Long project; | ||||||
|  |     private String projectName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 结算单位 |      * 结算单位 | ||||||
|      */ |      */ | ||||||
|     @ExcelProperty(value = "结算单位") |     @ExcelProperty(value = "结算单位") | ||||||
|     private Long settlementUnit; |     private Long settlementUnit; | ||||||
|  |     private String settlementUnitName; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 合同金额 |      * 合同金额 | ||||||
|  | |||||||
| @ -31,6 +31,7 @@ import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo; | |||||||
| import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; | import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; | ||||||
| import org.dromara.xzd.settlement.mapper.XzdJsCgJungonEditMapper; | import org.dromara.xzd.settlement.mapper.XzdJsCgJungonEditMapper; | ||||||
| import org.dromara.xzd.settlement.service.IXzdJsCgJungonEditService; | import org.dromara.xzd.settlement.service.IXzdJsCgJungonEditService; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
| import java.util.*; | import java.util.*; | ||||||
|  |  | ||||||
| @ -134,6 +135,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl<XzdJsCgJungonEditM | |||||||
|      * @return 是否新增成功 |      * @return 是否新增成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean insertByBo(XzdJsCgJungonEditBo bo) { |     public Boolean insertByBo(XzdJsCgJungonEditBo bo) { | ||||||
|         XzdJsCgJungonEdit add = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class); |         XzdJsCgJungonEdit add = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class); | ||||||
|         validEntityBeforeSave(add); |         validEntityBeforeSave(add); | ||||||
| @ -163,6 +165,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl<XzdJsCgJungonEditM | |||||||
|      * @return 是否修改成功 |      * @return 是否修改成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean updateByBo(XzdJsCgJungonEditBo bo) { |     public Boolean updateByBo(XzdJsCgJungonEditBo bo) { | ||||||
|         XzdJsCgJungonEdit update = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class); |         XzdJsCgJungonEdit update = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class); | ||||||
|         validEntityBeforeSave(update); |         validEntityBeforeSave(update); | ||||||
| @ -198,6 +201,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl<XzdJsCgJungonEditM | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { | ||||||
|         if(isValid){ |         if(isValid){ | ||||||
|             //TODO 做一些业务上的校验,判断是否需要校验 |             //TODO 做一些业务上的校验,判断是否需要校验 | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| package org.dromara.xzd.settlement.service.impl; | package org.dromara.xzd.settlement.service.impl; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||||
|  | import org.dromara.common.core.exception.ServiceException; | ||||||
| import org.dromara.common.core.utils.MapstructUtils; | import org.dromara.common.core.utils.MapstructUtils; | ||||||
| import org.dromara.common.core.utils.StringUtils; | import org.dromara.common.core.utils.StringUtils; | ||||||
| import org.dromara.common.mybatis.core.page.TableDataInfo; | import org.dromara.common.mybatis.core.page.TableDataInfo; | ||||||
| @ -9,12 +10,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  | import org.dromara.common.utils.BatchNumberGenerator; | ||||||
| import org.dromara.system.domain.vo.SysDeptVo; | import org.dromara.system.domain.vo.SysDeptVo; | ||||||
| import org.dromara.system.service.impl.SysDeptServiceImpl; | import org.dromara.system.service.impl.SysDeptServiceImpl; | ||||||
| import org.dromara.system.service.impl.SysOssServiceImpl; | import org.dromara.system.service.impl.SysOssServiceImpl; | ||||||
|  | import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService; | ||||||
|  | import org.dromara.xzd.enums.XzdClassEnum; | ||||||
|  | import org.dromara.xzd.service.IXzdCorrespondentList; | ||||||
| import org.dromara.xzd.service.impl.XzdProjectServiceImpl; | import org.dromara.xzd.service.impl.XzdProjectServiceImpl; | ||||||
| import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; | import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; | ||||||
| import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo; | import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo; | ||||||
|  | import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo; | ||||||
| import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService; | import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService; | ||||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| @ -23,10 +29,9 @@ import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo; | |||||||
| import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; | import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; | ||||||
| import org.dromara.xzd.settlement.mapper.XzdJsZhfwJinduMapper; | import org.dromara.xzd.settlement.mapper.XzdJsZhfwJinduMapper; | ||||||
| import org.dromara.xzd.settlement.service.IXzdJsZhfwJinduService; | import org.dromara.xzd.settlement.service.IXzdJsZhfwJinduService; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
| import java.util.List; | import java.util.*; | ||||||
| import java.util.Map; |  | ||||||
| import java.util.Collection; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 综合服务合同进度结算Service业务层处理 |  * 综合服务合同进度结算Service业务层处理 | ||||||
| @ -46,14 +51,16 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|     private SysOssServiceImpl sysOssService; |     private SysOssServiceImpl sysOssService; | ||||||
|  |  | ||||||
|     @Autowired |     @Autowired | ||||||
|     private SysDeptServiceImpl sysDeptService; |     private IXzdCsContractInformationService csContractInformationService; | ||||||
|  |  | ||||||
|     @Autowired |     @Autowired | ||||||
|     private XzdProjectServiceImpl xzdProjectService; |     private XzdProjectServiceImpl xzdProjectService; | ||||||
|  |  | ||||||
|     @Autowired |     @Autowired | ||||||
|     private IXzdJsDeductionItemsService deductionItemsService; |     private IXzdJsDeductionItemsService deductionItemsService; | ||||||
|  |  | ||||||
|  |     @Autowired | ||||||
|  |     private IXzdCorrespondentList iXzdCorrespondentList; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 查询综合服务合同进度结算 |      * 查询综合服务合同进度结算 | ||||||
|      * |      * | ||||||
| @ -62,7 +69,10 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|     public XzdJsZhfwJinduVo queryById(Long id){ |     public XzdJsZhfwJinduVo queryById(Long id){ | ||||||
|         return baseMapper.selectVoById(id); |         XzdJsZhfwJinduVo vo = baseMapper.selectVoById(id); | ||||||
|  |         getName(vo); | ||||||
|  |         getHttk(vo); | ||||||
|  |         return vo; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @ -76,6 +86,7 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|     public TableDataInfo<XzdJsZhfwJinduVo> queryPageList(XzdJsZhfwJinduBo bo, PageQuery pageQuery) { |     public TableDataInfo<XzdJsZhfwJinduVo> queryPageList(XzdJsZhfwJinduBo bo, PageQuery pageQuery) { | ||||||
|         LambdaQueryWrapper<XzdJsZhfwJindu> lqw = buildQueryWrapper(bo); |         LambdaQueryWrapper<XzdJsZhfwJindu> lqw = buildQueryWrapper(bo); | ||||||
|         Page<XzdJsZhfwJinduVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |         Page<XzdJsZhfwJinduVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); | ||||||
|  |         result.getRecords().forEach(this::getName); | ||||||
|         return TableDataInfo.build(result); |         return TableDataInfo.build(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -88,7 +99,9 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|     @Override |     @Override | ||||||
|     public List<XzdJsZhfwJinduVo> queryList(XzdJsZhfwJinduBo bo) { |     public List<XzdJsZhfwJinduVo> queryList(XzdJsZhfwJinduBo bo) { | ||||||
|         LambdaQueryWrapper<XzdJsZhfwJindu> lqw = buildQueryWrapper(bo); |         LambdaQueryWrapper<XzdJsZhfwJindu> lqw = buildQueryWrapper(bo); | ||||||
|         return baseMapper.selectVoList(lqw); |         List<XzdJsZhfwJinduVo> vos = baseMapper.selectVoList(lqw); | ||||||
|  |         vos.forEach(this::getName); | ||||||
|  |         return vos; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private LambdaQueryWrapper<XzdJsZhfwJindu> buildQueryWrapper(XzdJsZhfwJinduBo bo) { |     private LambdaQueryWrapper<XzdJsZhfwJindu> buildQueryWrapper(XzdJsZhfwJinduBo bo) { | ||||||
| @ -129,13 +142,27 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|      * @return 是否新增成功 |      * @return 是否新增成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean insertByBo(XzdJsZhfwJinduBo bo) { |     public Boolean insertByBo(XzdJsZhfwJinduBo bo) { | ||||||
|         XzdJsZhfwJindu add = MapstructUtils.convert(bo, XzdJsZhfwJindu.class); |         XzdJsZhfwJindu add = MapstructUtils.convert(bo, XzdJsZhfwJindu.class); | ||||||
|         validEntityBeforeSave(add); |         validEntityBeforeSave(add); | ||||||
|  |         String banBen = BatchNumberGenerator.generateBatchNumber("JSZHFWJD-"); | ||||||
|  |         add.setDocCode(banBen); | ||||||
|         boolean flag = baseMapper.insert(add) > 0; |         boolean flag = baseMapper.insert(add) > 0; | ||||||
|         if (flag) { |         if (flag) { | ||||||
|             bo.setId(add.getId()); |             bo.setId(add.getId()); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         String tableName = XzdClassEnum.JS_ZHFW_JINDU.getClassName(); | ||||||
|  |         if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { | ||||||
|  |             throw new ServiceException("扣款与奖励项不能为空"); | ||||||
|  |         } | ||||||
|  |         //合同条款-扣款与奖励项 | ||||||
|  |         for (XzdJsDeductionItems kkyjlx : bo.getKkyjlx()) { | ||||||
|  |             kkyjlx.setTableName(tableName); | ||||||
|  |             kkyjlx.setMainDocId(add.getId()); | ||||||
|  |         } | ||||||
|  |         deductionItemsService.saveBatch(bo.getKkyjlx()); | ||||||
|         return flag; |         return flag; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -146,9 +173,24 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|      * @return 是否修改成功 |      * @return 是否修改成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean updateByBo(XzdJsZhfwJinduBo bo) { |     public Boolean updateByBo(XzdJsZhfwJinduBo bo) { | ||||||
|         XzdJsZhfwJindu update = MapstructUtils.convert(bo, XzdJsZhfwJindu.class); |         XzdJsZhfwJindu update = MapstructUtils.convert(bo, XzdJsZhfwJindu.class); | ||||||
|         validEntityBeforeSave(update); |         validEntityBeforeSave(update); | ||||||
|  |         //删除奖励与扣款对应数据 | ||||||
|  |         deductionItemsService.remove(new LambdaQueryWrapper<XzdJsDeductionItems>().eq(XzdJsDeductionItems::getMainDocId, update.getId())); | ||||||
|  |         //生成奖励与扣款数据 | ||||||
|  |         String tableName = XzdClassEnum.JS_ZHFW_JINDU.getClassName(); | ||||||
|  |         if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { | ||||||
|  |             throw new ServiceException("扣款与奖励项不能为空"); | ||||||
|  |         } | ||||||
|  |         //合同条款-扣款与奖励项 | ||||||
|  |         for (XzdJsDeductionItems kkyjlx : bo.getKkyjlx()) { | ||||||
|  |             kkyjlx.setTableName(tableName); | ||||||
|  |             kkyjlx.setMainDocId(update.getId()); | ||||||
|  |         } | ||||||
|  |         //新增奖励与扣款数据 | ||||||
|  |         deductionItemsService.saveBatch(bo.getKkyjlx()); | ||||||
|         return baseMapper.updateById(update) > 0; |         return baseMapper.updateById(update) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -167,10 +209,26 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|      * @return 是否删除成功 |      * @return 是否删除成功 | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { | ||||||
|         if(isValid){ |         if(isValid){ | ||||||
|             //TODO 做一些业务上的校验,判断是否需要校验 |             //TODO 做一些业务上的校验,判断是否需要校验 | ||||||
|         } |         } | ||||||
|  |         List<Long> deleteIds = new ArrayList<>(); | ||||||
|  |         for (Long id : ids) { | ||||||
|  |             XzdJsZhfwJinduVo vo = baseMapper.selectVoById(id); | ||||||
|  |             if (vo != null){ | ||||||
|  |                 //删除附件 | ||||||
|  |                 if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ | ||||||
|  |                     List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); | ||||||
|  |                     deleteIds.addAll(list); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (!deleteIds.isEmpty()) { | ||||||
|  |             sysOssService.deleteWithValidByIds(deleteIds, false); | ||||||
|  |         } | ||||||
|  |         deductionItemsService.remove(new LambdaQueryWrapper<XzdJsDeductionItems>().in(XzdJsDeductionItems::getMainDocId, ids)); | ||||||
|         return baseMapper.deleteByIds(ids) > 0; |         return baseMapper.deleteByIds(ids) > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -179,22 +237,29 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper, | |||||||
|      * 获取部分字段名称 |      * 获取部分字段名称 | ||||||
|      * @param item |      * @param item | ||||||
|      */ |      */ | ||||||
| //    private void getName(XzdJsZhfwJinduVo item) { |     private void getName(XzdJsZhfwJinduVo item) { | ||||||
| //        //项目名称 |         //项目名称 | ||||||
| //        if (item.getProjectId() != null){ |         if (item.getProject() != null){ | ||||||
| //            String projectName = xzdProjectService.queryNameById(item.getProjectId()); |             String projectName = xzdProjectService.queryNameById(item.getProject()); | ||||||
| //            if (projectName != null){ |             if (projectName != null){ | ||||||
| //                item.setProjectName(projectName); |                 item.setProjectName(projectName); | ||||||
| //            } |             } | ||||||
| //        } |         } | ||||||
| //        //部门名称 |         //合同编码 | ||||||
| //        if (item.getDefaultFinanceOrg() != null){ |         if (item.getContractCode() != null){ | ||||||
| //            SysDeptVo sysDeptVo = sysDeptService.selectDeptById(item.getDefaultFinanceOrg()); |             String code = csContractInformationService.queryCodeById(item.getContractCode()); | ||||||
| //            if (sysDeptVo != null){ |             if (code != null){ | ||||||
| //                item.setDefaultFinanceOrgName(sysDeptVo.getDeptName()); |                 item.setContractCodeCode(code); | ||||||
| //            } |             } | ||||||
| //        } |         } | ||||||
| //    } |         //结算单位(客户信息列表) | ||||||
|  |         if (item.getSettlementUnit() != null){ | ||||||
|  |             String byid = iXzdCorrespondentList.queryNameById(item.getSettlementUnit()); | ||||||
|  |             if (byid!=null){ | ||||||
|  |                 item.setSettlementUnitName(byid); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 获取扣款与奖励项 |      * 获取扣款与奖励项 | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user