浏览代码

Merge branch 'master' of http://47.100.3.209:3000/gdc/yiliangyiyun

ccjgmwz 3 年之前
父节点
当前提交
7fdf0a5821

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

@@ -232,7 +232,7 @@ public class WarehouseBaseInfoController {
     }
 
     /**
-     * 合同利润详情列表查询
+     * 库点利润详情列表查询
      *
      * @param warehouseBaseInfo
      * @return

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

@@ -507,6 +507,16 @@ public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
      */
     @TableField(exist = false)
     private Double amountEdPayableNew;
+    /**
+     * 剩余(吨)
+     */
+    @TableField(exist = false)
+    private Double surplus;
+    /**
+     * 利润(万元)
+     */
+    @TableField(exist = false)
+    private Double profit;
     /**
      * 应收粮款
      */

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

@@ -139,6 +139,14 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
      * 附件地址
      */
     private String addressUrl;
+    /**
+     * 驳回原因
+     */
+    private String rejectionReason;
+    /**
+     * 原因
+     */
+    private String reason;
     /**
      * 备注
      */
@@ -169,6 +177,11 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
      * 审核状态英文
      */
     private String approveStatusEn;
+    /**
+     * 合计分配
+     */
+    @TableField(exist = false)
+    private Double totalDistribution;
     /**
      * 工作流ID
      */

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

@@ -226,6 +226,11 @@ public class WarehousingOrder extends BaseModel<WarehousingOrder> {
     private Date endDate;
     @TableField(exist = false)
     private List<WarehousingOrder> warehousingOrderList;
+    /**
+     * 费用分配列表
+     */
+    @TableField(exist = false)
+    private List<ExpenseAllocationInfo> expenseAllocationInfoList;
 
     @Override
     protected Serializable pkVal() {

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

@@ -143,6 +143,7 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
         {
             expenseInfo.setStatusFlag(StatusEnum.COST_PAYMENT.getFlag());
             expenseInfo.setStatus(StatusEnum.COST_PAYMENT.getName());
+            expenseInfo.setUnallocatedAmount(expenseInfo.getAmountMoney()-expenseInfo.getTotalDistribution());
             this.insert(expenseInfo);
             //分配列表
             List<ExpenseAllocationInfo> expenseAllocationInfoList = expenseInfo.getExpenseAllocationInfoList();
@@ -164,7 +165,7 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
             // 不是退回的单子
             if (isStartWorkflow) {
                 Workflow workflow = workflowService
-                        .findLatestWorkflowByBusinessCodeByApp(expenseInfo.getCompId(), "EX-CONTRACT-APPROVE");
+                        .findLatestWorkflowByBusinessCodeByApp(expenseInfo.getCompId(), "FEE_DETAILS_MANG");
                 // 没配置审核流程,直接结束并处理信息
                 if (workflow == null) {
                     throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
@@ -214,7 +215,7 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
             }
         }
         //编辑分配
-        else {
+        else if ("3".equals(expenseInfo.getFlag())){
             List<ExpenseAllocationInfo> expenseAllocationInfoList = expenseInfo.getExpenseAllocationInfoList();
             if (!CollectionUtils.isEmpty(expenseAllocationInfoList)) {
                 for (ExpenseAllocationInfo expenseAllocationInfo : expenseAllocationInfoList) {
@@ -222,7 +223,27 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
                 }
             }
         }
-
+        //主表编辑 flag==4
+        //驳回分配
+        else if ("5".equals(expenseInfo.getFlag())){
+            expenseInfo.setDistributionStatusFlag(StatusEnum.REJECTED.getFlag());
+            expenseInfo.setDistributionStatus(StatusEnum.REJECTED.getName());
+            List<ExpenseAllocationInfo> expenseAllocationInfos=expenseAllocationInfoService.selectList(new EntityWrapper<ExpenseAllocationInfo>()
+                    .eq("info_id",expenseInfo.getId())
+                    .eq("status","待确认"));
+            if (!CollectionUtils.isEmpty(expenseAllocationInfos)){
+                for (ExpenseAllocationInfo expenseAllocationInfo:expenseAllocationInfos){
+                    expenseAllocationInfo.setStatusFlag(StatusEnum.REJECTED.getFlag());
+                    expenseAllocationInfo.setStatus(StatusEnum.REJECTED.getName());
+                    expenseAllocationInfoService.updateById(expenseAllocationInfo);
+                }
+            }
+        }
+        //驳回收款
+        else if ("6".equals(expenseInfo.getFlag())) {
+            expenseInfo.setStatusFlag(StatusEnum.REJECTED.getFlag());
+            expenseInfo.setStatus(StatusEnum.REJECTED.getName());
+        }
         // 主表信息编辑
         boolean one = this.updateById(expenseInfo);
         // 假如成功返回ok

+ 32 - 19
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseInOutInfoServiceImpl.java

@@ -3044,8 +3044,13 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             }
                         }
                     }
+
                     //常用库退库入库类型
                     else if ("退库".equals(warehouseInOutInfo.getInOutType())) {
+                        //检斤表
+                        WeighingManagement weighingManagement = weighingManagementService.selectOne(new EntityWrapper<WeighingManagement>()
+                                .eq("warehouse_in_out_id",warehouseInOutInfo.getId())
+                                .eq("delete_flag", "0"));
                         //他运的销售合同
                         ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
                                 .eq("contract_no", warehouseInOutInfo.getContractNo())
@@ -3064,9 +3069,9 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             stockSaleReceiptReport.setGrossWeight(Double.valueOf(String.valueOf(warehouseInOutInfo.getGrossWeight())));
                             stockSaleReceiptReport.setTare(Double.valueOf(String.valueOf(warehouseInOutInfo.getTare())));
                             stockSaleReceiptReport.setNetWeight(-warehouseInOutInfo.getNetWeight());
-                            stockSaleReceiptReport.setSettlementPrice(contractManagementInfo.getUnitContractPrice());
+                            stockSaleReceiptReport.setSettlementPrice(Double.valueOf(String.valueOf(weighingManagement.getContractPrice())));
                             stockSaleReceiptReport.setReturnDate(warehouseInOutInfo.getInOutDate());
-                            stockSaleReceiptReport.setAmountIngReceivable(-warehouseInOutInfo.getNetWeight() * contractManagementInfo.getUnitContractPrice());
+                            stockSaleReceiptReport.setAmountIngReceivable(-warehouseInOutInfo.getNetWeight() * (Double.valueOf(String.valueOf(weighingManagement.getContractPrice()))));
                             stockSaleReceiptReport.setSettlementWeight(-warehouseInOutInfo.getNetWeight());
                             stockSaleReceiptReport.setReturnFlag("1");
                             stockSaleReceiptReport.setStatusFlag(StatusEnum.TO_BE_RECEIVED.getFlag());
@@ -3102,7 +3107,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             stockSaleReceiptReport.setTare(Double.valueOf(String.valueOf(warehouseInOutInfo.getTare())));
                             stockSaleReceiptReport.setNetWeight(-warehouseInOutInfo.getNetWeight());
                             stockSaleReceiptReport.setReturnDate(warehouseInOutInfo.getInOutDate());
-                            stockSaleReceiptReport.setAmountIngReceivable(-warehouseInOutInfo.getNetWeight() * contractManagementInfo1.getUnitContractPrice());
+                            stockSaleReceiptReport.setAmountIngReceivable(-warehouseInOutInfo.getNetWeight() * (Double.valueOf(String.valueOf(weighingManagement.getContractPrice()))));
                             stockSaleReceiptReport.setSettlementWeight(-warehouseInOutInfo.getNetWeight());
                             stockSaleReceiptReport.setReturnFlag("1");
                             stockSaleReceiptReport.setStatusFlag(StatusEnum.TO_BE_RECEIVED.getFlag());
@@ -3373,6 +3378,10 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 else if ("1".equals(warehouseInOutInfo.getInOutFlag()) && "1".equals(warehouseBaseInfo.getWarehouseType())) {
                     //常用库销售出库类型
                     if ("1".equals(warehouseInOutInfo.getInOutTypeKey())) {
+                        //检斤表
+                        WeighingManagement weighingManagement = weighingManagementService.selectOne(new EntityWrapper<WeighingManagement>()
+                                .eq("warehouse_in_out_id",warehouseInOutInfo.getId())
+                                .eq("delete_flag", "0"));
                         //他运的销售合同
                         ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
                                 .eq("contract_no", warehouseInOutInfo.getContractNo())
@@ -3465,14 +3474,14 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             if ("1".equals(contractManagementInfo.getSettlementWeightMethod())) {
                                 stockSaleReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
                             }
-                            //定价销售
-                            if (contractManagementInfo.getUnitContractPrice() != null) {
-                                stockSaleReceiptReport.setSettlementPrice(contractManagementInfo.getUnitContractPrice());
+//                            //定价销售
+//                            if (contractManagementInfo.getUnitContractPrice() != null) {
+                                stockSaleReceiptReport.setSettlementPrice(Double.valueOf(String.valueOf(weighingManagement.getContractPrice())));
                                 stockSaleReceiptReport.setAmountIngReceivable(warehouseInOutInfo.getNetWeight() *
-                                        (contractManagementInfo.getUnitContractPrice()));
+                                        (Double.valueOf(String.valueOf(weighingManagement.getContractPrice()))));
                                 stockSaleReceiptReport.setAmountEdReceivable(0.00);
                                 stockSaleReceiptReport.setAmountNotReceivable(stockSaleReceiptReport.getAmountIngReceivable());
-                            }
+//                            }
                             stockSaleReceiptReport.setStatusFlag(StatusEnum.TO_BE_RECEIVED.getFlag());
                             stockSaleReceiptReport.setStatus(StatusEnum.TO_BE_RECEIVED.getName());
                             stockSaleReceiptReport.setSettlementWeight(stockSaleReceiptReport.getNetWeight());
@@ -3569,14 +3578,14 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             //按出库重量结算时
                             if ("1".equals(contractManagementInfo1.getSettlementWeightMethod())) {
                                 stockSaleReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
-                                //定价销售
-                                if (contractManagementInfo1.getUnitContractPrice() != null) {
-                                    stockSaleReceiptReport.setSettlementPrice(contractManagementInfo1.getUnitContractPrice());
+//                                //定价销售
+//                                if (contractManagementInfo1.getUnitContractPrice() != null) {
+                                    stockSaleReceiptReport.setSettlementPrice(Double.valueOf(String.valueOf(weighingManagement.getContractPrice())));
                                     stockSaleReceiptReport.setAmountIngReceivable(warehouseInOutInfo.getNetWeight() *
-                                            (contractManagementInfo1.getUnitContractPrice()));
+                                            (Double.valueOf(String.valueOf(weighingManagement.getContractPrice()))));
                                     stockSaleReceiptReport.setAmountEdReceivable(0.00);
                                     stockSaleReceiptReport.setAmountNotReceivable(stockSaleReceiptReport.getAmountIngReceivable());
-                                }
+//                                }
                             }
                             stockSaleReceiptReport.setStatusFlag(StatusEnum.TO_BE_RECEIVED.getFlag());
                             stockSaleReceiptReport.setStatus(StatusEnum.TO_BE_RECEIVED.getName());
@@ -3797,6 +3806,10 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 }
                 //临时库出库
                 else if ("1".equals(warehouseInOutInfo.getInOutFlag()) && "2".equals(warehouseBaseInfo.getWarehouseType())) {
+                    //检斤表
+                    WeighingManagement weighingManagement = weighingManagementService.selectOne(new EntityWrapper<WeighingManagement>()
+                            .eq("warehouse_in_out_id",warehouseInOutInfo.getId())
+                            .eq("delete_flag", "0"));
                     //临时库销售出库类型 且为自动创建的临时库时(采购报表进数据,销售报表也进数据)
                     if ("1".equals(warehouseInOutInfo.getInOutTypeKey()) && "1".equals(warehouseBaseInfo.getCreateType())) {
                         ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
@@ -3817,11 +3830,11 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             stockPurchaseReceiptReport.setNetWeight(Double.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
                             stockPurchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
                             stockPurchaseReceiptReport.setSettlementWeight(Double.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
-                            stockPurchaseReceiptReport.setSettlementPrice(contractManagementInfo.getUnitContractPrice());
-                            if (contractManagementInfo.getUnitContractPrice() != null) {
+                            stockPurchaseReceiptReport.setSettlementPrice(Double.valueOf(String.valueOf(weighingManagement.getContractPrice())));
+//                            if (contractManagementInfo.getUnitContractPrice() != null) {
                                 stockPurchaseReceiptReport.setAmountIngPayable(warehouseInOutInfo.getNetWeight() *
-                                        (contractManagementInfo.getUnitContractPrice()));
-                            }
+                                        (Double.valueOf(String.valueOf(weighingManagement.getContractPrice()))));
+//                            }
                             stockPurchaseReceiptReport.setAmountEdPayable(0.0d);
                             stockPurchaseReceiptReport.setAmountNotPayable(stockPurchaseReceiptReport.getAmountIngPayable());
                             stockPurchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
@@ -3944,10 +3957,10 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             stockPurchaseReceiptReport.setNetWeight(Double.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
                             stockPurchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
                             stockPurchaseReceiptReport.setSettlementWeight(Double.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
-                            stockPurchaseReceiptReport.setSettlementPrice(contractManagementInfo.getUnitContractPrice());
+                            stockPurchaseReceiptReport.setSettlementPrice(Double.valueOf(String.valueOf(weighingManagement.getContractPrice())));
                             if (contractManagementInfo.getUnitContractPrice() != null) {
                                 stockPurchaseReceiptReport.setAmountIngPayable(warehouseInOutInfo.getNetWeight() *
-                                        (contractManagementInfo.getUnitContractPrice()));
+                                        (Double.valueOf(String.valueOf(weighingManagement.getContractPrice()))));
                             }
                             stockPurchaseReceiptReport.setAmountEdPayable(0.0d);
                             stockPurchaseReceiptReport.setAmountNotPayable(stockPurchaseReceiptReport.getAmountIngPayable());

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

@@ -68,6 +68,8 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
     private IQualityInspectionManagementService qualityInspectionManagementService;
     @Autowired
     private ICommonBillOperateHisService billOperateHisService;
+    @Autowired
+    private IExpenseAllocationInfoService expenseAllocationInfoService;
 
     /**
      * 添加/编辑出库选择货源
@@ -140,6 +142,11 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
         List<WarehousingOrder> dataList = baseMapper.getListByCondition(pageView);
         if (!CollectionUtils.isEmpty(dataList)) {
             dataList.forEach(warehousingOrder1 -> {
+                List<ExpenseAllocationInfo> expenseAllocationInfos=expenseAllocationInfoService.selectList(new EntityWrapper<ExpenseAllocationInfo>()
+                .eq("order_id",warehousingOrder1.getId()));
+                if(!CollectionUtils.isEmpty(expenseAllocationInfos)){
+                    warehousingOrder1.setExpenseAllocationInfoList(expenseAllocationInfos);
+                }
                 String taskId = "";
                 // 只有待审核状态才有taskId
                 if (StringUtils.isNotBlank(warehousingOrder1.getWorkflowId())) {

+ 49 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/workflow/ExepenseInfoListener.java

@@ -0,0 +1,49 @@
+package com.yh.saas.plugin.yiliangyiyun.workflow;
+
+import com.yh.saas.common.support.workflow.AbstractWorkflowTaskListener;
+import com.yh.saas.common.support.workflow.annotation.WorkflowTaskListener;
+import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
+import com.yh.saas.plugin.yiliangyiyun.service.IExpenseInfoService;
+import com.yh.saas.plugin.yiliangyiyun.service.IPurchasePriceService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@WorkflowTaskListener(name = "利润核算", group = "费用管理")
+public class ExepenseInfoListener extends AbstractWorkflowTaskListener {
+
+    private static final long serialVersionUID = 4103656734835351132L;
+
+    @Autowired
+    private IExpenseInfoService expenseInfoService;
+
+    @Override
+    public void handleStatusChanged(String businessKey, String status, String statusEn, boolean processIsEnd) {
+        ExpenseInfo expenseInfo = expenseInfoService.selectById(businessKey);
+        if (expenseInfo == null) {
+            return;
+        }
+        if (processIsEnd) {
+            expenseInfo.setStatusFlag(StatusEnum.NOT_COLLECTION_PAY.getFlag());
+            expenseInfo.setStatus(StatusEnum.NOT_COLLECTION_PAY.getName());
+            expenseInfo.setWorkflowId(null);
+            expenseInfo.setApproveStatus(null);
+        } else {
+            expenseInfo.setApproveStatus(status);
+        }
+        expenseInfoService.updateAllColumnById(expenseInfo);
+    }
+
+    @Override
+    public void handleRejectApplicationRepulsed(String workflowId, String businessKey, boolean needReapply) {
+        ExpenseInfo expenseInfo = expenseInfoService.selectById(businessKey);
+        if (expenseInfo == null) {
+            return;
+        }
+        expenseInfo.setStatusFlag(StatusEnum.PURCHASE_FAILED.getFlag());
+        expenseInfo.setStatus(StatusEnum.PURCHASE_FAILED.getName());
+        expenseInfo.setApproveStatus(null);
+        expenseInfoService.updateAllColumnById(expenseInfo);
+
+    }
+
+}

+ 1 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/WeighingManagementMapper.xml

@@ -51,6 +51,7 @@
         a.number,
         a.customer,
         a.warehouse_in_out_id as warehouseInOutId,
+        a.contract_price as contrantPrice,
         a.customer_number_card as customerNumberCard,
         a.service_management_type as serviceManagementType,
         a.customer_phone as customerPhone,