zhangyuewww 3 лет назад
Родитель
Сommit
3c1a630566

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

@@ -1,6 +1,12 @@
 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.service.IExpenseInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -16,6 +22,19 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/expenseInfo")
 public class ExpenseInfoController {
+    @Autowired
+    private IExpenseInfoService expenseInfoService;
+
+    /**
+     * 费用详情列表查询
+     *
+     * @param expenseInfo
+     * @return
+     */
+    @GetMapping("/selectInfo")
+    public Page<ExpenseInfo> selectInfo(ExpenseInfo expenseInfo) {
+        return expenseInfoService.selectInfo(expenseInfo);
+    }
 
 }
 

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

@@ -4,13 +4,16 @@ import java.util.Date;
 import java.io.Serializable;
 
 
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yh.saas.common.support.entity.BaseModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
@@ -153,7 +156,32 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
      * 工作流ID
      */
     private String workflowId;
-
+    @TableField(exist = false)
+    private String taskId;
+    /**
+     *查询类型
+     */
+    @TableField(exist = false)
+    private String searchType;
+    /**
+     * 模糊查询
+     */
+    @TableField(exist = false)
+    private String searchKeyWord;
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date startDate;
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date endDate;
 
     @Override
     protected Serializable pkVal() {

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

@@ -66,6 +66,10 @@ public class WarehousingOrder extends BaseModel<WarehousingOrder> {
      * 仓库名称
      */
     private String warehouseName;
+    /**
+     * 入库类型
+     */
+    private String inType;
     /**
      * 货源
      */
@@ -146,6 +150,14 @@ public class WarehousingOrder extends BaseModel<WarehousingOrder> {
      * 请款
      */
     private Double requestFunds;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 盘损状态
+     */
+    private String inventoryStatus;
     /**
      * 审核状态
      */

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

@@ -3,6 +3,9 @@ package com.yh.saas.plugin.yiliangyiyun.mapper;
 import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 记录费用表信息 Mapper 接口
@@ -12,5 +15,20 @@ import com.baomidou.mybatisplus.mapper.BaseMapper;
  * @since 2022-05-29
  */
 public interface ExpenseInfoMapper extends BaseMapper<ExpenseInfo> {
+    /**
+     * 根据条件查询总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询费用列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<ExpenseInfo> getListByCondition(Map<String, Object> pageView);
 
 }

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

@@ -1,5 +1,6 @@
 package com.yh.saas.plugin.yiliangyiyun.service;
 
+import com.baomidou.mybatisplus.plugins.Page;
 import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
 import com.baomidou.mybatisplus.service.IService;
 
@@ -12,5 +13,11 @@ import com.baomidou.mybatisplus.service.IService;
  * @since 2022-05-29
  */
 public interface IExpenseInfoService extends IService<ExpenseInfo> {
-
+    /**
+     * 信息分页列表查询
+     *
+     * @param warehousingOrder
+     * @return
+     */
+    Page<ExpenseInfo> selectInfo(ExpenseInfo expenseInfo);
 }

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

@@ -1,10 +1,29 @@
 package com.yh.saas.plugin.yiliangyiyun.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.sofa.runtime.api.annotation.SofaReference;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.google.common.collect.Lists;
+import com.winsea.svc.base.base.entity.CommonRoleResource;
+import com.winsea.svc.base.base.service.ICommonRoleResourceService;
+import com.winsea.svc.base.security.entity.User;
+import com.winsea.svc.base.security.util.AuthSecurityUtils;
+import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
 import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
 import com.yh.saas.plugin.yiliangyiyun.mapper.ExpenseInfoMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.IExpenseInfoService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.yh.saas.plugin.yiliangyiyun.service.INewWorkflowService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -16,5 +35,62 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, ExpenseInfo> implements IExpenseInfoService {
+    @Autowired
+    private INewWorkflowService workflowService;
+    @SofaReference
+    private ICommonRoleResourceService roleResourceService;
+
+    @Override
+    public Page<ExpenseInfo> selectInfo(ExpenseInfo expenseInfo) {
+        Map<String, Object> pageView = new HashMap<>();
+        pageView.put("startRecord", (expenseInfo.getCurrentPage() - 1)
+                * expenseInfo.getPageSize());
+        List<String> businessKeys = null;
+        if ("2".equals(expenseInfo.getSearchType())) {
+            businessKeys = workflowService.getTaskBusinessKeysByCode("COLLECTION-WAREHOUSING-RECORD");
+        }
+        List<String> statusSet = new ArrayList<>();
+        List<String> resourceIdList = this.getResourceIdList();
+        if (resourceIdList.contains("saleOutReport-Edit")) { // 填写,提交    权限做完以后替换
+            List<String> statusList = Lists.newArrayList(StatusEnum.PUR_RETURN.getFlag());
+            statusSet.addAll(statusList);
+        }
+        pageView.put("searchKeyWord", expenseInfo.getSearchKeyWord());
+        pageView.put("searchType", expenseInfo.getSearchType());
+        pageView.put("pageSize", expenseInfo.getPageSize());
+        pageView.put("currentPage", expenseInfo.getCurrentPage());
+        pageView.put("contractNo", expenseInfo.getContractNo());
+        pageView.put("startDate", expenseInfo.getStartDate());
+        pageView.put("endDate", expenseInfo.getEndDate());
+        pageView.put("businessKeys", businessKeys);
+        pageView.put("statusSet", statusSet);
+        // 查询总数
+        Integer dataCount = baseMapper.getCountByCondition(pageView);
+        List<ExpenseInfo> dataList = baseMapper.getListByCondition(pageView);
+        if (!CollectionUtils.isEmpty(dataList)) {
+            dataList.forEach(expenseInfo1 -> {
+                String taskId = "";
+                // 只有待审核状态才有taskId
+                if (StringUtils.isNotBlank(expenseInfo1.getWorkflowId())) {
+                    JSONObject jsonObject = workflowService.getActiveTask(Lists.newArrayList(expenseInfo1.getWorkflowId()), expenseInfo1.getId());
+                    taskId = jsonObject.getString("taskId");
+                    expenseInfo1.setTaskId(taskId);
+                }
+            });
+
+        }
+        Page<ExpenseInfo> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(expenseInfo.getCurrentPage());
+        page.setSize(expenseInfo.getPageSize());
+        return page;
+    }
 
+    private List<String> getResourceIdList() {
+        User currentUser = AuthSecurityUtils.getCurrentUserInfo();
+        // 当前登录人主要角色
+        return roleResourceService.getBindResourcesByUserId(currentUser.getUserId()).stream()
+                .map(CommonRoleResource::getResourceId).collect(Collectors.toList());
+    }
 }

+ 12 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehousingOrderServiceImpl.java

@@ -129,6 +129,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
         pageView.put("startDate", warehousingOrder.getStartDate());
         pageView.put("endDate", warehousingOrder.getEndDate());
         pageView.put("baseId", warehousingOrder.getBaseId());
+        pageView.put("flag", warehousingOrder.getFlag());
         pageView.put("businessKeys", businessKeys);
         pageView.put("statusSet", statusSet);
         // 查询总数
@@ -237,9 +238,17 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 warehousingOrder.setId(IdGenerator.generateUUID());
                 warehousingOrder.setBaseId(warehouseInOutInfo.getBaseId());
                 warehousingOrder.setWarehouseInOutId(warehouseInOutInfo.getId());
+                if(warehouseInOutInfo.getPositionId()!=null){
+                    warehousingOrder.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                }
+                //区分采购合同产生的临时库
+                else {
+                    warehousingOrder.setWarehouseName(warehouseInOutInfo.getWarehouseName()+"(临)");
+                }
                 warehousingOrder.setWarehouseName(warehouseInOutInfo.getWarehouseName());
                 warehousingOrder.setGoodsSource(warehouseInOutInfo.getContractNo());
                 warehousingOrder.setCarNo(warehouseInOutInfo.getCarNo());
+                warehousingOrder.setInType(warehouseInOutInfo.getInOutType());
                 warehousingOrder.setGoodsName(warehouseInOutInfo.getGoodsName());
                 warehousingOrder.setContractNo(warehouseInOutInfo.getContractNo());
                 warehousingOrder.setInWarehouseWeight(Float.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
@@ -292,6 +301,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 warehousingOrder.setGoodsSource(inOutWarehouseTask.getSendWarehouse());
                 warehousingOrder.setCarNo(warehouseInOutInfo.getCarNo());
                 warehousingOrder.setIssuingTime(new Date());
+                warehousingOrder.setInType(warehouseInOutInfo.getInOutType());
                 warehousingOrder.setDeliveryWarehouse(warehouseInOutInfo.getCarNo());
                 warehousingOrder.setGoodsName(warehouseInOutInfo.getGoodsName());
                 warehousingOrder.setContractNo(warehouseInOutInfo.getContractNo());
@@ -340,6 +350,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 //货源为发货库
                 warehousingOrder.setGoodsSource(inOutWarehouseTask.getAgent()+"(退)");
                 warehousingOrder.setCarNo(warehouseInOutInfo.getCarNo());
+                warehousingOrder.setInType(warehouseInOutInfo.getInOutType());
                 warehousingOrder.setIssuingTime(new Date());
                 warehousingOrder.setDeliveryWarehouse(inOutWarehouseTask.getSendWarehouse());
                 warehousingOrder.setGoodsName(warehouseInOutInfo.getGoodsName());
@@ -390,7 +401,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
             this.billOperateHisService.saveBillOperateHis(warehousingOrder.getId(), NumberConstant.INVENTORY_CHECK, staffName, null,
                     "盘盈" + "(" + warehousingOrder.getProfitAndLoss() + ")", null, "审核中");
         }
-        else {
+        else if ("1".equals(warehousingOrder.getFlag())){
             this.billOperateHisService.saveBillOperateHis(warehousingOrder.getId(), NumberConstant.INVENTORY_CHECK, staffName, null,
                     "盘亏" + "(" + warehousingOrder.getProfitAndLoss() + ")", null, "审核中");
         }

+ 71 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ExpenseInfoMapper.xml

@@ -1,5 +1,75 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yh.saas.plugin.yiliangyiyun.mapper.ExpenseInfoMapper">
-
+    <!-- 获得费用管理信息总数 -->
+    <select id="getCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(id)
+        FROM expense_info
+        WHERE
+        delete_flag = '0'
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND expenses_type = '1'
+            </if>
+            <if test="searchType == 2">
+                AND expenses_type = '2'
+            </if>
+        </if>
+        <if test="startDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(expense_name) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+    </select>
+    <!-- 费用管理列表查询 -->
+    <select id="getListByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo">
+        SELECT
+        id,
+        cost_no as costNo,
+        expenses_type as expensesType,
+        purpose,
+        expense_name as expenseName,
+        expenses_purpose as expensesPurpose,
+        amount_money as amountMoney,
+        unallocated_amount as unallocatedAmount,
+        address_url as addressUrl,
+        agent,
+        distribution_status as distributionStatus,
+        approve_status as approveStatus,
+        create_date as createDate
+        FROM expense_info
+        WHERE
+        delete_flag = '0'
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND expenses_type = '1'
+            </if>
+            <if test="searchType == 2">
+                AND expenses_type = '2'
+            </if>
+        </if>
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(expense_name) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        <if test="startDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        ORDER BY update_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
 </mapper>

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/WarehousingOrderMapper.xml

@@ -24,6 +24,14 @@
         <if test="baseId != null and baseId != ''">
             AND base_id= #{baseId}
         </if>
+        <if test="flag != null and flag != ''">
+            <if test="flag == 0">
+                AND profit_and_loss >0
+            </if>
+            <if test="flag == 1">
+                AND profit_and_loss &lt; 0
+            </if>
+        </if>
         <if test="searchKeyWord != null and searchKeyWord != ''">
             AND (lower(goods_source) like lower(CONCAT('%',#{searchKeyWord},'%')))
         </if>
@@ -71,6 +79,14 @@
         <if test="baseId != null and baseId != ''">
             AND base_id= #{baseId}
         </if>
+        <if test="flag != null and flag != ''">
+            <if test="flag == 0">
+                AND profit_and_loss >0
+            </if>
+            <if test="flag == 1">
+                AND profit_and_loss &lt; 0
+            </if>
+        </if>
         ORDER BY base_id,update_date DESC
         <if test="currentPage != null and currentPage != ''">
             LIMIT ${startRecord}, ${pageSize}