diff --git a/pusong-common/pusong-common-doc/pom.xml b/pusong-common/pusong-common-doc/pom.xml index d200232..8ffeaff 100644 --- a/pusong-common/pusong-common-doc/pom.xml +++ b/pusong-common/pusong-common-doc/pom.xml @@ -57,6 +57,10 @@ 5.2.0 + + com.alibaba + fastjson + diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index cbeeaf1..36404ea 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -87,7 +87,15 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id MapstructUtils.convert(bo, add); - BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + bo.getBusinessList().forEach(item->{ + BigDecimal mony = BigDecimal.ZERO; + if(CollectionUtils.isNotEmpty(item.getDetailBos())){ + mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + } + item.setBusinessAmount(mony); + }); + + BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); add.setContractAmount(sum);//合同总金额 add.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态 baseMapper.insertOrUpdate(add); @@ -110,7 +118,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { add.setCustomManager(LoginHelper.getUserId());//所属销售经理id add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id MapstructUtils.convert(bo, add); - BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); add.setContractAmount(sum);//合同总金额 return makePdf(add,bo); } @@ -209,7 +217,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { //3.插入公司信息 companyInfoService.saveBo(bo.getCompanyInfoBo()); //4.装填合同信息 - BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); bo.setContractAmount(sum);//合同总金额 //5.删除所有服务类型和服务项目,.插入服务类型 businessService.saveList(bo.getBusinessList(),bo.getContractCode()); @@ -266,7 +274,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { PsContractInfoVo infoVo = this.queryContractByCode(contractCode); //查询是否有审批中的退款信息 List payList = contractPayService.queryListByContractCode(contractCode,null,PayStatusEnum.PAYING); - BigDecimal pay = payList.stream().map(PsContractPayVo::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal pay = payList.stream().map(PsContractPayVo::getMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); //有未完成的退款:【合同列表】状态更新为【处理中】;并显示在【已完成回款列表】,重新生成任务 if(infoVo.getPayMoney().subtract(pay).compareTo(BigDecimal.ZERO) > 0){ info.setContractStatus(ContractStatusEnum.EXECUTION.getCode()); @@ -303,6 +311,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { map.put("company",bo.getCompanyInfoBo()); map.put("customer",customer); String path = System.getProperty("user.dir")+"test.pdf"; + log.info(JSON.toJSONString(map)); // path = "D:/王立帅/临时/output.pdf"; PdfGenerator.makePdf(map, path,TenplateEnum.CONTRACT.getName()); File file = new File(path); @@ -352,10 +361,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { vo.setContractPayVoList(payList); //退款金额 vo.setReturnMoney(payList.stream().filter(item->StringUtils.equals(item.getBusinessType(), PayBuinessStatusEnum.RETURN.getCode())) - .map(PsContractPayVo::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add)); + .map(PsContractPayVo::getMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)); //收款金额 BigDecimal netPay = payList.stream().filter(item -> StringUtils.equals(item.getBusinessType(), PayBuinessStatusEnum.PAY.getCode())) - .map(PsContractPayVo::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + .map(PsContractPayVo::getMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal pay = netPay.subtract(vo.getReturnMoney()); //已付金额(收款-退款) vo.setPayMoney(pay.compareTo(BigDecimal.ZERO)>=0?pay:BigDecimal.ZERO); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index eb2f04a..9b1bd36 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java @@ -146,7 +146,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { info.setPsCompanyInfoVos(id_companyMap.get(info.getId())); //报价金额 if(CollectionUtils.isNotEmpty(info.getPsCustomPriceVo())){ - info.setPrice(info.getPsCustomPriceVo().stream().map(PsCustomPriceVo::getServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add)); + info.setPrice(info.getPsCustomPriceVo().stream().map(PsCustomPriceVo::getServicePrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)); } //最新的回访信息 if(CollectionUtils.isNotEmpty(info.getPsCustomCallbackVo())){ diff --git a/pusong-modules/pusong-generator/src/main/resources/vm/java/vo.java.vm b/pusong-modules/pusong-generator/src/main/resources/vm/java/vo.java.vm index 709c337..df08583 100644 --- a/pusong-modules/pusong-generator/src/main/resources/vm/java/vo.java.vm +++ b/pusong-modules/pusong-generator/src/main/resources/vm/java/vo.java.vm @@ -6,8 +6,8 @@ import ${import}; import ${packageName}.domain.${ClassName}; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import annotation.com.pusong.common.excel.ExcelDictFormat; -import convert.com.pusong.common.excel.ExcelDictConvert; +import com.pusong.common.excel.annotation.ExcelDictFormat; +import com.pusong.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysOssServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysOssServiceImpl.java index 5430b0f..2e9f127 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysOssServiceImpl.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysOssServiceImpl.java @@ -29,6 +29,8 @@ import com.pusong.system.domain.vo.SysOssVo; import com.pusong.system.mapper.SysOssMapper; import com.pusong.system.service.ISysOssService; import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.cache.annotation.Cacheable; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; @@ -50,6 +52,7 @@ import java.util.Map; @Service public class SysOssServiceImpl implements ISysOssService, OssService { + private static final Logger log = LoggerFactory.getLogger(SysOssServiceImpl.class); private final SysOssMapper baseMapper; /** @@ -195,7 +198,8 @@ public class SysOssServiceImpl implements ISysOssService, OssService { try { uploadResult = storage.uploadSuffix(file.getBytes(), suffix); } catch (IOException e) { - throw new ServiceException(e.getMessage()); + log.error("文件上传失败",e); + throw new ServiceException("文件上传失败,请联系管理员"); } // 保存文件信息 return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);