zhangyuewww 3 年之前
父节点
当前提交
8edfe0c714

+ 11 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ExpenseInfoController.java

@@ -4,6 +4,7 @@ package com.yh.saas.plugin.yiliangyiyun.controller;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
 import com.yh.saas.plugin.yiliangyiyun.entity.WarehousingOrder;
+import com.yh.saas.plugin.yiliangyiyun.entity.view.WarehouseNumView;
 import com.yh.saas.plugin.yiliangyiyun.service.IExpenseInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -94,7 +95,16 @@ public class ExpenseInfoController {
         return expenseInfoService.selectWarehousingOrder(contractNo,warehouseName,receiptDocDate);
     }
 
-
+    /**
+     * 费用管理图表
+     *
+     * @param compId
+     * @return
+     */
+    @GetMapping("/expenseChart")
+    public List<ExpenseInfo> expenseChart(String compId, int year){
+        return expenseInfoService.expenseChart(compId,year);
+    }
 
 }
 

+ 15 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ExpenseInfo.java

@@ -203,6 +203,21 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
      */
     @TableField(exist = false)
     private String flag;
+    /**
+     * 收入
+     */
+    @TableField(exist = false)
+    private String income;
+    /**
+     * 支出
+     */
+    @TableField(exist = false)
+    private String expenditure;
+    /**
+     * 月份
+     */
+    @TableField(exist = false)
+    private String month;
     /**
      * 开始时间
      */

+ 8 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ExpenseInfoMapper.java

@@ -31,4 +31,12 @@ public interface ExpenseInfoMapper extends BaseMapper<ExpenseInfo> {
      */
     List<ExpenseInfo> getListByCondition(Map<String, Object> pageView);
 
+    /**
+     * 根据条件查询费用列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<ExpenseInfo> getExpenseChartListByCondition(Map<String, Object> pageView);
+
 }

+ 6 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IExpenseInfoService.java

@@ -64,4 +64,10 @@ public interface IExpenseInfoService extends IService<ExpenseInfo> {
      *查看入库单数据
      */
     List<WarehousingOrder> selectWarehousingOrder(String contractNo, String warehouseName, String receiptDocDate);
+    /**
+     * 费用管理图表
+     * @param compId
+     * @return
+     */
+    List<ExpenseInfo> expenseChart(String compId,int year);
 }

+ 31 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ExpenseInfoServiceImpl.java

@@ -18,6 +18,7 @@ import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
 import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseAllocationInfo;
 import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
 import com.yh.saas.plugin.yiliangyiyun.entity.WarehousingOrder;
+import com.yh.saas.plugin.yiliangyiyun.entity.view.WarehouseNumView;
 import com.yh.saas.plugin.yiliangyiyun.exception.YException;
 import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
 import com.yh.saas.plugin.yiliangyiyun.mapper.ExpenseInfoMapper;
@@ -31,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -305,6 +307,35 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
         return warehousingOrderList;
     }
 
+
+    /**
+     * 费用管理图表
+     * @param compId
+     * @param year
+     * @return
+     */
+    @Override
+    public List<ExpenseInfo> expenseChart(String compId, int year) {
+        Map<String, Object> pageView = new HashMap<>();
+        //  公司ID
+        pageView.put("compId", compId);
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        Date currYearFirst = calendar.getTime();
+        String startDate = new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(currYearFirst);
+        Calendar calendar1 = Calendar.getInstance();
+        calendar1.clear();
+        calendar1.set(Calendar.YEAR, year);
+        calendar1.roll(Calendar.DAY_OF_YEAR, -1);
+        Date currYearFirst1 = calendar1.getTime();
+        String endDate = new SimpleDateFormat("yyyy-MM-dd 23:59:59").format(currYearFirst1);
+        pageView.put("startDate", startDate);
+        pageView.put("endDate", endDate);
+        List<ExpenseInfo> dataList = baseMapper.getExpenseChartListByCondition(pageView);
+        return dataList;
+    }
+
     private List<String> getResourceIdList() {
         User currentUser = AuthSecurityUtils.getCurrentUserInfo();
         // 当前登录人主要角色

+ 31 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ExpenseInfoMapper.xml

@@ -72,4 +72,35 @@
             LIMIT ${startRecord}, ${pageSize}
         </if>
     </select>
+    <!-- 获得费用管理柱形图 -->
+    <select id="getExpenseChartListByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo">
+        SELECT MONTH
+            ( a.create_date ) as month,
+            sum( b.amount_money ) as income,
+            sum( c.amount_money ) as expenditure
+        FROM
+            expense_info a
+            LEFT JOIN expense_info b ON b.id = a.id
+            AND b.delete_flag = 0
+            AND b.expenses_type = '1'
+            LEFT JOIN expense_info c ON c.id = a.id
+            AND c.delete_flag = 0
+            AND c.expenses_type = '2'
+        WHERE
+            a.delete_flag = 0
+            AND a.comp_id= #{compId}
+        <if test="startDate != null">
+            AND (DATE_FORMAT(a.create_date ,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(a.create_date ,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        GROUP BY
+            MONTH ( a.create_date )
+        ORDER BY
+            MONTH ( a.create_date ) ASC
+    </select>
 </mapper>