From 061a9539093083302e01e08e3ba485e2f7398cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=96=87=E9=A3=9E?= <347907836@qq.com> Date: Wed, 19 Nov 2025 23:13:23 +0800 Subject: [PATCH 1/2] commit --- .../service/impl/ConBigScreenServiceImpl.java | 28 +++++++++++-------- .../service/impl/ConCityServiceImpl.java | 4 +-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java index 205533a..91ce88e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java @@ -430,13 +430,13 @@ public class ConBigScreenServiceImpl implements IConBigScreenService { Date beginOfYear = DateUtil.beginOfYear(new Date()); // 获取本年结束时间 Date endOfYear = DateUtil.endOfYear(new Date()); - double newReceivablesDate = receivablesSum(beginOfYear, endOfYear); + BigDecimal newReceivablesDate = receivablesSum(beginOfYear, endOfYear); map.put("newReceivablesDate", newReceivablesDate); //计算去年的数据 Date begin = DateUtil.beginOfYear(DateUtil.offset(new Date(), DateField.YEAR, -1)); Date end = DateUtil.endOfYear(DateUtil.offset(new Date(), DateField.YEAR, -1)); - double LastReceivablesDate = receivablesSum(begin, end); + BigDecimal LastReceivablesDate = receivablesSum(begin, end); map.put("LastReceivablesDate", LastReceivablesDate); return map; } @@ -447,37 +447,41 @@ public class ConBigScreenServiceImpl implements IConBigScreenService { * @param endOfYear * @return */ - private double receivablesSum(Date beginOfYear, Date endOfYear) { + private BigDecimal receivablesSum(Date beginOfYear, Date endOfYear) { //所有销售合同的合同总金额 List conSaleVos = conSaleMapper.selectVoList(Wrappers.lambdaQuery().select(ConSale::getId, ConSale::getContractMoney).eq(ConSale::getState, 1).between(true, ConSale::getSignTime, beginOfYear, endOfYear)); - double contractMoneySum = CollUtil.isNotEmpty(conSaleVos) ? conSaleVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))).mapToDouble(ConSaleVo::getContractMoney).sum() : 0d; + BigDecimal contractMoneySum = CollUtil.isNotEmpty(conSaleVos) ? conSaleVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && itx.getContractMoney() != null)) + .map(value -> new BigDecimal(value.getContractMoney().toString()).setScale(2, RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO; //其他合同中回款总金额额 List lastConOtherVos = conOtherMapper.selectVoList(Wrappers.lambdaQuery().eq(ConOther::getState, 1).eq(ConOther::getMoneyType, 1).between(true, ConOther::getSignTime, beginOfYear, endOfYear)); - double otherMoney = 0d; + BigDecimal otherMoney = BigDecimal.ZERO; if (CollUtil.isNotEmpty(lastConOtherVos)) { List list = lastConOtherVos.stream().map(ConOtherVo::getId).collect(Collectors.toList()); List conOtherCollects = conOtherCollectMapper.selectList(Wrappers.lambdaQuery().select(ConOtherCollect::getActualArrivalMoney).in(ConOtherCollect::getOtherId, list)); - otherMoney = CollUtil.isNotEmpty(conOtherCollects) ? conOtherCollects.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getActualArrivalMoney()))).mapToDouble(ConOtherCollect::getActualArrivalMoney).sum() : 0d; + otherMoney = CollUtil.isNotEmpty(conOtherCollects) ? conOtherCollects.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getActualArrivalMoney()))) + .map(value -> new BigDecimal(value.getActualArrivalMoney().toString()).setScale(2, RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO; } //所有销售合同的实际回款金额 - double actualArrivalMone = 0d; + BigDecimal actualArrivalMone = BigDecimal.ZERO; if (CollUtil.isNotEmpty(conSaleVos)) { List list = conSaleVos.stream().map(ConSaleVo::getId).collect(Collectors.toList()); List collects = conSaleCollectMapper.selectList(Wrappers.lambdaQuery().select(ConSaleCollect::getActualArrivalMoney).in(ConSaleCollect::getSaleId, list)); //计算本年的数据 - actualArrivalMone = CollUtil.isNotEmpty(collects) ? collects.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getActualArrivalMoney()))).mapToDouble(ConSaleCollect::getActualArrivalMoney).sum() : 0d; + actualArrivalMone = CollUtil.isNotEmpty(collects) ? collects.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getActualArrivalMoney()))) + .map(value -> new BigDecimal(value.getActualArrivalMoney().toString()).setScale(2, RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO; } //其他合同中回款(约定回款金额汇总) - double otheActualArrivalMoney=0d; + BigDecimal otheActualArrivalMoney=BigDecimal.ZERO; if (CollUtil.isNotEmpty(lastConOtherVos)) { List list = lastConOtherVos.stream().map(ConOtherVo::getId).collect(Collectors.toList()); List conOtherCollects = conOtherCollectMapper.selectList(Wrappers.lambdaQuery().select(ConOtherCollect::getOtherId).in(ConOtherCollect::getOtherId, list)); - otheActualArrivalMoney = CollUtil.isNotEmpty(conOtherCollects) ? conOtherCollects.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getConventionArrivalMoney()))).mapToDouble(ConOtherCollect::getConventionArrivalMoney).sum() : 0d; + otheActualArrivalMoney = CollUtil.isNotEmpty(conOtherCollects) ? conOtherCollects.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getConventionArrivalMoney()))) + .map(value -> new BigDecimal(value.getConventionArrivalMoney().toString()).setScale(2, RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO; } log.info("所有销售合同的合同总金额:{},其他合同中回款总金额额:{},所有销售合同的实际回款金额:{},其他合同中回款:{}", contractMoneySum, otherMoney, actualArrivalMone, otheActualArrivalMoney); //应收款项=所有销售合同的合同总金额+其他合同中回款总金额额-所有销售合同的实际回款金额-其他合同中回款 - return contractMoneySum+otherMoney-actualArrivalMone-otheActualArrivalMoney; + return contractMoneySum.add(otherMoney).subtract(actualArrivalMone).subtract(otheActualArrivalMoney); } @Override @@ -720,7 +724,7 @@ public class ConBigScreenServiceImpl implements IConBigScreenService { * @return double */ private double outgoings(Date begin, Date end) { - List purchaseVos = conPurchaseMapper.selectVoList(Wrappers.lambdaQuery().select(ConPurchase::getContractMoney).eq(ConPurchase::getState, 1).between(true, ConPurchase::getSignTime, begin, end)); + List purchaseVos = conPurchaseMapper.selectVoList(Wrappers.lambdaQuery().select(ConPurchase :: getId).eq(ConPurchase::getState, 1).between(true, ConPurchase::getSignTime, begin, end)); //所有采购合同的实际付款金额汇总 diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConCityServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConCityServiceImpl.java index 47b6327..4860364 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConCityServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConCityServiceImpl.java @@ -101,8 +101,8 @@ public class ConCityServiceImpl implements IConCityService { public List getTreeSelect() { List allList = this.getAllList(); - //Map> mapList = allList.stream().filter(item -> item.getParentId() != null).collect(Collectors.groupingBy(ConCityVo :: getParentId)); - return buildTreeNode(getParentAreas()); + Map> mapList = allList.stream().filter(item -> item.getParentId() != null).collect(Collectors.groupingBy(ConCityVo :: getParentId)); + return buildTreeNodeNew(getParentAreas(),mapList); } @Override From b705316e087ad4e1513aee54d15185cd1cdea9df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=96=87=E9=A3=9E?= <347907836@qq.com> Date: Thu, 20 Nov 2025 22:29:31 +0800 Subject: [PATCH 2/2] commit --- .../config/CustomerBigDecimalSerialize.java | 23 +++++++++++++++++++ .../controller/ConBigScreenController.java | 3 ++- .../ruoyi/contract/domain/ConSaleMedia.java | 2 +- .../contract/domain/bo/ConSaleMediaBo.java | 3 ++- .../bo/conpurchase/ConPurchaseBoCopy.java | 5 ++++ .../domain/bo/consale/ConSaleTotalVo.java | 6 +++++ .../contract/domain/dto/ConSaleImportDto.java | 3 ++- .../contract/domain/vo/ConPurchaseVo.java | 6 +++++ .../contract/domain/vo/ConSaleMediaVo.java | 3 ++- .../service/IConBigScreenService.java | 3 ++- .../service/impl/ConBigScreenServiceImpl.java | 21 +++++++++-------- .../service/impl/ConPurchaseServiceImpl.java | 3 +++ .../service/impl/ConSaleMediaServiceImpl.java | 19 +++++++++++---- .../service/impl/ConSaleServiceImpl.java | 4 +++- 14 files changed, 83 insertions(+), 21 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/config/CustomerBigDecimalSerialize.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/config/CustomerBigDecimalSerialize.java b/ruoyi-admin/src/main/java/com/ruoyi/web/config/CustomerBigDecimalSerialize.java new file mode 100644 index 0000000..3bbdb80 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/config/CustomerBigDecimalSerialize.java @@ -0,0 +1,23 @@ +package com.ruoyi.web.config; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.math.BigDecimal; +import java.util.Objects; + +public class CustomerBigDecimalSerialize extends JsonSerializer { + + + @Override + public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException { + if(Objects.nonNull(value)) { + gen.writeNumber(value.stripTrailingZeros().doubleValue()); + //去除0后缀,如果想统一进行保留精度,也可以采用类似处理 + }else {//如果为null的话,就写null + gen.writeNull(); + } + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/controller/ConBigScreenController.java b/ruoyi-system/src/main/java/com/ruoyi/contract/controller/ConBigScreenController.java index 0752d1d..866979b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/controller/ConBigScreenController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/controller/ConBigScreenController.java @@ -29,6 +29,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; import java.util.*; /** @@ -89,7 +90,7 @@ public class ConBigScreenController extends BaseController { * 总支出=所有采购合同的合同总金额+他合同付款总金额 */ @GetMapping("/expenditureSum") - public R> expenditureSum() { + public R> expenditureSum() { return R.ok(iConBigScreenService.expenditureSum()) ; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/ConSaleMedia.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/ConSaleMedia.java index 0101131..af6d011 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/ConSaleMedia.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/ConSaleMedia.java @@ -159,5 +159,5 @@ public class ConSaleMedia extends BaseEntityAdd { * 其他返点金额2 */ @FieldNameApi(name ="其他返点金额2") - private Double otherReverMoney2; + private BigDecimal otherReverMoney2; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/ConSaleMediaBo.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/ConSaleMediaBo.java index 88bf6b1..e5f7c00 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/ConSaleMediaBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/ConSaleMediaBo.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.*; +import java.math.BigDecimal; import java.util.Date; import java.util.Date; @@ -202,5 +203,5 @@ public class ConSaleMediaBo extends BaseEntityAdd { */ @CustomBaenAnnotation(value = "其他返点金额2") @Digits(integer = 15,fraction = 4,message = "其他返点金额2最多允许15位整数,4位小数") - private Double otherReverMoney2; + private BigDecimal otherReverMoney2; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/conpurchase/ConPurchaseBoCopy.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/conpurchase/ConPurchaseBoCopy.java index 455b1c9..5932f1d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/conpurchase/ConPurchaseBoCopy.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/conpurchase/ConPurchaseBoCopy.java @@ -202,6 +202,11 @@ public class ConPurchaseBoCopy extends BaseEntity { @CustomBaenAnnotation(value = "媒体链条附件") private String mediaLink; + /** + * 检测照片附件 + */ + @CustomBaenAnnotation(value = "检测照片附件") + private String detectPicAttr; /** * 状态 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/consale/ConSaleTotalVo.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/consale/ConSaleTotalVo.java index 2ede272..376db98 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/consale/ConSaleTotalVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/bo/consale/ConSaleTotalVo.java @@ -2,6 +2,7 @@ package com.ruoyi.contract.domain.bo.consale; import lombok.Data; +import java.math.BigDecimal; import java.util.List; /** @@ -47,4 +48,9 @@ public class ConSaleTotalVo { * 其他返点金额汇总 */ private Double otherReverMoneySum; + + /** + * 其他返点金额汇总2 + */ + private Double otherReverMoneySum2; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/dto/ConSaleImportDto.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/dto/ConSaleImportDto.java index 6932094..ca5e85d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/dto/ConSaleImportDto.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/dto/ConSaleImportDto.java @@ -4,6 +4,7 @@ import cn.hutool.core.annotation.Alias; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; /** @@ -88,7 +89,7 @@ public class ConSaleImportDto implements Serializable { private String otherReverPoit2 = "0"; @Alias("其他返点金额2") - private Double otherReverMoney2 = 0.0; + private BigDecimal otherReverMoney2 = BigDecimal.ZERO; @Alias("开票时间") private String invoiceDate; diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConPurchaseVo.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConPurchaseVo.java index cea2e66..ca05817 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConPurchaseVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConPurchaseVo.java @@ -229,6 +229,12 @@ public class ConPurchaseVo { @ExcelProperty(value = "检测照片附件") private String detectPicAttr; + /** + * 媒体链条附件地址集合 + */ + @ExcelProperty(value = "媒体链条附件地址集合") + private List detectPicAttrList; + /** * 媒体链条附件地址集合 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConSaleMediaVo.java b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConSaleMediaVo.java index 216f6a2..7410d4d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConSaleMediaVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/domain/vo/ConSaleMediaVo.java @@ -1,5 +1,6 @@ package com.ruoyi.contract.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; @@ -185,5 +186,5 @@ public class ConSaleMediaVo { * 其他返点金额2 */ @ExcelProperty(value = "其他返点金额2") - private Double otherReverMoney2; + private BigDecimal otherReverMoney2; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/IConBigScreenService.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/IConBigScreenService.java index ae4c7e2..c52aff5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/IConBigScreenService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/IConBigScreenService.java @@ -6,6 +6,7 @@ import com.ruoyi.contract.domain.bo.ConFirstBo; import com.ruoyi.contract.domain.vo.ConFirstVo; import com.ruoyi.contract.domain.vo.bigscreen.BigScreenTopLeftVo; +import java.math.BigDecimal; import java.util.Collection; import java.util.List; import java.util.Map; @@ -61,7 +62,7 @@ public interface IConBigScreenService { * * @return 总金额 */ - Map expenditureSum(); + Map expenditureSum(); /** * 毛利润=总收入-总支出 diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java index 91ce88e..37a7f30 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConBigScreenServiceImpl.java @@ -391,12 +391,13 @@ public class ConBigScreenServiceImpl implements IConBigScreenService { //计算其他合同付款总金额 List conOtherVos = conOtherMapper.selectVoList(Wrappers.lambdaQuery().eq(ConOther::getState, 1).eq(ConOther::getMoneyType, 0).between(true, ConOther::getSignTime, beginOfYear, endOfYear)); - double actualArrivalMoneySum = CollUtil.isNotEmpty(conOtherVos) ? conOtherVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))).mapToDouble(ConOtherVo::getContractMoney).sum() : 0d; - - double v = CollUtil.isNotEmpty(purchaseVos) ? purchaseVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))).mapToDouble(ConPurchaseVo::getContractMoney).sum() : 0d; + BigDecimal actualArrivalMoneySum = CollUtil.isNotEmpty(conOtherVos) ? conOtherVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))) + .map(item -> BigDecimal.valueOf(item.getContractMoney())).reduce(BigDecimal.ZERO,BigDecimal :: add) : BigDecimal.ZERO; + BigDecimal v = CollUtil.isNotEmpty(purchaseVos) ? purchaseVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))) + .map(item -> BigDecimal.valueOf(item.getContractMoney())).reduce(BigDecimal.ZERO,BigDecimal :: add) : BigDecimal.ZERO; log.info("本年采购合同总额:{},本年其他合同付款总金额:{}", v, actualArrivalMoneySum); - map.put("newExpenditureDate", v + actualArrivalMoneySum); + map.put("newExpenditureDate", v.add(actualArrivalMoneySum).doubleValue() ); //计算去年的数据 Date begin = DateUtil.beginOfYear(DateUtil.offset(new Date(), DateField.YEAR, -1)); Date end = DateUtil.endOfYear(DateUtil.offset(new Date(), DateField.YEAR, -1)); @@ -404,11 +405,13 @@ public class ConBigScreenServiceImpl implements IConBigScreenService { //计算其他合同付款总金额 List lastConOtherVos = conOtherMapper.selectVoList(Wrappers.lambdaQuery().eq(ConOther::getState, 1).eq(ConOther::getMoneyType, 0).between(true, ConOther::getSignTime, begin, end)); - double LastActualArrivalMoneySum = CollUtil.isNotEmpty(lastConOtherVos) ? lastConOtherVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))).mapToDouble(ConOtherVo::getContractMoney).sum() : 0d; + BigDecimal LastActualArrivalMoneySum = CollUtil.isNotEmpty(lastConOtherVos) ? lastConOtherVos.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))) + .map(item -> BigDecimal.valueOf(item.getContractMoney())).reduce(BigDecimal.ZERO,BigDecimal :: add) : BigDecimal.ZERO; - double lastExpenditureDate = CollUtil.isNotEmpty(voList) ? voList.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))).mapToDouble(ConPurchaseVo::getContractMoney).sum() : 0d; + BigDecimal lastExpenditureDate = CollUtil.isNotEmpty(voList) ? voList.stream().filter(itx -> (ObjectUtil.isNotEmpty(itx) && ObjectUtil.isNotEmpty(itx.getContractMoney()))) + .map(item -> BigDecimal.valueOf(item.getContractMoney())).reduce(BigDecimal.ZERO,BigDecimal :: add) : BigDecimal.ZERO; log.info("去年采购合同总额:{},去年其他合同付款总金额:{}", lastExpenditureDate, LastActualArrivalMoneySum); - map.put("lastExpenditureDate", lastExpenditureDate + LastActualArrivalMoneySum); + map.put("lastExpenditureDate", lastExpenditureDate.add(LastActualArrivalMoneySum).doubleValue()); return map; } @@ -417,8 +420,8 @@ public class ConBigScreenServiceImpl implements IConBigScreenService { HashMap map = new HashMap<>(); Map contractSum = contractSum(); Map expenditureSum = expenditureSum(); - map.put("newGrossProfit", new BigDecimal(contractSum.get("contractSum")).subtract(new BigDecimal(expenditureSum.get("newExpenditureDate"))).setScale(2, BigDecimal.ROUND_DOWN)); - map.put("LastGrossProfit", new BigDecimal(contractSum.get("LastContractSum")).subtract(new BigDecimal(expenditureSum.get("lastExpenditureDate"))).setScale(2, BigDecimal.ROUND_DOWN)); + map.put("newGrossProfit", BigDecimal.valueOf(contractSum.get("contractSum")).subtract(BigDecimal.valueOf(expenditureSum.get("newExpenditureDate"))).setScale(2, RoundingMode.DOWN)); + map.put("LastGrossProfit", BigDecimal.valueOf(contractSum.get("LastContractSum")).subtract(BigDecimal.valueOf(expenditureSum.get("lastExpenditureDate"))).setScale(2, RoundingMode.DOWN)); return map; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConPurchaseServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConPurchaseServiceImpl.java index e018624..c74913e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConPurchaseServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConPurchaseServiceImpl.java @@ -365,6 +365,9 @@ public class ConPurchaseServiceImpl implements IConPurchaseService { //查询mediaLink List mediaLinkList = getLocalStorageVoList(conPurchaseVo.getMediaLink()); conPurchaseVo.setMediaLinkList(mediaLinkList); + //查询检测照片 + List detectPicAttrList = getLocalStorageVoList(conPurchaseVo.getDetectPicAttr()); + conPurchaseVo.setDetectPicAttrList(detectPicAttrList); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleMediaServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleMediaServiceImpl.java index b0b1968..c5248fa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleMediaServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleMediaServiceImpl.java @@ -27,6 +27,8 @@ import com.ruoyi.contract.domain.ConSaleMedia; import com.ruoyi.contract.mapper.ConSaleMediaMapper; import com.ruoyi.contract.service.IConSaleMediaService; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.List; import java.util.Map; import java.util.Collection; @@ -361,7 +363,7 @@ public class ConSaleMediaServiceImpl implements IConSaleMediaService { } else { return new Double(0); } - }).reduce(new Double(0), Double::sum); + }).reduce((double) 0, Double::sum); //媒体费 Double mediaFeeTotal = conSaleMediaList.stream().map(item -> { Double mediaFee = item.getMediaFee(); @@ -370,7 +372,7 @@ public class ConSaleMediaServiceImpl implements IConSaleMediaService { } else { return new Double(0); } - }).reduce(new Double(0), Double::sum); + }).reduce((double) 0, Double::sum); //制作费 Double productFeeTotal = conSaleMediaList.stream().map(item -> { Double productFee = item.getProductFee(); @@ -379,7 +381,7 @@ public class ConSaleMediaServiceImpl implements IConSaleMediaService { } else { return new Double(0); } - }).reduce(new Double(0), Double::sum); + }).reduce((double) 0, Double::sum); //比稿返点金额 Double competReverMoneySum = conSaleMediaList.stream().map(item -> { Double compeMoney = item.getCompetReverMoney(); @@ -388,7 +390,7 @@ public class ConSaleMediaServiceImpl implements IConSaleMediaService { } else { return new Double(0); } - }).reduce(new Double(0), Double::sum); + }).reduce((double) 0, Double::sum); //其他返点金额汇总 Double otherReverMoneySum = conSaleMediaList.stream().map(item -> { Double otherRever= item.getOtherReverMoney(); @@ -397,12 +399,19 @@ public class ConSaleMediaServiceImpl implements IConSaleMediaService { } else { return new Double(0); } - }).reduce(new Double(0), Double::sum); + }).reduce((double) 0, Double::sum); + + //其他返点金额汇总2 + BigDecimal otherReverMoneySum2 = conSaleMediaList.stream().filter(item -> item.getOtherReverMoney2() != null) + .map(value -> new BigDecimal(value.getOtherReverMoney2().toString()).setScale(4, RoundingMode.HALF_UP)) + .reduce(BigDecimal.ZERO,BigDecimal :: add); + vo.setCompetReverMoneySum(competReverMoneySum); vo.setOtherReverMoneySum(otherReverMoneySum); vo.setAccountNumberTotal(accountNumberTotal); vo.setMediaFeeTotal(mediaFeeTotal); vo.setProductFeeTotal(productFeeTotal); + vo.setOtherReverMoneySum2(otherReverMoneySum2.doubleValue()); } return vo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleServiceImpl.java index e48f985..69e017f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/contract/service/impl/ConSaleServiceImpl.java @@ -41,6 +41,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.lang.reflect.Field; +import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @@ -227,7 +228,7 @@ public class ConSaleServiceImpl implements IConSaleService { mediaBo.setOtherReverPoit(StrUtil.isNotBlank(row.getOtherReverPoit()) ? row.getOtherReverPoit() : "0"); mediaBo.setOtherReverMoney(ObjectUtil.isNotNull(row.getOtherReverMoney()) ? row.getOtherReverMoney() : 0.0); mediaBo.setOtherReverPoit2(StrUtil.isNotBlank(row.getOtherReverPoit2()) ? row.getOtherReverPoit2() : "0"); - mediaBo.setOtherReverMoney2(ObjectUtil.isNotNull(row.getOtherReverMoney2()) ? row.getOtherReverMoney2() : 0.0); + mediaBo.setOtherReverMoney2(ObjectUtil.isNotNull(row.getOtherReverMoney2()) ? row.getOtherReverMoney2() : BigDecimal.ZERO); // 解析日期 try { @@ -1726,6 +1727,7 @@ public class ConSaleServiceImpl implements IConSaleService { vo.setMediaFeeTotal(conSaleTotalVo.getMediaFeeTotal()); vo.setCompetReverMoneySum(conSaleTotalVo.getCompetReverMoneySum()); vo.setOtherReverMoneySum(conSaleTotalVo.getOtherReverMoneySum()); + vo.setOtherReverMoneySum2(conSaleTotalVo.getOtherReverMoneySum2()); vo.setTotal(conSales.size()); } }