zhangyuewww 3 éve
szülő
commit
7b0be89ffc
14 módosított fájl, 572 hozzáadás és 12 törlés
  1. 1 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java
  2. 2 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/NumberConstant.java
  3. 8 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/StatusEnum.java
  4. 38 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ExpenseAllocationInfoController.java
  5. 63 3
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ExpenseInfoController.java
  6. 106 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ExpenseAllocationInfo.java
  7. 27 4
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ExpenseInfo.java
  8. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ExpenseAllocationInfoMapper.java
  9. 24 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IExpenseAllocationInfoService.java
  10. 44 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IExpenseInfoService.java
  11. 32 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ExpenseAllocationInfoServiceImpl.java
  12. 201 4
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ExpenseInfoServiceImpl.java
  13. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehousingOrderServiceImpl.java
  14. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ExpenseAllocationInfoMapper.xml

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

@@ -53,7 +53,7 @@ public class GeneratorCodeByTables {
     }
 
     public static void main(String[] args) throws IOException {
-        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","expense_info");
+        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","expense_allocation_info");
     }
 
     /**

+ 2 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/NumberConstant.java

@@ -27,6 +27,8 @@ public class NumberConstant {
 
 	public static final String CONSTANT_EXE_COST = "EXECOST";
 
+	public static final String EXPENSE_MANAGEMENT = "EXPENSE";
+
 	public static final String INVENTORY_CHECK = "CHECK";
 	private NumberConstant() {
 

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

@@ -144,6 +144,14 @@ public enum StatusEnum {
     RECEIVED("1", "已收款", "received"),
     PENDING_PAYMENT("3", "待付款", "pending_payment"),
     PAID("5", "已付款", "paid"),
+    //费用管理状态
+    TO_BE_CONFIRMED("1", "待确认", "to_be_confirmed"),
+    REJECTED("3", "已驳回", "rejected"),
+    COST_RECEIVED("5", "已收款", "cost_received"),
+    COMPLETED("7", "已完成", "completed"),
+    COST_PAYMENT("2", "待付款", "cost_payment"),
+    COST_PAID("4", "已付款", "cost_paid"),
+    COST_ADOPTED("6", "已通过", "cost_adopted"),
 
 
     ;

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

@@ -0,0 +1,38 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
+import com.yh.saas.plugin.yiliangyiyun.service.IExpenseAllocationInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 记录费用分配表信息 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-06-02
+ */
+@RestController
+@RequestMapping("/expenseAllocationInfo")
+public class ExpenseAllocationInfoController {
+    @Autowired
+    private IExpenseAllocationInfoService expenseAllocationInfoService;
+    /**
+     * 删除
+     *
+     * @param example
+     * @return
+     */
+    @PostMapping("/deleteInfo")
+    public void deleteInfo(@RequestBody ExpenseInfo example) {
+        expenseAllocationInfoService.deleteInfo(example.getId());
+    }
+
+}
+

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

@@ -6,10 +6,11 @@ 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.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -35,6 +36,65 @@ public class ExpenseInfoController {
     public Page<ExpenseInfo> selectInfo(ExpenseInfo expenseInfo) {
         return expenseInfoService.selectInfo(expenseInfo);
     }
+    /**
+     * 查看费用详情信息
+     */
+    @GetMapping("/ExpenseInfo")
+    public ExpenseInfo getInfo(@RequestParam String id) {
+        return expenseInfoService.getInfo(id);
+    }
+    /**
+     * 删除
+     *
+     * @param example
+     * @return
+     */
+    @PostMapping("/deleteInfo")
+    public void deleteInfo(@RequestBody ExpenseInfo example) {
+        expenseInfoService.deleteInfo(example.getId());
+    }
+    /**
+     * 请款 收款
+     */
+    @PostMapping("/api/addInfo")
+    public String addInfo(@RequestBody @Valid ExpenseInfo expenseInfo) {
+        return expenseInfoService.addInfo(expenseInfo);
+    }
+    /**
+     * 编辑
+     */
+    @PostMapping("/editInfo")
+    public String editInfo(@RequestBody ExpenseInfo expenseInfo) {
+        return expenseInfoService.editInfo(expenseInfo);
+    }
+    /**
+     * 付款
+     */
+    @PostMapping("/payment")
+    public String payment(@RequestBody ExpenseInfo expenseInfo) {
+        return expenseInfoService.payment(expenseInfo);
+    }
+    /**
+     * 删除
+     *
+     * @param example
+     * @return
+     */
+    @PostMapping("/deleteAllocationInfo")
+    public void deleteAllocationInfo(@RequestBody ExpenseInfo example) {
+        expenseInfoService.deleteAllocationInfo(example.getId());
+    }
+    /**
+     * 查看入库单下拉列表
+     * @param contractNo,warehouseName,receiptDocDate
+     * @return
+     */
+    @GetMapping("/selectWarehousingOrder")
+    public List<WarehousingOrder> selectWarehousingOrder(String contractNo, String warehouseName, String receiptDocDate) {
+        return expenseInfoService.selectWarehousingOrder(contractNo,warehouseName,receiptDocDate);
+    }
+
+
 
 }
 

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

@@ -0,0 +1,106 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+import java.util.List;
+
+
+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>
+ * 记录费用分配表信息
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-06-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("expense_allocation_info")
+public class ExpenseAllocationInfo extends BaseModel<ExpenseAllocationInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 主表id
+     */
+    private String infoId;
+    /**
+     * 入库单id
+     */
+    private String orderId;
+    /**
+     * 费用编号
+     */
+    private String costNo;
+    /**
+     * 费用名称
+     */
+    private String expenseName;
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+    /**
+     * 入库单时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date receiptDocDate;
+    /**
+     * 入库重量(吨)
+     */
+    private Float inWarehouseWeight;
+    /**
+     * 分配金额
+     */
+    private Double distributionMoney;
+    /**
+     * 货名key
+     */
+    private String goodsNameKey;
+    /**
+     * 货名
+     */
+    private String goodsName;
+    /**
+     * 货源
+     */
+    private String goodsSource;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 状态标识
+     */
+    private String statusFlag;
+    /**
+     * 分配详情
+     */
+    @TableField(exist = false)
+    private List<ExpenseAllocationInfo> expenseAllocationInfoList;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

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

@@ -2,6 +2,7 @@ package com.yh.saas.plugin.yiliangyiyun.entity;
 
 import java.util.Date;
 import java.io.Serializable;
+import java.util.List;
 
 
 import com.baomidou.mybatisplus.annotations.TableField;
@@ -92,6 +93,14 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
      * 分配类型key
      */
     private String allocationTypeKey;
+    /**
+     * 分配状态
+     */
+    private String distributionStatus;
+    /**
+     * 分配状态标识
+     */
+    private String distributionStatusFlag;
     /**
      * 类型(1收入2支出)
      */
@@ -99,6 +108,8 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
     /**
      * 入库单日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date warehouseOrderDate;
     /**
      * 费用用途(1合同费用3库点费用5经营性费用)
@@ -135,19 +146,21 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
     /**
      * 发起日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date expenseDate;
     /**
      * 经办人
      */
     private String agent;
     /**
-     * 分配状态标识(1空状态3待确认5已驳回)
+     * 状态
      */
-    private String distributionStatusFlag;
+    private String status;
     /**
-     * 分配状态
+     * 状态标识
      */
-    private String distributionStatus;
+    private String statusFlag;
     /**
      * 审核状态
      */
@@ -172,6 +185,11 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
      */
     @TableField(exist = false)
     private String searchKeyWord;
+    /**
+     * 操作标识
+     */
+    @TableField(exist = false)
+    private String flag;
     /**
      * 开始时间
      */
@@ -186,6 +204,11 @@ public class ExpenseInfo extends BaseModel<ExpenseInfo> {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @TableField(exist = false)
     private Date endDate;
+    /**
+     * 分配详情
+     */
+    @TableField(exist = false)
+    private List<ExpenseAllocationInfo> expenseAllocationInfoList;
 
     @Override
     protected Serializable pkVal() {

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

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseAllocationInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 记录费用分配表信息 Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-06-02
+ */
+public interface ExpenseAllocationInfoMapper extends BaseMapper<ExpenseAllocationInfo> {
+
+}

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

@@ -0,0 +1,24 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseAllocationInfo;
+import com.baomidou.mybatisplus.service.IService;
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
+
+/**
+ * <p>
+ * 记录费用分配表信息 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-06-02
+ */
+public interface IExpenseAllocationInfoService extends IService<ExpenseAllocationInfo> {
+    /**
+     * 删除
+     *
+     * @param id
+     */
+    void deleteInfo(String id);
+
+
+}

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

@@ -3,6 +3,10 @@ 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;
+import com.yh.saas.plugin.yiliangyiyun.entity.WarehousingOrder;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -20,4 +24,44 @@ public interface IExpenseInfoService extends IService<ExpenseInfo> {
      * @return
      */
     Page<ExpenseInfo> selectInfo(ExpenseInfo expenseInfo);
+    /**
+     * 查看
+     *
+     * @param
+     */
+    ExpenseInfo getInfo(String id);
+    /**
+     * 删除
+     *
+     * @param id
+     */
+    void deleteInfo(String id);
+    /**
+     * 添加
+     *
+     * @param expenseInfo
+     */
+    String addInfo(ExpenseInfo expenseInfo);
+    /**
+     * 编辑
+     *
+     * @param expenseInfo
+     */
+    String editInfo(ExpenseInfo expenseInfo);
+    /**
+     * 付款
+     *
+     * @param expenseInfo
+     */
+    String payment(ExpenseInfo expenseInfo);
+    /**
+     * 删除分配
+     *
+     * @param id
+     */
+    void deleteAllocationInfo(String id);
+    /**
+     *查看入库单数据
+     */
+    List<WarehousingOrder> selectWarehousingOrder(String contractNo, String warehouseName, String receiptDocDate);
 }

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

@@ -0,0 +1,32 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseAllocationInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.ExpenseInfo;
+import com.yh.saas.plugin.yiliangyiyun.mapper.ExpenseAllocationInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IExpenseAllocationInfoService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 记录费用分配表信息 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-06-02
+ */
+@Service
+public class ExpenseAllocationInfoServiceImpl extends ServiceImpl<ExpenseAllocationInfoMapper, ExpenseAllocationInfo> implements IExpenseAllocationInfoService {
+
+    /**
+     * 单条删除
+     * @param id
+     */
+    @Override
+    public void deleteInfo(String id) {
+        ExpenseAllocationInfo expenseAllocationInfo=this.selectById(id);
+        if (expenseAllocationInfo != null) {
+            this.deleteById(expenseAllocationInfo.getId());
+        }
+    }
+}

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

@@ -2,27 +2,36 @@ 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.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 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.winsea.svc.base.workflow.entity.Workflow;
+import com.yh.saas.common.support.util.IdGenerator;
+import com.yh.saas.plugin.base.service.ICommonBillOperateHisService;
+import com.yh.saas.plugin.yiliangyiyun.constant.NumberConstant;
 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.exception.YException;
+import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
 import com.yh.saas.plugin.yiliangyiyun.mapper.ExpenseInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IExpenseAllocationInfoService;
 import com.yh.saas.plugin.yiliangyiyun.service.IExpenseInfoService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.yh.saas.plugin.yiliangyiyun.service.INewWorkflowService;
+import com.yh.saas.plugin.yiliangyiyun.service.IWarehousingOrderService;
 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.*;
 import java.util.stream.Collectors;
 
 /**
@@ -39,6 +48,12 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
     private INewWorkflowService workflowService;
     @SofaReference
     private ICommonRoleResourceService roleResourceService;
+    @Autowired
+    private IExpenseAllocationInfoService expenseAllocationInfoService;
+    @Autowired
+    private ICommonBillOperateHisService billOperateHisService;
+    @Autowired
+    private IWarehousingOrderService warehousingOrderService;
 
     @Override
     public Page<ExpenseInfo> selectInfo(ExpenseInfo expenseInfo) {
@@ -87,6 +102,188 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
         return page;
     }
 
+    /**
+     * 查看
+     * @param id
+     * @return
+     */
+    @Override
+    public ExpenseInfo getInfo(String id) {
+        ExpenseInfo expenseInfo=this.selectById(id);
+        //费用分配列表
+        List<ExpenseAllocationInfo> expenseAllocationInfos = expenseAllocationInfoService.selectList(new EntityWrapper<ExpenseAllocationInfo>()
+                .eq("info_id", id));
+        if (!CollectionUtils.isEmpty(expenseAllocationInfos)) {
+            expenseInfo.setExpenseAllocationInfoList(expenseAllocationInfos);
+        }
+        return expenseInfo;
+    }
+
+    /**
+     * 删除
+     * @param id
+     */
+    @Override
+    public void deleteInfo(String id) {
+        ExpenseInfo expenseInfo=this.selectById(id);
+        if (expenseInfo != null) {
+            this.deleteById(expenseInfo.getId());
+        }
+    }
+
+    @Override
+    public String addInfo(ExpenseInfo expenseInfo) {
+        expenseInfo.setId(IdGenerator.generateUUID());
+        //收入
+        if ("1".equals(expenseInfo.getExpensesType())){
+            this.insert(expenseInfo);
+        }
+        //支出
+        else
+        {
+            expenseInfo.setStatusFlag(StatusEnum.COST_PAYMENT.getFlag());
+            expenseInfo.setStatus(StatusEnum.COST_PAYMENT.getName());
+            this.insert(expenseInfo);
+            //分配列表
+            List<ExpenseAllocationInfo> expenseAllocationInfoList = expenseInfo.getExpenseAllocationInfoList();
+            if (!CollectionUtils.isEmpty(expenseAllocationInfoList)) {
+                for (ExpenseAllocationInfo expenseAllocationInfo : expenseAllocationInfoList) {
+                    expenseAllocationInfo.setId(IdGenerator.generateUUID());
+                    expenseAllocationInfo.setInfoId(expenseInfo.getId());
+                    expenseAllocationInfo.setStatusFlag(StatusEnum.TO_BE_CONFIRMED.getFlag());
+                    expenseAllocationInfo.setStatus(StatusEnum.TO_BE_CONFIRMED.getName());
+                }
+                expenseAllocationInfoService.insertBatch(expenseAllocationInfoList);
+            }
+            // 插入操作历史
+            String staffName = this.billOperateHisService.getStaffAndName();
+            // 插入操作历史
+            this.billOperateHisService.saveBillOperateHis(expenseInfo.getId(), NumberConstant.EXPENSE_MANAGEMENT, staffName, null,
+                    "请款"+"("+expenseInfo.getAmountMoney()+")", null, expenseInfo.getRemark());
+            boolean isStartWorkflow = StringUtils.isBlank(expenseInfo.getWorkflowId());
+            // 不是退回的单子
+            if (isStartWorkflow) {
+                Workflow workflow = workflowService
+                        .findLatestWorkflowByBusinessCodeByApp(expenseInfo.getCompId(), "EX-CONTRACT-APPROVE");
+                // 没配置审核流程,直接结束并处理信息
+                if (workflow == null) {
+                    throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
+                }
+                // 开启审核流
+                else {
+                    // 设置状态 已提交审核
+                    expenseInfo.setWorkflowId(workflow.getId());
+                    this.updateById(expenseInfo);
+                    workflowService.startInstance(workflow.getId(), expenseInfo.getId());
+                }
+            }
+            // 退回的单子 再启用
+            else {
+                this.updateById(expenseInfo);
+                workflowService.activateInstance(expenseInfo.getWorkflowId(), expenseInfo.getId());
+            }
+        }
+        return "ok";
+    }
+
+    @Override
+    public String editInfo(ExpenseInfo expenseInfo) {
+        //确认收款
+        if ("0".equals(expenseInfo.getFlag())) {
+            expenseInfo.setStatusFlag(StatusEnum.COST_RECEIVED.getFlag());
+            expenseInfo.setStatus(StatusEnum.COST_RECEIVED.getName());
+        }
+        //完成收款
+        else if ("1".equals(expenseInfo.getFlag())){
+            expenseInfo.setStatusFlag(StatusEnum.COMPLETED.getFlag());
+            expenseInfo.setStatus(StatusEnum.COMPLETED.getName());
+        }
+        //确认分配
+        else if ("2".equals(expenseInfo.getFlag())){
+            expenseInfo.setDistributionStatusFlag(StatusEnum.COMPLETED.getFlag());
+            expenseInfo.setDistributionStatus(StatusEnum.COMPLETED.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.COST_ADOPTED.getFlag());
+                    expenseAllocationInfo.setStatus(StatusEnum.COST_ADOPTED.getName());
+                    expenseAllocationInfoService.updateById(expenseAllocationInfo);
+                }
+            }
+        }
+        //编辑分配
+        else {
+            List<ExpenseAllocationInfo> expenseAllocationInfoList = expenseInfo.getExpenseAllocationInfoList();
+            if (!CollectionUtils.isEmpty(expenseAllocationInfoList)) {
+                for (ExpenseAllocationInfo expenseAllocationInfo : expenseAllocationInfoList) {
+                    expenseAllocationInfoService.updateById(expenseAllocationInfo);
+                }
+            }
+        }
+
+        // 主表信息编辑
+        boolean one = this.updateById(expenseInfo);
+        // 假如成功返回ok
+        if (one) {
+            return "OK";
+        } else {
+            return "NG";
+        }
+    }
+
+    /**
+     * 付款
+     * @param expenseInfo
+     * @return
+     */
+    @Override
+    public String payment(ExpenseInfo expenseInfo) {
+        expenseInfo.setStatusFlag(StatusEnum.COST_PAID.getFlag());
+        expenseInfo.setStatus(StatusEnum.COST_PAID.getName());
+        this.updateById(expenseInfo);
+        // 插入操作历史
+        String staffName = this.billOperateHisService.getStaffAndName();
+        // 插入操作历史
+        this.billOperateHisService.saveBillOperateHis(expenseInfo.getId(), NumberConstant.EXPENSE_MANAGEMENT, staffName, null,
+                "付款"+"("+expenseInfo.getAmountMoney()+")", null, "");
+        return "ok";
+    }
+
+    /**
+     * 删除分配
+     * @param id
+     */
+    @Override
+    public void deleteAllocationInfo(String id) {
+        List<ExpenseAllocationInfo> expenseAllocationInfos=expenseAllocationInfoService.selectList(new EntityWrapper<ExpenseAllocationInfo>()
+                .eq("info_id",id)
+                .ne("status","已通过"));
+        if (!CollectionUtils.isEmpty(expenseAllocationInfos)){
+            for (ExpenseAllocationInfo expenseAllocationInfo:expenseAllocationInfos){
+                expenseAllocationInfoService.deleteInfo(expenseAllocationInfo.getId());
+            }
+        }
+    }
+
+    @Override
+    public List<WarehousingOrder> selectWarehousingOrder(String contractNo, String warehouseName, String receiptDocDate) {
+        Wrapper<WarehousingOrder> warehousingOrderWrapper = new EntityWrapper<>();
+        if (contractNo!=null){
+            warehousingOrderWrapper.eq("contract_no", contractNo);
+        }
+        if (warehouseName!=null){
+            warehousingOrderWrapper.eq("warehouse_name", warehouseName);
+        }
+        if (receiptDocDate!=null){
+            warehousingOrderWrapper.like("issuing_time", receiptDocDate);
+        }
+        warehousingOrderWrapper.orderBy("update_date");
+        List<WarehousingOrder> warehousingOrderList = warehousingOrderService.selectList(warehousingOrderWrapper);
+        return warehousingOrderList;
+    }
+
     private List<String> getResourceIdList() {
         User currentUser = AuthSecurityUtils.getCurrentUserInfo();
         // 当前登录人主要角色

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

@@ -197,6 +197,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 warehousingOrder.setWarehouseInOutId(qualityInspectionManagement.getWarehouseInOutId());
                 warehousingOrder.setWarehouseName(paymentManagement.getWarehouseName());
                 warehousingOrder.setGoodsSource(paymentManagement.getCustomerName());
+                warehousingOrder.setCompId(paymentManagement.getCompId());
                 warehousingOrder.setCarNo(paymentManagement.getCarNo());
                 warehousingOrder.setGoodsName(paymentManagement.getGoodsName());
                 warehousingOrder.setInWarehouseWeight(paymentManagement.getNetWeight());
@@ -240,6 +241,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
             for (WarehouseInOutInfo warehouseInOutInfo : warehouseInOutInfoList) {
                 warehousingOrder.setId(IdGenerator.generateUUID());
                 warehousingOrder.setBaseId(warehouseInOutInfo.getBaseId());
+                WarehouseBaseInfo warehouseBaseInfo=warehouseBaseInfoService.selectById(warehouseInOutInfo.getBaseId());
                 warehousingOrder.setWarehouseInOutId(warehouseInOutInfo.getId());
                 if(warehouseInOutInfo.getPositionId()!=null){
                     warehousingOrder.setWarehouseName(warehouseInOutInfo.getWarehouseName());
@@ -252,6 +254,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 warehousingOrder.setGoodsSource(warehouseInOutInfo.getContractNo());
                 warehousingOrder.setCarNo(warehouseInOutInfo.getCarNo());
                 warehousingOrder.setInType(warehouseInOutInfo.getInOutType());
+                warehousingOrder.setCompId(warehouseBaseInfo.getCompId());
                 warehousingOrder.setGoodsName(warehouseInOutInfo.getGoodsName());
                 warehousingOrder.setContractNo(warehouseInOutInfo.getContractNo());
                 warehousingOrder.setInWarehouseWeight(Float.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
@@ -302,6 +305,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 warehousingOrder.setWarehouseName(warehouseInOutInfo.getWarehouseName());
                 //货源为发货库
                 warehousingOrder.setGoodsSource(inOutWarehouseTask.getSendWarehouse());
+                warehousingOrder.setCompId(inOutWarehouseTask.getCompId());
                 warehousingOrder.setCarNo(warehouseInOutInfo.getCarNo());
                 warehousingOrder.setIssuingTime(new Date());
                 warehousingOrder.setInType(warehouseInOutInfo.getInOutType());
@@ -352,6 +356,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                 warehousingOrder.setWarehouseName(warehouseInOutInfo.getWarehouseName());
                 //货源为发货库
                 warehousingOrder.setGoodsSource(inOutWarehouseTask.getAgent()+"(退)");
+                warehousingOrder.setCompId(inOutWarehouseTask.getCompId());
                 warehousingOrder.setCarNo(warehouseInOutInfo.getCarNo());
                 warehousingOrder.setInType(warehouseInOutInfo.getInOutType());
                 warehousingOrder.setIssuingTime(new Date());

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ExpenseAllocationInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.ExpenseAllocationInfoMapper">
+
+</mapper>