gongdecai 3 лет назад
Родитель
Сommit
2a9b0b7f94

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

@@ -4,6 +4,7 @@ import java.util.Date;
 import com.baomidou.mybatisplus.activerecord.Model;
 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.annotations.Version;
@@ -132,6 +133,17 @@ public class PurchaseClosingReport extends BaseModel<PurchaseClosingReport> {
      */
     private String workflowId;
 
+    /**
+     * 模糊查询
+     */
+    @TableField(exist = false)
+    private String searchKeyWord;
+
+    /**
+     *查询类型
+     */
+    @TableField(exist = false)
+    private String searchType;
 
     @Override
     protected Serializable pkVal() {

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

@@ -2,6 +2,10 @@ package com.yh.saas.plugin.yiliangyiyun.mapper;
 
 import com.yh.saas.plugin.yiliangyiyun.entity.PurchaseClosingReport;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.yh.saas.plugin.yiliangyiyun.entity.PurchaseReceiptReport;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +17,20 @@ import com.baomidou.mybatisplus.mapper.BaseMapper;
  */
 public interface PurchaseClosingReportMapper extends BaseMapper<PurchaseClosingReport> {
 
+
+    /**
+     * 根据条件查询采购pingcang统计总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询采购平仓统计列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<PurchaseClosingReport> getListByCondition(Map<String, Object> pageView);
 }

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IPurchaseClosingReportService.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.PurchaseClosingReport;
 import com.baomidou.mybatisplus.service.IService;
 
@@ -13,4 +14,8 @@ import com.baomidou.mybatisplus.service.IService;
  */
 public interface IPurchaseClosingReportService extends IService<PurchaseClosingReport> {
 
+
+    String editProcurementReceiptReport(PurchaseClosingReport purchaseClosingReport);
+
+    Page<PurchaseClosingReport> selectPurchaseOrder(PurchaseClosingReport purchaseClosingReport);
 }

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

@@ -1,11 +1,28 @@
 package com.yh.saas.plugin.yiliangyiyun.service.impl;
 
+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.PurchaseClosingReport;
+import com.yh.saas.plugin.yiliangyiyun.entity.PurchaseReceiptReport;
 import com.yh.saas.plugin.yiliangyiyun.mapper.PurchaseClosingReportMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.IPurchaseClosingReportService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.yh.saas.toolkit.workflow.service.IWorkflowService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 采购平仓报表 服务实现类
@@ -17,4 +34,78 @@ import org.springframework.stereotype.Service;
 @Service
 public class PurchaseClosingReportServiceImpl extends ServiceImpl<PurchaseClosingReportMapper, PurchaseClosingReport> implements IPurchaseClosingReportService {
 
+    @Autowired
+    private IWorkflowService workflowService;
+
+    @SofaReference
+    private ICommonRoleResourceService roleResourceService;
+
+
+    /**
+     * 采购入库统计
+     *
+     * @param purchaseClosingReport
+     * @return
+     */
+    @Override
+    public Page<PurchaseClosingReport> selectPurchaseOrder(PurchaseClosingReport purchaseClosingReport) {
+        Map<String, Object> pageView = new HashMap<>();
+        pageView.put("startRecord", (purchaseClosingReport.getCurrentPage() - 1)
+                * purchaseClosingReport.getPageSize());
+        List<String> businessKeys = null;
+        businessKeys = workflowService.getTaskBusinessKeysByCode("PURCHASE-CLOSE-REPORT");
+        List<String> statusSet = new ArrayList<>();
+        List<String> resourceIdList = this.getResourceIdList();
+        if (resourceIdList.contains("PURCHAS")) { // 填写,提交    权限做完以后替换
+            List<String> statusList = Lists.newArrayList(StatusEnum.PUR_RETURN.getFlag());
+            statusSet.addAll(statusList);
+        }
+
+        //公司id
+        pageView.put("compId", purchaseClosingReport.getCompId());
+        pageView.put("searchKeyWord", purchaseClosingReport.getSearchKeyWord());
+        pageView.put("searchType", purchaseClosingReport.getSearchType());
+        pageView.put("pageSize", purchaseClosingReport.getPageSize());
+        pageView.put("currentPage", purchaseClosingReport.getCurrentPage());
+        pageView.put("contractNo", purchaseClosingReport.getContractNo());
+        pageView.put("businessKeys", businessKeys);
+        pageView.put("statusSet", statusSet);
+
+
+        // 查询采购订单总数
+        Integer dataCount = baseMapper.getCountByCondition(pageView);
+        List<PurchaseClosingReport> dataList = baseMapper.getListByCondition(pageView);
+        Page<PurchaseClosingReport> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(purchaseClosingReport.getCurrentPage());
+        page.setSize(purchaseClosingReport.getPageSize());
+        return page;
+    }
+
+
+    /**
+     * 编辑采购平仓统计
+     *
+     * @param purchaseClosingReport
+     * @return
+     */
+    @Override
+    public String editProcurementReceiptReport(PurchaseClosingReport purchaseClosingReport) {
+        boolean one = this.updateById(purchaseClosingReport);
+        if (one) {
+            return "OK";
+        } else {
+            return "NG";
+        }
+    }
+
+
+    private List<String> getResourceIdList() {
+        User currentUser = AuthSecurityUtils.getCurrentUserInfo();
+        // 当前登录人主要角色
+        return roleResourceService.getBindResourcesByUserId(currentUser.getUserId()).stream()
+                .map(CommonRoleResource::getResourceId).collect(Collectors.toList());
+
+    }
 }

+ 20 - 4
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PurchaseOrderServiceImpl.java

@@ -13,16 +13,13 @@ import com.yh.saas.plugin.yiliangyiyun.exception.ServiceException;
 import com.yh.saas.plugin.yiliangyiyun.exception.YException;
 import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
 import com.yh.saas.plugin.yiliangyiyun.mapper.PurchaseOrderMapper;
-import com.yh.saas.plugin.yiliangyiyun.service.IPriceChangeRecordService;
+import com.yh.saas.plugin.yiliangyiyun.service.*;
 import com.yh.saas.plugin.yiliangyiyun.entity.PurchaseOrder;
 import com.yh.saas.plugin.yiliangyiyun.entity.TransactionRecord;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.google.common.collect.Lists;
-import com.yh.saas.plugin.yiliangyiyun.service.IPurchaseOrderService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.yh.saas.plugin.yiliangyiyun.service.ITransactionRecordService;
-import com.yh.saas.plugin.yiliangyiyun.service.IWarehouseInOutInfoService;
 import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
 import com.yh.saas.toolkit.workflow.service.IWorkflowService;
 import org.apache.commons.lang3.StringUtils;
@@ -56,6 +53,10 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
     private IWorkflowService workflowService;
     @Autowired
     private GeTuiUtils geTuiUtils;
+    @Autowired
+    private IPurchaseClosingReportService purchaseClosingReportService;
+    @Autowired
+    private IProcurementPlanInfoService procurementPlanInfoService;
     /**
      * 成交
      */
@@ -110,6 +111,21 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         transactionRecord.setTurnover(purchaseOrder.getTransactionsNumber());
         boolean two = transactionRecordService.insert(transactionRecord);
         geTuiUtils.pushByCid("平仓通知","您的合同:" + purchaseOrder.getContractNo() + " 平仓成功",purchaseOrder.getCommonId());
+        // 平仓报表
+        // 查询计划
+        ProcurementPlanInfo procurementPlanInfo = procurementPlanInfoService.selectById(purchaseOrder.getPlanId());
+        PurchaseClosingReport purchaseClosingReport = new PurchaseClosingReport();
+        purchaseClosingReport.setId(IdGenerator.generateUUID());
+        purchaseClosingReport.setCompId(purchaseOrder.getCompId());
+        purchaseClosingReport.setContractNo(purchaseOrder.getContractNo());
+        purchaseClosingReport.setClosePositionDate(purchaseOrder.getClosePositionDate());
+        purchaseClosingReport.setClosingQuantity(purchaseOrder.getClosingQuantity());
+        purchaseClosingReport.setTransactionPrice(purchaseOrder.getTransactionPrice());
+        purchaseClosingReport.setCloseRate(purchaseOrder.getCloseRate());
+        purchaseClosingReport.setBasisPrice(purchaseOrder.getBasis());
+        purchaseClosingReport.setCustomerName(purchaseOrder.getSeller());
+        purchaseClosingReport.setWarehouseName(procurementPlanInfo.getReceiveWarehouse());
+        purchaseClosingReportService.insert(purchaseClosingReport);
         if (one && two) {
             return "OK";
         } else {

+ 120 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/PurchaseClosingReportMapper.xml

@@ -2,4 +2,124 @@
 <!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.PurchaseClosingReportMapper">
 
+
+    <!-- 获得采购入库统计总数 -->
+    <select id="getCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(id)
+        FROM purchase_closing_report
+        WHERE
+        delete_flag = '0'
+        AND comp_id = #{compId}
+        <if test="businessKeys != null and businessKeys.size > 0">
+            and(
+            <foreach collection="businessKeys" item="businessValue" open="(" close=")" separator="or">
+                id = #{businessValue}
+            </foreach>
+            )
+        </if>
+        <if test="statusSet != null and statusSet.size > 0">
+            or (
+            <foreach collection="statusSet" item="statusId" separator="or" open="(" close=")">
+                t1.status_flag =
+                <if test="statusId != null">
+                    #{statusId}
+                </if>
+            </foreach>
+            )
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND status_flag = '1'
+            </if>
+            <if test="searchType == 2">
+                AND amount_ing_payable-amount_ed_payable>0
+            </if>
+            <if test="searchType == 3">
+                AND amount_ing_payable-amount_ed_payable=0
+            </if>
+        </if>
+        <if test="contractNo != null and contractNo != ''">
+            contract_no = #{contractNo}
+        </if>
+    </select>
+    <!-- 获得采购入库统计列表 -->
+    <select id="getListByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.PurchaseReceiptReport">
+        SELECT
+        id,
+        comp_id as compId,
+        contract_no as contractNo,
+        goods_name as goodsName,
+        position_number as positionnumber,
+        tran_car_no as tranCarNo,
+        car_no as carNo,
+        warehousing_date as warehousingDate,
+        water_content as waterContent,
+        protein,
+        settlement_price as settlementPrice,
+        net_weight as netWeight,
+        carry_over_weight as carryOverWeight,
+        deduction_amount AS deductionAmount,
+        deduction_items AS deductionItems,
+        amount_ing_payable as amountIngPayable,
+        amount_ed_payable as amountEdPayable,
+        amount_not_payable as amountNotPayable,
+        payment_screenshot as paymentScreenshot,
+        payment_date as paymentDate,
+        already_invoice as alreadyInvoice,
+        customer_name as customerName,
+        invoice_type as invoiceType,
+        warehouse_name  as warehouseName,
+        unit_price as unitPrice,
+        basis_price as basisPrice,
+        unloading_charge as unloading_charge,
+        invoice_fee as invoiceFee,
+        replen,
+        carry_forward as carryForward,
+        status,
+        status_flag as statusFlag,
+        approve_status approveStatus,
+        customer_confirmation_status_flag as customerConfirmationStatusFlag,
+        workflow_id as workflowId
+        FROM purchase_closing_report
+        WHERE
+        delete_flag = '0'
+        AND comp_id = #{compId}
+        <if test="businessKeys != null and businessKeys.size > 0">
+            and(
+            <foreach collection="businessKeys" item="businessValue" open="(" close=")" separator="or">
+                id = #{businessValue}
+            </foreach>
+            )
+        </if>
+        <if test="statusSet != null and statusSet.size > 0">
+            or (
+            <foreach collection="statusSet" item="statusId" separator="or" open="(" close=")">
+                t1.status_flag =
+                <if test="statusId != null">
+                    #{statusId}
+                </if>
+            </foreach>
+            )
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND status_flag = '1'
+            </if>
+            <if test="searchType == 2">
+                AND amount_ing_payable-amount_ed_payable>0
+            </if>
+            <if test="searchType == 3">
+                AND amount_ing_payable-amount_ed_payable=0
+            </if>
+        </if>
+        <if test="contractNo != null and contractNo != ''">
+            contract_no = #{contractNo}
+        </if>
+        ORDER BY update_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
 </mapper>

+ 5 - 6
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/PurchaseReceiptReportMapper.xml

@@ -6,7 +6,6 @@
     <!-- 获得采购入库统计总数 -->
     <select id="getCountByCondition" parameterType="Map" resultType="java.lang.Integer">
         SELECT
-
         COUNT(id)
         FROM purchase_receipt_report
         WHERE
@@ -34,10 +33,10 @@
                 AND status_flag = '1'
             </if>
             <if test="searchType == 2">
-                AND amountIngPayable-amountEdPayable>0
+                AND amount_ing_payable-amount_ed_payable>0
             </if>
             <if test="searchType == 3">
-                AND amountIngPayable-amountEdPayable=0
+                AND amount_ing_payable-amount_ed_payable=0
             </if>
         </if>
         <if test="contractNo != null and contractNo != ''">
@@ -46,7 +45,7 @@
     </select>
     <!-- 获得采购入库统计列表 -->
     <select id="getListByCondition" parameterType="Map"
-            resultType="com.yh.saas.plugin.yiliangyiyun.entity.PurchaseReceiptReport">
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.PurchaseClosingReport">
         SELECT
         id,
         comp_id as compId,
@@ -109,10 +108,10 @@
                 AND status_flag = '1'
             </if>
             <if test="searchType == 2">
-                AND amountIngPayable-amountEdPayable>0
+                AND amount_ing_payable-amount_ed_payable>0
             </if>
             <if test="searchType == 3">
-                AND amountIngPayable-amountEdPayable=0
+                AND amount_ing_payable-amount_ed_payable=0
             </if>
         </if>
         <if test="contractNo != null and contractNo != ''">