Procházet zdrojové kódy

Merge remote-tracking branch 'origin/test' into test

haoyu před 2 roky
rodič
revize
840a52f95a
28 změnil soubory, kde provedl 578 přidání a 52 odebrání
  1. 1 0
      sql/Online.sql
  2. 26 0
      src/main/java/com/ydtech/constants/sys/SysDeptAccountStatus.java
  3. 38 0
      src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountWithdrawController.java
  4. 11 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountWithdrawMapper.java
  5. 19 19
      src/main/java/com/ydtech/modules/admin/model/SysDept.java
  6. 10 0
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccount.java
  7. 46 0
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccountWithdraw.java
  8. 50 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountWithdrawVo.java
  9. 13 0
      src/main/java/com/ydtech/modules/admin/service/SysDeptAccountWithdrawService.java
  10. 49 6
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java
  11. 68 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountWithdrawServiceImpl.java
  12. 1 0
      src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java
  13. 2 1
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java
  14. 18 13
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java
  15. 12 3
      src/main/java/com/ydtech/modules/ins/model/guoren/CarPriceReq.java
  16. 2 0
      src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java
  17. 7 1
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  18. 4 0
      src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java
  19. 15 1
      src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java
  20. 31 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNew.java
  21. 9 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductCosts.java
  22. 9 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductCostsSave.java
  23. 9 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductQueryVo.java
  24. 28 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/CostsAuditVo.java
  25. 19 2
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java
  26. 74 3
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  27. 4 0
      src/main/resources/mapper/modules/admin/SysDeptAccountWithdrawMapper.xml
  28. 3 3
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

+ 1 - 0
sql/Online.sql

@@ -0,0 +1 @@
+

+ 26 - 0
src/main/java/com/ydtech/constants/sys/SysDeptAccountStatus.java

@@ -0,0 +1,26 @@
+package com.ydtech.constants.sys;
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "sysDeptAccountStatus", desc = "机构账户提现审核状态")
+public enum SysDeptAccountStatus implements IBaseEnum {
+    WAIT("0","待审核",0,1),
+
+    PASS("1","审核通过",0,1),
+
+    REJECT("2","审核驳回",0,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+}

+ 38 - 0
src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountWithdrawController.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.admin.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.model.SysDeptAccountWithdraw;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountWithdrawVo;
+import com.ydtech.modules.admin.service.SysDeptAccountWithdrawService;
+import com.ydtech.modules.base.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+@Api(tags = "机构账户审核")
+@RequestMapping("/sysDeptAccountWithdraw")
+@RestController
+public class SysDeptAccountWithdrawController extends BaseController {
+    @Autowired
+    private SysDeptAccountWithdrawService sysDeptAccountWithdrawService;
+
+    @PostMapping("/queryStatus")
+    @ApiOperation(value = "机构账户审核状态查询")
+    public HttpResult queryStatus(@RequestBody SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo){
+        IPage<SysDeptAccountWithdraw> getAnnualAuditOrderPage = sysDeptAccountWithdrawService.getList(sysDeptAccountWithdrawVo);
+        PageResult pageResult = buildPageResponse(getAnnualAuditOrderPage);
+        return HttpResult.ok(pageResult);
+    }
+
+    @PostMapping("/audit")
+    @ApiOperation(value = "机构账户审核")
+    public HttpResult audit(@RequestBody SysDeptAccountWithdraw sysDeptAccountWithdraw){
+        return HttpResult.ok(sysDeptAccountWithdrawService.updateByStatus(sysDeptAccountWithdraw));
+    }
+}

+ 11 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountWithdrawMapper.java

@@ -0,0 +1,11 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysDeptAccountWithdraw;
+import org.apache.ibatis.annotations.Mapper;
+
+
+
+@Mapper
+public interface SysDeptAccountWithdrawMapper extends BaseMapper<SysDeptAccountWithdraw> {
+}

+ 19 - 19
src/main/java/com/ydtech/modules/admin/model/SysDept.java

@@ -106,25 +106,25 @@ public class SysDept implements Serializable {
     @ApiModelProperty(value = "子公司C,门店M,部门D")
     private String deptType;
 
-    @TableField(value = "management_fee")
-    @ApiModelProperty(value = "管理费比例%")
-    private double managementFee;
-
-    @TableField(value = "management_fee_second")
-    @ApiModelProperty(value = "二级机构管理费比例%")
-    private double managementFeeSecond;
-
-    @TableField(value = "management_fee_third")
-    @ApiModelProperty(value = "三级机构管理费比例%")
-    private double managementFeeThird;
-
-    @TableField(value = "management_fee_forth")
-    @ApiModelProperty(value = "四级机构管理费比例%")
-    private double managementFeeForth;
-
-    @TableField(value = "management_fee_fifth")
-    @ApiModelProperty(value = "五级机构管理费比例%")
-    private double managementFeeFifth;
+//    @TableField(value = "management_fee")
+//    @ApiModelProperty(value = "管理费比例%")
+//    private double managementFee;
+//
+//    @TableField(value = "management_fee_second")
+//    @ApiModelProperty(value = "二级机构管理费比例%")
+//    private double managementFeeSecond;
+//
+//    @TableField(value = "management_fee_third")
+//    @ApiModelProperty(value = "三级机构管理费比例%")
+//    private double managementFeeThird;
+//
+//    @TableField(value = "management_fee_forth")
+//    @ApiModelProperty(value = "四级机构管理费比例%")
+//    private double managementFeeForth;
+//
+//    @TableField(value = "management_fee_fifth")
+//    @ApiModelProperty(value = "五级机构管理费比例%")
+//    private double managementFeeFifth;
 
     @TableField(value = "management_source")
     @ApiModelProperty(value = "机构来源(渠道、个代)")

+ 10 - 0
src/main/java/com/ydtech/modules/admin/model/SysDeptAccount.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -18,13 +19,22 @@ public class SysDeptAccount implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "dept_id")
+    @ApiModelProperty(value = "机构Id")
     private String deptId;
 
+    @ApiModelProperty(value = "机构费用")
     @TableField(value = "management_fee")
     private BigDecimal managementFee;
 
+    @ApiModelProperty(value = "创建时间")
     @TableField(value = "create_time")
     private Date createTime;
 
+    @ApiModelProperty(value = "提现金额")
+    @TableField(exist = false)
+    private BigDecimal amount;
+
+
+
 
 }

+ 46 - 0
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountWithdraw.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+@Data
+@TableName(value = "sys_dept_account_withdraw")
+@ApiModel(value = "机构账户审核表")
+public class SysDeptAccountWithdraw implements Serializable {
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @TableField(value = "dept_id")
+    @ApiModelProperty(value = "机构id")
+    private String deptId;
+
+    @TableField(value = "name")
+    @ApiModelProperty(value = "机构名称")
+    private String name;
+
+    @TableField(value = "amount")
+    @ApiModelProperty(value = "提现金额")
+    private BigDecimal amount;
+
+    @TableField(value = "status")
+    @ApiModelProperty(value = "提现状态")
+    private String status;
+
+    @TableField(value = "remark")
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @TableField(value = "create_time")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+}

+ 50 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountWithdrawVo.java

@@ -0,0 +1,50 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SysDeptAccountWithdrawVo extends PageRequest implements Serializable {
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @TableField(value = "dept_id")
+    @ApiModelProperty(value = "机构id")
+    private String deptId;
+
+    @TableField(value = "name")
+    @ApiModelProperty(value = "机构名称")
+    private String name;
+
+    @TableField(value = "amount")
+    @ApiModelProperty(value = "提现金额")
+    private BigDecimal amount;
+
+    @TableField(value = "status")
+    @ApiModelProperty(value = "提现状态")
+    private String status;
+
+    @TableField(value = "remark")
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "创建时间开始时间")
+    private Date createTimeStart;
+
+
+    @ApiModelProperty(value = "创建时间结束时间")
+    private Date createTimeEnd;
+
+}

+ 13 - 0
src/main/java/com/ydtech/modules/admin/service/SysDeptAccountWithdrawService.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysDeptAccountWithdraw;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountWithdrawVo;
+
+public interface SysDeptAccountWithdrawService extends IService<SysDeptAccountWithdraw> {
+    IPage<SysDeptAccountWithdraw> getList(SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo);
+
+    HttpResult updateByStatus(SysDeptAccountWithdraw sysDeptAccountWithdraw);
+}

+ 49 - 6
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java

@@ -1,17 +1,18 @@
 package com.ydtech.modules.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.sys.SysDeptAccountStatus;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.dao.SysDeptAccountMapper;
-import com.ydtech.modules.admin.model.SysDeptAccount;
-import com.ydtech.modules.admin.model.SysDeptAccountHistory;
+import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountDto;
 import com.ydtech.modules.admin.model.vo.SysDeptAccountByUserVo;
 import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
-import com.ydtech.modules.admin.service.SysDeptAccountService;
+import com.ydtech.modules.admin.service.*;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
@@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -28,9 +30,21 @@ public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountMapper,
     @Autowired
     private SysDeptAccountService sysDeptAccountService;
 
+    @Autowired
+    private SysDeptAccountHistoryService sysDeptAccountHistoryService;
+
     @Autowired
     private SysDeptAccountMapper sysDeptAccountMapper;
 
+    @Autowired
+    private SysDeptAccountWithdrawService sysDeptAccountWithdrawService;
+
+    @Autowired
+    private SysDeptService sysDeptService;
+
+    @Autowired
+    private SysUserInfoService sysUserInfoService;
+
     @Override
     public BasePageResult<SysDeptAccount> queryByVo(SysDeptAccountVO sysDeptAccountVO) {
 
@@ -57,16 +71,45 @@ public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountMapper,
 
     public HttpResult withdrawDeptAccount(SysDeptAccount sysDeptAccount) {
         SysDeptAccount deptAccount = sysDeptAccountMapper.selectById(sysDeptAccount.getDeptId());
+        //根据deptId查询提现人员相关信息
+        LambdaQueryWrapper<SysDept> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysDept::getId, sysDeptAccount.getDeptId());
+        SysDept sysDept = sysDeptService.getOne(queryWrapper);
+
+        if (!BaseController.getUser().getId().equals(sysDept.getWithdrawUser())) {
+            return HttpResult.error("您不为该机构账户提现人员");
+        }
+        if (sysDeptAccount.getAmount().compareTo(deptAccount.getManagementFee()) > 0) {
+            return HttpResult.error("提现金额大于机构账户金额");
+        }
         // 减去提现金额
-        deptAccount.setManagementFee(deptAccount.getManagementFee().subtract(sysDeptAccount.getManagementFee()));
-        sysDeptAccountService.updateById(sysDeptAccount);
+        deptAccount.setManagementFee(deptAccount.getManagementFee().subtract(sysDeptAccount.getAmount()));
+        sysDeptAccountService.updateById(deptAccount);
         // 机构历史明细生成提现明细
         SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
         sysDeptAccountHistory.setId(IdGenerate.nextId());
         sysDeptAccountHistory.setDeptId(sysDeptAccount.getDeptId());
-        sysDeptAccountHistory.setAmount(sysDeptAccount.getManagementFee());
+        sysDeptAccountHistory.setAmount(sysDeptAccount.getAmount());
         sysDeptAccountHistory.setSurplusAmount(deptAccount.getManagementFee());
         sysDeptAccountHistory.setSuborder(null);
+        sysDeptAccountHistory.setDocumentary("1"); //提现
+        sysDeptAccountHistory.setFromBankCard(null);
+        sysDeptAccountHistory.setToBankCard(null);
+        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
+        sysDeptAccountHistory.setCreateTime(new Date());
+        sysDeptAccountHistory.setRemark("从" + sysDept.getName() + "机构账户中提现" + sysDeptAccountHistory.getAmount() + "元");
+        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
+
+        // 生成提现审核数据
+        SysDeptAccountWithdraw sysDeptAccountWithdraw = new SysDeptAccountWithdraw();
+        sysDeptAccountWithdraw.setId(IdGenerate.nextId());
+        sysDeptAccountWithdraw.setDeptId(deptAccount.getDeptId());
+        sysDeptAccountWithdraw.setName(sysDept.getName());
+        sysDeptAccountWithdraw.setAmount(sysDeptAccount.getAmount());
+        sysDeptAccountWithdraw.setStatus(SysDeptAccountStatus.WAIT.getCode()); //待审核
+        sysDeptAccountWithdraw.setRemark("");
+        sysDeptAccountWithdraw.setCreateTime(new Date());
+        sysDeptAccountWithdrawService.save(sysDeptAccountWithdraw);
 
         return HttpResult.ok("", sysDeptAccount);
     }

+ 68 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountWithdrawServiceImpl.java

@@ -0,0 +1,68 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.sys.SysDeptAccountStatus;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.admin.dao.SysDeptAccountWithdrawMapper;
+import com.ydtech.modules.admin.model.SysDeptAccount;
+import com.ydtech.modules.admin.model.SysDeptAccountWithdraw;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountWithdrawVo;
+import com.ydtech.modules.admin.service.SysDeptAccountService;
+import com.ydtech.modules.admin.service.SysDeptAccountWithdrawService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class SysDeptAccountWithdrawServiceImpl extends ServiceImpl<SysDeptAccountWithdrawMapper, SysDeptAccountWithdraw> implements SysDeptAccountWithdrawService {
+
+    @Autowired
+    private SysDeptAccountWithdrawMapper sysDeptAccountWithdrawMapper;
+
+    @Autowired
+    private SysDeptAccountWithdrawService sysDeptAccountWithdrawService;
+    @Autowired
+    private SysDeptAccountService sysDeptAccountService;
+
+    @Override
+    public IPage<SysDeptAccountWithdraw> getList(SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(sysDeptAccountWithdrawVo.getPageNum());
+        pageRequest.setPageSize(sysDeptAccountWithdrawVo.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        LambdaQueryWrapper<SysDeptAccountWithdraw> queryWrapper = new LambdaQueryWrapper<>();
+        //审核状态
+        if (sysDeptAccountWithdrawVo.getStatus() != null && !"".equals(sysDeptAccountWithdrawVo.getStatus())) {
+            queryWrapper.eq(SysDeptAccountWithdraw::getStatus, sysDeptAccountWithdrawVo.getStatus());
+        }
+        //创建时间区间
+        if (sysDeptAccountWithdrawVo.getCreateTimeStart() != null && !"".equals(sysDeptAccountWithdrawVo.getCreateTimeStart())) {
+            queryWrapper.ge(SysDeptAccountWithdraw::getCreateTime, sysDeptAccountWithdrawVo.getCreateTimeStart());
+        }
+        if (sysDeptAccountWithdrawVo.getCreateTimeEnd() != null && !"".equals(sysDeptAccountWithdrawVo.getCreateTimeEnd())) {
+            queryWrapper.le(SysDeptAccountWithdraw::getCreateTime, sysDeptAccountWithdrawVo.getCreateTimeEnd());
+        }
+        Page pageData = sysDeptAccountWithdrawMapper.selectPage(page, queryWrapper);
+        return pageData;
+    }
+
+    @Override
+    public HttpResult updateByStatus(SysDeptAccountWithdraw sysDeptAccountWithdraw) {
+        if (sysDeptAccountWithdraw.getStatus().equals(SysDeptAccountStatus.PASS.getCode())) {
+            SysDeptAccount sysDeptAccount = sysDeptAccountService.getById(sysDeptAccountWithdraw.getDeptId());
+            sysDeptAccount.setManagementFee(sysDeptAccount.getManagementFee().subtract(sysDeptAccountWithdraw.getAmount()));
+            sysDeptAccountService.updateById(sysDeptAccount);
+        }
+        if (sysDeptAccountWithdraw.getStatus().equals(SysDeptAccountStatus.REJECT.getCode())) {
+            SysDeptAccount sysDeptAccount = sysDeptAccountService.getById(sysDeptAccountWithdraw.getDeptId());
+            sysDeptAccount.setManagementFee(sysDeptAccount.getManagementFee().add(sysDeptAccountWithdraw.getAmount()));
+            sysDeptAccountService.updateById(sysDeptAccount);
+        }
+        sysDeptAccountWithdrawService.updateById(sysDeptAccountWithdraw);
+        return HttpResult.ok("审核完成",sysDeptAccountWithdraw);
+    }
+}

+ 1 - 0
src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java

@@ -58,6 +58,7 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
     public Page<SysUser> getUserPage(Page page, SysUserDto dto);
 
     public Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel);
+
 }
 
 

+ 2 - 1
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -51,13 +51,14 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     // 递归查找节点的所有父级节点
     public List<EsmUserReferrer> findParents(String userId) {
         List<EsmUserReferrer> referrers = new ArrayList<>();
+
         EsmUserReferrer esmUserReferrer = esmUserReferrerService.getById(userId);
         //找不到用户的推荐关系
         if(esmUserReferrer == null){
             return null;
         }
         List<EsmUserReferrer> esmUserReferrers = esmUserReferrerService.list(new LambdaQueryWrapper<EsmUserReferrer>().eq(EsmUserReferrer::getAffiliation, esmUserReferrer.getAffiliation()));
-        findParentsRecursive(userId, esmUserReferrers, referrers);
+        findParentsRecursive(esmUserReferrer.getReferrerId(), esmUserReferrers, referrers);
         return referrers;
     }
 

+ 18 - 13
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -29,6 +29,7 @@ import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.entity.po.*;
 import com.ydtech.modules.protocol.service.*;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
@@ -2609,7 +2610,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         return result.toString();
     }
 
-    public FeeOrderNewVo newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew) {
+    public FeeOrderNewVo newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew, PtlAgreementProductCostsNew ptlAgreementProductCostsNew) {
         FeeOrderNewVo feeOrderNewVo = new FeeOrderNewVo();
         List<FeeOrderNewVo.EntranceFee> entranceFeeList = new ArrayList<>();
         List<FeeOrderNewVo.ExportFee> exportFeeList = new ArrayList<>();
@@ -2636,6 +2637,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         jqEntranceFee.setOtherCostsProportion(insFeeOrderNew.getJqOtherCostsProportion());   // 跟单比例
         jqEntranceFee.setOtherCostsPremiums(insFeeOrderNew.getJqOtherCostsPremiums());      // 跟单费
         jqEntranceFee.setSuperviseCosts(insFeeOrderNew.getJqSuperviseCostsProportion());  // 手续费比例
+        jqEntranceFee.setExportSuperviseCosts(new BigDecimal(ptlAgreementProductCostsNew.getJqCostsExportProportion()));  // 出口费比例
         entranceFeeList.add(jqEntranceFee);
 
 
@@ -2678,18 +2680,18 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
         //交强出口手续费比例
         BigDecimal jqExportSuperviseCosts =
-                jqExportTotalProportion.compareTo(jqEntranceFee.getSuperviseCosts()) > 0 ? jqEntranceFee.getSuperviseCosts() : jqExportTotalProportion;
+                jqExportTotalProportion.compareTo(jqEntranceFee.getExportSuperviseCosts()) > 0 ? jqEntranceFee.getExportSuperviseCosts() : jqExportTotalProportion;
 
         //交强出口其他费比例
         BigDecimal jqOtherCostsProportion =
-                jqExportTotalProportion.compareTo(jqEntranceFee.getSuperviseCosts()) > 0 ? jqExportTotalProportion.subtract(jqExportSuperviseCosts) : new BigDecimal(0);
+                jqExportTotalProportion.compareTo(jqEntranceFee.getExportSuperviseCosts()) > 0 ? jqExportTotalProportion.subtract(jqExportSuperviseCosts) : new BigDecimal(0);
 
         jqExportFee.setSuperviseCosts(jqExportSuperviseCosts);
         jqExportFee.setSuperviseCostsPremiums(insFeeOrderNew.getJqPremium().multiply(jqExportSuperviseCosts.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
         jqExportFee.setOtherCostsProportion(jqOtherCostsProportion);
         jqExportFee.setOtherCostsPremiums(insFeeOrderNew.getJqPremium().multiply(jqOtherCostsProportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
-        jqExportFee.setTotalProportion(jqExportFee.getSuperviseCosts().add(jqExportFee.getOtherCostsProportion()));
-        jqExportFee.setTotalAmount(jqExportFee.getSuperviseCostsPremiums().add(jqExportFee.getOtherCostsPremiums()));
+        jqExportFee.setTotalProportion(jqExportSuperviseCosts.add(jqOtherCostsProportion));
+        jqExportFee.setTotalAmount(jqExportSuperviseCosts.add(jqOtherCostsProportion));
         exportFeeList.add(jqExportFee);
 
 
@@ -2704,6 +2706,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         syEntranceFee.setOtherCostsProportion(insFeeOrderNew.getSyOtherCostsProportion());   // 跟单比例
         syEntranceFee.setOtherCostsPremiums(insFeeOrderNew.getSyOtherCostsPremiums());      // 跟单费
         syEntranceFee.setSuperviseCosts(insFeeOrderNew.getSySuperviseCostsProportion());  // 手续费比例
+        syEntranceFee.setExportSuperviseCosts(new BigDecimal(ptlAgreementProductCostsNew.getSyCostsExportProportion()));  // 出口费比例
         entranceFeeList.add(syEntranceFee);
 
         // 商业管理费
@@ -2735,18 +2738,19 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         }
         //商业出口手续费比例
         BigDecimal syExportSuperviseCosts =
-                syExportTotalProportion.compareTo(syEntranceFee.getSuperviseCosts()) > 0 ? syEntranceFee.getSuperviseCosts() : syExportTotalProportion;
+                syExportTotalProportion.compareTo(syEntranceFee.getExportSuperviseCosts()) > 0 ? syEntranceFee.getExportSuperviseCosts() : syExportTotalProportion;
 
         //商业出口其他费比例
         BigDecimal syOtherCostsProportion =
-                syExportTotalProportion.compareTo(syEntranceFee.getSuperviseCosts()) > 0 ? syExportTotalProportion.subtract(syExportSuperviseCosts) : new BigDecimal(0);
+                syExportTotalProportion.compareTo(syEntranceFee.getExportSuperviseCosts()) > 0 ? syExportTotalProportion.subtract(syExportSuperviseCosts) : new BigDecimal(0);
 
         syExportFee.setSuperviseCosts(syExportSuperviseCosts);
         syExportFee.setSuperviseCostsPremiums(insFeeOrderNew.getSyPremium().multiply(syExportSuperviseCosts.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
         syExportFee.setOtherCostsProportion(syOtherCostsProportion);
         syExportFee.setOtherCostsPremiums(insFeeOrderNew.getSyPremium().multiply(syOtherCostsProportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
-        syExportFee.setTotalProportion(syExportFee.getSuperviseCosts().add(syExportFee.getOtherCostsProportion()));
-        syExportFee.setTotalAmount(syExportFee.getSuperviseCostsPremiums().add(syExportFee.getOtherCostsPremiums()));
+        //如果入口的总比例等于0  则出口的总比例也等于0
+        syExportFee.setTotalProportion(syExportSuperviseCosts.add(syExportFee.getOtherCostsProportion()));
+        syExportFee.setTotalAmount(syExportSuperviseCosts.add(syExportFee.getOtherCostsPremiums()));
         exportFeeList.add(syExportFee);
 
 
@@ -2761,6 +2765,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         nonEntranceFee.setOtherCostsProportion(insFeeOrderNew.getNoOtherCostsProportion());   // 跟单比例
         nonEntranceFee.setOtherCostsPremiums(insFeeOrderNew.getNoOtherCostsPremiums());      // 跟单费
         nonEntranceFee.setSuperviseCosts(insFeeOrderNew.getNoSuperviseCostsProportion());  // 手续费比例
+        nonEntranceFee.setExportSuperviseCosts(new BigDecimal(ptlAgreementProductCostsNew.getNoCostsExportProportion()));  // 出口费比例
         entranceFeeList.add(nonEntranceFee);
 
         // 五级管理费
@@ -2794,18 +2799,18 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
         //非车出口手续费比例
         BigDecimal nonExportSuperviseCosts =
-                nonExportTotalProportion.compareTo(nonEntranceFee.getSuperviseCosts()) > 0 ? nonEntranceFee.getSuperviseCosts() : nonExportTotalProportion;
+                nonExportTotalProportion.compareTo(nonEntranceFee.getExportSuperviseCosts()) > 0 ? nonEntranceFee.getExportSuperviseCosts() : nonExportTotalProportion;
 
         //非车出口其他费比例
         BigDecimal nonOtherCostsProportion =
-                nonExportTotalProportion.compareTo(nonEntranceFee.getSuperviseCosts()) > 0 ? nonExportTotalProportion.subtract(nonExportSuperviseCosts) : new BigDecimal(0);
+                nonExportTotalProportion.compareTo(nonEntranceFee.getExportSuperviseCosts()) > 0 ? nonExportTotalProportion.subtract(nonExportSuperviseCosts) : new BigDecimal(0);
 
         nonExportFee.setSuperviseCosts(nonExportSuperviseCosts);
         nonExportFee.setSuperviseCostsPremiums(insFeeOrderNew.getNoPremium().multiply(nonExportSuperviseCosts.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
         nonExportFee.setOtherCostsProportion(nonOtherCostsProportion);
         nonExportFee.setOtherCostsPremiums(insFeeOrderNew.getNoPremium().multiply(nonOtherCostsProportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
-        nonExportFee.setTotalProportion(nonExportFee.getSuperviseCosts().add(nonExportFee.getOtherCostsProportion()));
-        nonExportFee.setTotalAmount(nonExportFee.getSuperviseCostsPremiums().add(nonExportFee.getOtherCostsPremiums()));
+        nonExportFee.setTotalProportion(nonExportSuperviseCosts.add(nonOtherCostsProportion));
+        nonExportFee.setTotalAmount(nonExportSuperviseCosts.add(nonOtherCostsProportion));
         exportFeeList.add(nonExportFee);
 
         feeOrderNewVo.setEntranceFee(entranceFeeList);

+ 12 - 3
src/main/java/com/ydtech/modules/ins/model/guoren/CarPriceReq.java

@@ -82,6 +82,7 @@ public class CarPriceReq {
         prpTmain.setEProposalFlag("1");
         //购车发票日期
         prpTmain.setBusiness(carInfo.getIssueDate());
+
         prpTmain.setAgentName(channelInfo.getAgentName());
         prpTmain.setChanneltypetwoName(channelInfo.getChannelTypeTwoName());
         prpTmain.setChanneltypeoneName(channelInfo.getChannelTypeOneName());
@@ -131,14 +132,15 @@ public class CarPriceReq {
 
         prpTitemCar.setEngineNo(carInfo.getEngineNo());
         prpTitemCar.setBrandName(vinQ.getBrandNameBC());
+        // 发证日期
         prpTitemCar.setCertifiCateDate(carInfo.getIssueDate());
 
         //使用性质  8A	家庭自用
         String vehicleUse = carInfo.getVehicleUse();
         UseNatureCodeMapping useNatureCodeMapping = UseNatureCodeMapping.valueOf(UseNatureCodeMapping.TITLE + vehicleUse);
         prpTitemCar.setUseNatureCode(useNatureCodeMapping.getUseNatureCode());
-        //初登日期
-        prpTitemCar.setEnrollDate(carInfo.getIssueDate());
+        // 初登日期
+        prpTitemCar.setEnrollDate(carInfo.getRegisterDate());
         //核定载客数
         prpTitemCar.setSeatCount(carInfo.getSeatCount());
         prpTitemCar.setFuelType(vinQ.getFuelType());
@@ -162,7 +164,8 @@ public class CarPriceReq {
         prpTitemCar.setMaincarKindCode(categoriesOfVehicles.getCode());
 
         //过户日期
-        prpTitemCar.setChgOwnerDate(carInfo.getTransferDate());
+
+        prpTitemCar.setChgOwnerDate(carInfo.getIssueDate());
         /**
          * vin car
          */
@@ -317,12 +320,18 @@ public class CarPriceReq {
             @JsonProperty(value = "brandName")
             @JSONField(name = "brandName")
             private String brandName;
+            /**
+             * 发证日期
+             */
             @JsonProperty(value = "certifiCateDate")
             @JSONField(name = "certifiCateDate")
             private String certifiCateDate;
             @JsonProperty(value = "useNatureCode")
             @JSONField(name = "useNatureCode")
             private String useNatureCode;
+            /**
+             * 初登日期
+             */
             @JsonProperty(value = "enrollDate")
             @JSONField(name = "enrollDate")
             private String enrollDate;

+ 2 - 0
src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java

@@ -47,6 +47,8 @@ public class FeeOrderNewVo implements Serializable {
         private BigDecimal otherCostsProportion;
         @ApiModelProperty("跟单费")
         private BigDecimal otherCostsPremiums;
+        @ApiModelProperty("出口手续费比例")
+        private BigDecimal exportSuperviseCosts;
     }
 
     /**

+ 7 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -57,7 +57,9 @@ import com.ydtech.modules.protocol.entity.constants.PtlApiType;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
+import com.ydtech.modules.protocols.service.PtlAgreementProductCostsNewService;
 import com.ydtech.utils.SnowFlakeUtil;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.StringUtils;
@@ -113,6 +115,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private InsFeeOrderNewService insFeeOrderNewService;
 
+    @Autowired
+    private PtlAgreementProductCostsNewService ptlAgreementProductCostsNewService;
+
     @Value("${upload.file.path}")
     private String uploadFilePath;
 
@@ -646,11 +651,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 //            }
 //        }
         if (!Objects.isNull(insFeeOrderNew)) {
+            PtlAgreementProductCostsNew ptlAgreementProductCostsNew = ptlAgreementProductCostsNewService.getById(insFeeOrderNew.getCostsId());
             List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(insFeeOrderNew);
             orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
 //            List<FeeOrderNewVo> feeOrderNewVoList = feeRuleSchemeService.newConvertOrderFeeVoData(insFeeOrderNew);
 //            orderAndAreaCompany.setFeeOrderNewVoList(feeOrderNewVoList);
-            FeeOrderNewVo  feeOrderNewVo =   feeRuleSchemeService.newConvertOrderFeeVoData(insFeeOrderNew);
+            FeeOrderNewVo  feeOrderNewVo =   feeRuleSchemeService.newConvertOrderFeeVoData(insFeeOrderNew,ptlAgreementProductCostsNew);
             orderAndAreaCompany.setFeeOrderNewVo(feeOrderNewVo);
             List<DistributionLevelVo> distributionLevelVoList = feeRuleSchemeService.converDistrbutionData(insFeeOrderNew);
             orderAndAreaCompany.setDistributionLevelVoList(distributionLevelVoList);

+ 4 - 0
src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java

@@ -23,7 +23,9 @@ import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
 import com.ydtech.modules.protocol.service.ITaxSourceExcludeService;
 import com.ydtech.modules.protocol.service.ITaxSourceService;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.idgen.IdGenerate;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -375,6 +377,8 @@ public class TaxSourceServiceImpl extends ServiceImpl<TaxSourceMapper, TaxSource
             taxSourceDtos = collect.get(0);
         }
 
+        AssertionUtils.isFail(StringUtils.isEmpty(volume), "请填写排量");
+
         if (!isExclude && (Float.parseFloat(volume) >= 1) && (taxSourceDtos != null)) {
             resultId = taxSourceDtos.getAgreementId();
         }

+ 15 - 1
src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java

@@ -56,7 +56,7 @@ public class PtlNewAgreementController extends BaseController {
     @ApiOperation("查询协议产品费用列表")
     public PageResult getProduct(@RequestBody AgreementProductQueryVo agreementProductQueryVo) {
         Page<T> page = buildPageRequest(agreementProductQueryVo.getPageDto());
-        Page<PtlAgreementProductCostsNew> schemeQueryDto = ptlAgreementProductCostsNewService.getByAgreementId(page,agreementProductQueryVo.getAgreementId());
+        Page<PtlAgreementProductCostsNew> schemeQueryDto = ptlAgreementProductCostsNewService.getByAgreementId(page,agreementProductQueryVo);
         return buildPageResponse(schemeQueryDto);
     }
 
@@ -86,6 +86,20 @@ public class PtlNewAgreementController extends BaseController {
         return ptlAgreementProductCostsNewService.costsDelete(costsId) ? HttpResult.ok("删除协议费用成功") : HttpResult.error("删除协议费用失败");
     }
 
+    @ApiOperation(value = "复制协议费用")
+    @PostMapping("/costs/copy")
+    public HttpResult costsCopy(String orgCostsId,String newAgreementId){
+        //orgCostsId:原协议费用id
+        //newAgreementId:新协议id
+        return ptlAgreementProductCostsNewService.costsCopy(orgCostsId,newAgreementId) ? HttpResult.ok("复制协议费用成功") : HttpResult.error("复制协议费用失败");
+    }
+
+    @ApiOperation(value = "费用审核")
+    @PostMapping("/costs/audit")
+    public HttpResult costsAudit(@RequestBody CostsAuditVo costsAuditVo){
+        return ptlAgreementProductCostsNewService.costsAudit(costsAuditVo) ? HttpResult.ok("费用审核成功") : HttpResult.error("费用审核失败");
+    }
+
     @ApiOperation(value = "获取承保规则列表")
     @PostMapping("/undwrt/rules/list")
     public PageResult getRulesList(@RequestBody AgreementUndwrtRulesQueryVo agreementUndwrtRulesQueryVo){

+ 31 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNew.java

@@ -8,7 +8,10 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.joda.time.DateTime;
 
+import javax.persistence.Table;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -51,6 +54,10 @@ public class PtlAgreementProductCostsNew {
     @TableField(value = "jq_car_other_costs_proportion")
     private String jqCarOtherCostsProportion;
 
+    @ApiModelProperty(value = "出口手续费比例(交强)")
+    @TableField(value = "jq_costs_export_proportion")
+    private String jqCostsExportProportion;
+
     @ApiModelProperty(value = "费用比例(商业)")
     @TableField(value = "sy_car_costs_proportion")
     private String syCarCostsProportion;
@@ -67,6 +74,10 @@ public class PtlAgreementProductCostsNew {
     @TableField(value = "sy_car_other_costs_proportion")
     private String syCarOtherCostsProportion;
 
+    @ApiModelProperty(value = "出口手续费比例(商业)")
+    @TableField(value = "sy_costs_export_proportion")
+    private String syCostsExportProportion;
+
 
     @ApiModelProperty(value = "费用比例(非车)")
     @TableField(value = "no_car_costs_proportion")
@@ -80,6 +91,10 @@ public class PtlAgreementProductCostsNew {
     @TableField(value = "no_car_other_costs_proportion")
     private String noCarOtherCostsProportion;
 
+    @ApiModelProperty(value = "出口手续费比例(非车)")
+    @TableField(value = "no_costs_export_proportion")
+    private String noCostsExportProportion;
+
     @ApiModelProperty(value = "费用描述")
     @TableField(value = "costs_description")
     private String costsDescription;
@@ -96,6 +111,22 @@ public class PtlAgreementProductCostsNew {
     @TableField(value = "priority_level")
     private Integer priorityLevel;
 
+    @ApiModelProperty(value = "是否审核")
+    @TableField(value = "is_audit")
+    private Integer isAudit;
+
+    @ApiModelProperty(value = "驳回信息")
+    @TableField(value = "reject")
+    private String reject;
+
+    @ApiModelProperty(value = "审核人")
+    @TableField(value = "audit_person")
+    private String auditPerson;
+
+    @ApiModelProperty(value = "审核时间")
+    @TableField(value = "audit_time")
+    private LocalDateTime auditTime;
+
     @ApiModelProperty(value = "生成的描述")
     @TableField(exist = false)
     private String desc;

+ 9 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductCosts.java

@@ -33,6 +33,9 @@ public class AgreementProductCosts {
     @ApiModelProperty(value = "其他费用比例(交强)")
     private String jqCarOtherCostsProportion;
 
+    @ApiModelProperty(value = "交强出口手续费比例")
+    private String jqCostsExportProportion;
+
     @ApiModelProperty(value = "费用比例(商业)")
     private String syCarCostsProportion;
 
@@ -42,6 +45,9 @@ public class AgreementProductCosts {
     @ApiModelProperty(value = "其他费用比例(商业)")
     private String syCarOtherCostsProportion;
 
+    @ApiModelProperty(value = "商业出口手续费比例")
+    private String syCostsExportProportion;
+
     @ApiModelProperty(value = "费用比例(非车)")
     private String noCarCostsProportion;
 
@@ -51,6 +57,9 @@ public class AgreementProductCosts {
     @ApiModelProperty(value = "其他费用比例(非车)")
     private String noCarOtherCostsProportion;
 
+    @ApiModelProperty(value = "非车手续费比例")
+    private String noCostsExportProportion;
+
     @ApiModelProperty(value = "费用描述")
     private String costsDescription;
 

+ 9 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductCostsSave.java

@@ -96,6 +96,9 @@ public class AgreementProductCostsSave {
     @ApiModelProperty(value = "交强出口加投比例")
     private String jqExportInvestmentRadio;
 
+    @ApiModelProperty(value = "交强出口手续费比例")
+    private String jqCostsExportProportion;
+
     @ApiModelProperty(value = "商业出口比例一级")
     private String syExportRadioLevel1;
 
@@ -114,6 +117,9 @@ public class AgreementProductCostsSave {
     @ApiModelProperty(value = "商业出口加投比例")
     private String syExportInvestmentRadio;
 
+    @ApiModelProperty(value = "商业出口手续费比例")
+    private String syCostsExportProportion;
+
     @ApiModelProperty(value = "非车出口比例一级")
     private String noCarExportRadioLevel1;
 
@@ -132,6 +138,9 @@ public class AgreementProductCostsSave {
     @ApiModelProperty(value = "非车出口加投比例")
     private String noCarExportInvestmentRadio;
 
+    @ApiModelProperty(value = "非车出口手续费比例")
+    private String noCostsExportProportion;
+
 
 
 

+ 9 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductQueryVo.java

@@ -1,9 +1,18 @@
 package com.ydtech.modules.protocols.entity.vo;
 
 import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
 public class AgreementProductQueryVo extends PageRequest {
+    @ApiModelProperty(value = "协议id")
     private String agreementId;
+
+    @ApiModelProperty(value = "是否审核")
+    private String isAudit;
+
+    @ApiModelProperty(value = "产品id")
+    private String productCode;
 }

+ 28 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/CostsAuditVo.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.protocols.entity.vo;
+
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class CostsAuditVo {
+
+    @ApiModelProperty(value = "费用id")
+    private String costsId;
+
+    @ApiModelProperty(value = "是否审核")
+    private Integer isAudit;
+
+    @ApiModelProperty(value = "驳回信息")
+    private String reject;
+
+    @ApiModelProperty(value = "审核人")
+    private String auditPerson;
+
+    @ApiModelProperty(value = "审核时间")
+    private DateTime auditTime;
+}

+ 19 - 2
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java

@@ -6,6 +6,8 @@ import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCostsSave;
+import com.ydtech.modules.protocols.entity.vo.AgreementProductQueryVo;
+import com.ydtech.modules.protocols.entity.vo.CostsAuditVo;
 
 import java.util.List;
 import java.util.Map;
@@ -20,10 +22,10 @@ public interface PtlAgreementProductCostsNewService extends IService<PtlAgreemen
     /**
      * 获取协议费用列表
      * @param page
-     * @param agreementId
+     * @param agreementProductQueryVo
      * @return
      */
-    Page<PtlAgreementProductCostsNew> getByAgreementId(Page page, String agreementId);
+    Page<PtlAgreementProductCostsNew> getByAgreementId(Page page, AgreementProductQueryVo agreementProductQueryVo);
 
     /**
      * 获取协议费用
@@ -57,4 +59,19 @@ public interface PtlAgreementProductCostsNewService extends IService<PtlAgreemen
      * @return
      */
     boolean costsDelete(String costsId);
+
+    /**
+     * 复制协议费用
+     * @param orgCostsId
+     * @param newAgreementId
+     * @return
+     */
+    boolean costsCopy(String orgCostsId,String newAgreementId);
+
+    /**
+     * 费用审核
+     * @param costsAuditVo
+     * @return
+     */
+    boolean costsAudit(CostsAuditVo costsAuditVo);
 }

+ 74 - 3
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -11,6 +11,8 @@ import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsNewMapper;
 import com.ydtech.modules.protocols.entity.po.*;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCostsSave;
+import com.ydtech.modules.protocols.entity.vo.AgreementProductQueryVo;
+import com.ydtech.modules.protocols.entity.vo.CostsAuditVo;
 import com.ydtech.modules.protocols.service.*;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.beans.BeanUtils;
@@ -19,6 +21,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -50,14 +53,31 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     PtlAgreementProductCostsAttrLinkHistoryService ptlAgreementProductCostsAttrLinkHistoryService;
 
     @Override
-    public Page<PtlAgreementProductCostsNew> getByAgreementId(Page page, String agreementId) {
-        Page<PtlAgreementProductCostsNew> pages = baseMapper.selectPage(page, new LambdaQueryWrapper<PtlAgreementProductCostsNew>()
-                .eq(PtlAgreementProductCostsNew::getAgreementId, agreementId));
+    public Page<PtlAgreementProductCostsNew> getByAgreementId(Page page, AgreementProductQueryVo agreementProductQueryVo) {
+        LambdaQueryWrapper<PtlAgreementProductCostsNew> ptlAgreementProductCostsNewLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        ptlAgreementProductCostsNewLambdaQueryWrapper.eq(PtlAgreementProductCostsNew::getAgreementId, agreementProductQueryVo.getAgreementId());
+        //审核条件
+        if(agreementProductQueryVo.getIsAudit() != null){
+            ptlAgreementProductCostsNewLambdaQueryWrapper.eq(PtlAgreementProductCostsNew::getIsAudit, agreementProductQueryVo.getIsAudit());
+        }
+
+        //产品code
+        if(agreementProductQueryVo.getProductCode() != null){
+            ptlAgreementProductCostsNewLambdaQueryWrapper.eq(PtlAgreementProductCostsNew::getProductId, agreementProductQueryVo.getProductCode());
+        }
+
+        Page<PtlAgreementProductCostsNew> pages = baseMapper.selectPage(page, ptlAgreementProductCostsNewLambdaQueryWrapper);
+
+//                .lt(PtlAgreementProductCostsNew::getCostsStartDate, formattedDateTime)
+//                .gt(PtlAgreementProductCostsNew::getCostsEndDate, formattedDateTime));
         //遍历费用列表
         List<String> ids = new ArrayList<>();
         pages.getRecords().forEach(x -> {
             ids.add(x.getId());
         });
+        if(ids.isEmpty()){
+            return pages;
+        }
         //获取出口比例
         List<PtlAgreementProductCostsExport> ptlAgreementProductCostsExports = ptlAgreementProductCostsExportService.list(new LambdaQueryWrapper<PtlAgreementProductCostsExport>()
                 .in(PtlAgreementProductCostsExport::getCostsId, ids));
@@ -249,9 +269,16 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     @Override
     public List<AgreementProductCosts> costsGetList(String agreementId, String productId) {
 
+        // 获取当前日期时间
+        LocalDateTime currentDateTime = LocalDateTime.now();
+        // 格式化日期时间为指定格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String formattedDateTime = currentDateTime.format(formatter);
         List<PtlAgreementProductCostsNew> ptlAgreementProductCostsNews = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreementProductCostsNew>()
                 .eq(PtlAgreementProductCostsNew::getAgreementId, agreementId)
                 .eq(PtlAgreementProductCostsNew::getProductId, productId)
+                .lt(PtlAgreementProductCostsNew::getCostsStartDate, formattedDateTime)
+                .gt(PtlAgreementProductCostsNew::getCostsEndDate, formattedDateTime)
                 .orderBy(true, true, PtlAgreementProductCostsNew::getPriorityLevel));
 
         List<AgreementProductCosts> agreementProductCosts = new ArrayList<>();
@@ -565,4 +592,48 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
 
         return true;
     }
+
+    /**
+     * 复制协议费用
+     * @param orgCostsId  原始的费用id
+     * @param newAgreementId  需要复制的协议id
+     * @return
+     */
+    @Transactional
+    @Override
+    public boolean costsCopy(String orgCostsId, String newAgreementId) {
+        AgreementProductCosts agreementProductCosts = new AgreementProductCosts();
+        //设置主表信息
+        PtlAgreementProductCostsNew ptlAgreementProductCostsNew = baseMapper.selectById(orgCostsId);
+        ptlAgreementProductCostsNew.setAgreementId(newAgreementId);
+        BeanUtils.copyProperties(ptlAgreementProductCostsNew, agreementProductCosts);
+
+
+        //设置管理比例信息
+        PtlAgreementProductCostsExport ptlAgreementProductCostsExport = ptlAgreementProductCostsExportService.getOne(new LambdaQueryWrapper<PtlAgreementProductCostsExport>().eq(PtlAgreementProductCostsExport::getCostsId, orgCostsId));
+        BeanUtils.copyProperties(ptlAgreementProductCostsExport, agreementProductCosts);
+        ptlAgreementProductCostsExport.setId("0");
+
+        //设置费用因子信息
+        List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLink = ptlAgreementProductCostsAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>().eq(PtlAgreementProductCostsAttrLink::getCostsId, orgCostsId));
+        agreementProductCosts.setCostsAttrLinks(ptlAgreementProductCostsAttrLink);
+        agreementProductCosts.setId("0");
+
+        this.costsAdd(agreementProductCosts);
+
+        return true;
+    }
+
+
+    @Override
+    public boolean costsAudit(CostsAuditVo costsAuditVo){
+        PtlAgreementProductCostsNew ptlAgreementProductCostsNew = this.getById(costsAuditVo.getCostsId());
+        if(ptlAgreementProductCostsNew == null){
+            throw new SystemException("费用不存在");
+        }
+        ptlAgreementProductCostsNew.setIsAudit(costsAuditVo.getIsAudit());
+        ptlAgreementProductCostsNew.setAuditPerson(BaseController.getUser().getId());
+        ptlAgreementProductCostsNew.setAuditTime(LocalDateTime.now());
+        return baseMapper.updateById(ptlAgreementProductCostsNew) > 0 ? true : false;
+    }
 }

+ 4 - 0
src/main/resources/mapper/modules/admin/SysDeptAccountWithdrawMapper.xml

@@ -0,0 +1,4 @@
+<?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.ydtech.modules.admin.dao.SysDeptAccountWithdrawMapper">
+</mapper>

+ 3 - 3
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -145,10 +145,10 @@
         ins_area_company
         WHERE
         id IN ( SELECT ins_order_no FROM ins_fee_order_new WHERE id NOT IN ( SELECT ins_order_no FROM ins_fee_audit ) )
-        AND orderstatus = 2
+        AND orderstatus = 3
         )
         AND
-        orderstatus= 2
+        orderstatus= 3
         <if test="params.orderNo != null and params.orderNo != ''">
             AND orderno = #{params.orderNo}
         </if>
@@ -181,7 +181,7 @@
         WHERE
         id IN ( SELECT ifon.ins_order_no FROM ins_fee_order_new ifon RIGHT JOIN ins_fee_audit ifa ON ifon.ins_order_no = ifa.ins_order_no ))
           AND
-            orderstatus = 2
+            orderstatus = 3
         <if test="params.orderNo != null and params.orderNo != ''">
             AND orderno = #{params.orderNo}
         </if>