2 Commits 5c75a0b0c4 ... e007e5f3de

Tác giả SHA1 Thông báo Ngày
  caozj e007e5f3de Merge remote-tracking branch 'origin/master' 1 năm trước cách đây
  caozj c938ff4df3 往来管理头部统计 1 năm trước cách đây

+ 10 - 0
hx-account/src/main/java/com/fjhx/account/controller/transaction/TransactionController.java

@@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 
 /**
  * <p>
@@ -43,4 +45,12 @@ public class TransactionController {
         transactionService.add(transactionDto);
     }
 
+
+    /**
+     * 往来管理头部统计
+     */
+    @PostMapping("/getHeadStatistic")
+    public Map<String,Object> getHeadStatistic(@RequestBody TransactionSelectDto dto) {
+        return transactionService.getHeadStatistic(dto);
+    }
 }

+ 6 - 0
hx-account/src/main/java/com/fjhx/account/entity/transaction/vo/TransactionVo.java

@@ -4,6 +4,8 @@ import com.fjhx.account.entity.transaction.po.Transaction;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 往来管理列表查询返回值实体
  *
@@ -29,4 +31,8 @@ public class TransactionVo extends Transaction {
      */
     private String corporationName;
 
+    /**
+     * 总金额
+     */
+    private BigDecimal SumAmount;
 }

+ 8 - 0
hx-account/src/main/java/com/fjhx/account/mapper/transaction/TransactionMapper.java

@@ -7,6 +7,8 @@ import com.fjhx.account.entity.transaction.vo.TransactionVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -23,4 +25,10 @@ public interface TransactionMapper extends BaseMapper<Transaction> {
      */
     Page<TransactionVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Transaction> wrapper);
 
+    /**
+     * 头部统计
+     * @param wrapper
+     * @return
+     */
+    List<TransactionVo> getHeadStatistic(@Param("ew") IWrapper<Transaction> wrapper);
 }

+ 6 - 0
hx-account/src/main/java/com/fjhx/account/service/transaction/TransactionService.java

@@ -7,6 +7,8 @@ import com.fjhx.account.entity.transaction.po.Transaction;
 import com.fjhx.account.entity.transaction.vo.TransactionVo;
 import com.ruoyi.common.core.service.BaseService;
 
+import java.util.Map;
+
 
 /**
  * <p>
@@ -28,4 +30,8 @@ public interface TransactionService extends BaseService<Transaction> {
      */
     void add(TransactionDto transactionDto);
 
+    /**
+     * 头部统计
+     */
+    Map<String,Object> getHeadStatistic(TransactionSelectDto dto);
 }

+ 29 - 0
hx-account/src/main/java/com/fjhx/account/service/transaction/impl/TransactionServiceImpl.java

@@ -23,7 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -83,6 +86,32 @@ public class TransactionServiceImpl extends ServiceImpl<TransactionMapper, Trans
         return page;
     }
 
+    /**
+     * 头部统计
+     * @param dto
+     * @return
+     */
+    @Override
+    public Map<String,Object> getHeadStatistic(TransactionSelectDto dto) {
+        Map<String,Object> map = new HashMap<>();
+        IWrapper<Transaction> wrapper = setWrapper(dto);
+        wrapper.isNotNull("t.corporation_id");
+        wrapper.groupBy("t.corporation_id","t.type");
+        List<TransactionVo> list = this.baseMapper.getHeadStatistic(wrapper);
+        //赋值归属公司名称
+        corporationService.attributeAssign(list, TransactionVo::getCorporationId, (item, corporation) -> {
+            item.setCorporationName(corporation.getName());
+        });
+        BigDecimal incMoney = list.stream().filter(s ->s.getType() == 1).map(TransactionVo::getSumAmount).reduce(BigDecimal.ZERO,BigDecimal::add);//应收款
+        BigDecimal expMoney = list.stream().filter(s ->s.getType() == 0).map(TransactionVo::getSumAmount).reduce(BigDecimal.ZERO,BigDecimal::add);//应付款
+        Map<String,List<TransactionVo>> traMap = list.stream().collect(Collectors.groupingBy(TransactionVo::getCorporationName));
+        map.put("incMoney",incMoney);
+        map.put("expMoney",expMoney);
+        map.put("tranList",traMap);
+        return map;
+    }
+
+
     @Override
     @DSTransactional
     public void add(TransactionDto transactionDto) {

+ 9 - 0
hx-account/src/main/resources/mapper/transaction/TransactionMapper.xml

@@ -19,4 +19,13 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="getHeadStatistic" resultType="com.fjhx.account.entity.transaction.vo.TransactionVo">
+        SELECT
+            t.corporation_id,
+            IFNULL(SUM( t.amount ),0) AS sumAmount,
+            t.type
+        FROM
+            transaction t
+            ${ew.customSqlSegment}
+    </select>
 </mapper>