Explorar el Código

fix

release_toaliyun_real
winter hace 1 año
padre
commit
418be57856
Se han modificado 17 ficheros con 255 adiciones y 322 borrados
  1. +5
    -14
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java
  2. +1
    -1
      mallinkAdmin/src/main/resources/db/migration/V202407018.sql
  3. +1
    -100
      mallinkAdmin/src/main/resources/db/migration/V202407019.sql
  4. +2
    -1
      mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java
  5. +0
    -3
      mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java
  6. +9
    -7
      mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java
  7. +5
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxFinanceSetoffBill.java
  8. +10
    -0
      mallinkService/src/main/java/com/iformall/domain/po/base/WxBillBaseEntity.java
  9. +13
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/FinanceSetOffDetailVo.java
  10. +2
    -2
      mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveType.java
  11. +0
    -16
      mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java
  12. +16
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxFinanceSetoffBillMapper.java
  13. +4
    -5
      mallinkService/src/main/java/com/iformall/service/WxFinanceService.java
  14. +180
    -164
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java
  15. +1
    -2
      mallinkService/src/main/resources/mapper/WxEnergyFeesMapper.xml
  16. +4
    -3
      mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml
  17. +2
    -2
      mallinkService/src/main/resources/mapper/WxFinanceSetoffBillMapper.xml

+ 5
- 14
mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java Ver fichero

@@ -145,13 +145,6 @@ public class WxFinanceController extends BaseController {
@ApiOperation("预收科目新增修改")
@PostMapping("saveAdvanceFees")
public ResultData saveAdvanceType(@RequestBody WxEnergyFees record) {
record.updateTenantInfo(getTenantInfo());
if (StringUtils.isBlank(record.getRate())) {
return new ResultData(Result.ERROR,"请填写抵扣比例");
}
if (new BigDecimal(record.getRate()).compareTo(new BigDecimal(100)) > 0 ) {
return new ResultData(Result.ERROR,"冲抵比例不能超过100");
}
record.setBillType(EnumBillAllType.ADVANCE.getCode());
record.setFixedPrice(EnumYesOrNo.YES.getCode());
wxEnergyService.saveOrUpdateFees(record);
@@ -162,7 +155,7 @@ public class WxFinanceController extends BaseController {
@PostMapping("saveAdvance")
public ResultData saveAdvance(@RequestBody WxFinanceReceive record) {
record.updateTenantInfo(getTenantInfo());
if (StringUtils.isBlank(record.getTotalMoney())) {
if (StringUtils.isBlank(record.getReceiveMoney())) {
return new ResultData(Result.ERROR,"请填写金额");
}
if (null == record.getFeesId()) {
@@ -187,20 +180,18 @@ public class WxFinanceController extends BaseController {
@PostMapping("setoffList")
public ResultData setoffList(@ModelAttribute FinanceSetOffDTO dto) {
dto.updateTenantInfo(getTenantInfo());
return new ResultData(wxFinanceService.getSetOffList(dto));
return new ResultData(wxFinanceService.getSetOffList(dto,true));
}
@ApiOperation("计算冲抵")
@PostMapping("calcueteSetoff")
public ResultData calcueteSetoff(@RequestBody FinanceSetOffDTO dto) {
dto.updateTenantInfo(getTenantInfo());
WxBillBaseEntity bill = wxFinanceService.calcuetSetOff(dto,this.getUser());
List<WxBillBaseEntity> bill = wxFinanceService.calcuetSetOff(dto,this.getUser());
if (null == bill) {
return new ResultData(Result.ERROR,"未冲抵");
}
List<WxBillBaseEntity> list = new ArrayList<WxBillBaseEntity>();
list.add(bill);
return new ResultData(wxFinanceService.getBills(dto, list));
return new ResultData(bill);
}
@ApiOperation("新增收款单")
@@ -211,7 +202,7 @@ public class WxFinanceController extends BaseController {
return new ResultData(Result.ERROR,"请选择账单和支付方式");
}
List<WxBillBaseEntity> list = wxFinanceService.createReceive(record,this.getUser());
return new ResultData(wxFinanceService.getBills(record, list));
return new ResultData();
}
@GetMapping("receiveStatus")


+ 1
- 1
mallinkAdmin/src/main/resources/db/migration/V202407018.sql Ver fichero

@@ -2857,7 +2857,7 @@ CREATE TABLE `wx_finance_receive` (
UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='能耗表';

CREATE TABLE `wx_finance_receive_bill` (
CREATE TABLE `wx_finance_setoff_bill` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID',
`parent_tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID',


+ 1
- 100
mallinkAdmin/src/main/resources/db/migration/V202407019.sql Ver fichero

@@ -806,106 +806,7 @@ alter table wx_bill_other_deposit_97 add column set_off varchar(30) COMMENT
alter table wx_bill_other_deposit_98 add column set_off varchar(30) COMMENT '抵扣金额';
alter table wx_bill_other_deposit_99 add column set_off varchar(30) COMMENT '抵扣金额';

alter table wx_energy_fees_0 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_1 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_2 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_3 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_4 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_5 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_6 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_7 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_8 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_9 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_10 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_11 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_12 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_13 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_14 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_15 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_16 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_17 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_18 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_19 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_20 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_21 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_22 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_23 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_24 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_25 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_26 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_27 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_28 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_29 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_30 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_31 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_32 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_33 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_34 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_35 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_36 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_37 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_38 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_39 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_40 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_41 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_42 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_43 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_44 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_45 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_46 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_47 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_48 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_49 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_50 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_51 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_52 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_53 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_54 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_55 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_56 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_57 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_58 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_59 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_60 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_61 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_62 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_63 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_64 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_65 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_66 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_67 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_68 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_69 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_70 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_71 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_72 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_73 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_74 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_75 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_76 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_77 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_78 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_79 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_80 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_81 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_82 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_83 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_84 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_85 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_86 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_87 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_88 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_89 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_90 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_91 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_92 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_93 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_94 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_95 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_96 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_97 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_98 add column rate varchar(30) comment '抵扣比例';;
alter table wx_energy_fees_99 add column rate varchar(30) comment '抵扣比例';;






+ 2
- 1
mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java Ver fichero

@@ -14,8 +14,9 @@ import lombok.Data;
public class WxBillPayDTO extends TenantEntity{
private Long id;
private Integer billTypeValue;// EnumBillAllType
private Long advanceId;//收款单单号
private String addpay;//支付金额
private boolean isSetOff = false;//是否冲抵
private String setOff;//冲抵金额
private WxBillPayWay payWayObject;//支付方式
private Long payWay;//传值
private String remark;


+ 0
- 3
mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java Ver fichero

@@ -179,9 +179,6 @@ public class WxEnergyFees extends TenantEntity {
}
}
@io.swagger.annotations.ApiModelProperty(value="冲抵比例",name="rate")
private String rate;
@TableField(exist = false)
private List<Long> feesIds;//冲抵科目
@TableField(exist = false)


+ 9
- 7
mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java Ver fichero

@@ -13,6 +13,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -45,17 +46,21 @@ public class WxFinanceReceive extends TenantEntity {
@TableField(exist = false)
private String feesName;
@io.swagger.annotations.ApiModelProperty(value = "收款总金额", name = "totalMoney")
private String totalMoney;
@io.swagger.annotations.ApiModelProperty(value = "实收金额", name = "receiveMoney")
private String receiveMoney;
@io.swagger.annotations.ApiModelProperty(value = "已使用金额(预充值用)", name = "useMoney")
//跟useMoney的区别是,这个字段是记录此次收款冲抵了多少费用。useMoney是使用了自身多少的实收金额,预充用的到
@io.swagger.annotations.ApiModelProperty(value = "冲抵金额", name = "setOffMoney")
private String setOffMoney;
@io.swagger.annotations.ApiModelProperty(value = "已使用金额,冲抵里面使用", name = "useMoney")
private String useMoney;
public String getRemain() {
if (StringUtils.isBlank(useMoney)) {
useMoney = "0";
}
return new BigDecimal(totalMoney).subtract(new BigDecimal(useMoney)).toPlainString();
return new BigDecimal(receiveMoney).subtract(new BigDecimal(useMoney)).toPlainString();
}
@io.swagger.annotations.ApiModelProperty(value = "状态EnumFinanceReceiveStatus", name = "status")
@@ -110,7 +115,4 @@ public class WxFinanceReceive extends TenantEntity {
private Long floor;
@TableField(exist = false)
private String shopIds;
@TableField(exist = false)
private String rate;
}

mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java → mallinkService/src/main/java/com/iformall/domain/po/WxFinanceSetoffBill.java Ver fichero

@@ -8,11 +8,11 @@ import lombok.ToString;
import java.util.Date;
/**
*/
@TableName(value = "wx_finance_receive_bill")
@TableName(value = "wx_finance_setoff_bill")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxFinanceReceiveBill extends TenantEntity {
public class WxFinanceSetoffBill extends TenantEntity {

private static final long serialVersionUID = 7009117540201976664L;

@@ -34,6 +34,9 @@ public class WxFinanceReceiveBill extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value = "账单类型EnumBillAllType", name = "billType")
private Integer billType;
@io.swagger.annotations.ApiModelProperty(value="归属收款单ID",name="advanceId")
private Long advanceId;
@io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId")
private Long feesId;

+ 10
- 0
mallinkService/src/main/java/com/iformall/domain/po/base/WxBillBaseEntity.java Ver fichero

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.common.SortColumn;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.FinanceSetOffDetailVo;
import com.iformall.enums.EnumBillAction;

import lombok.Data;
@@ -207,4 +208,13 @@ public class WxBillBaseEntity extends TenantEntity {
@TableField(exist = false)
private Date needPayStartDay;
@TableField(exist = false)
private List<FinanceSetOffDetailVo> setOffDetailList;
@TableField(exist = false)
public String currentSetOff = "0";
@TableField(exist = false)
public String currentReceive = "0";
}

+ 13
- 0
mallinkService/src/main/java/com/iformall/domain/vo/FinanceSetOffDetailVo.java Ver fichero

@@ -0,0 +1,13 @@
package com.iformall.domain.vo;

import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;

/**
*/
@Data
public class FinanceSetOffDetailVo extends TenantEntity{
private static final long serialVersionUID = -2767490210273313034L;
private Long advanceId;
private String setoff;
}

+ 2
- 2
mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveType.java Ver fichero

@@ -6,8 +6,8 @@ package com.iformall.enums;

public enum EnumFinanceReceiveType {

RECEIVE(1,"缴费"),
ADVANCE(2,"预充")
RECEIVE(1,"缴费收单"),
ADVANCE(2,"预充收单")
;

public static EnumFinanceReceiveType getEnum(Integer code) {


+ 0
- 16
mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java Ver fichero

@@ -1,16 +0,0 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxFinanceReceiveBill;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
*/
public interface WxFinanceReceiveBillMapper extends CommonMapper<WxFinanceReceiveBill, Long> {

List<WxFinanceReceiveBill> findList(WxFinanceReceiveBill wxBillRent);
WxFinanceReceiveBill selectById(@Param("id")Long id,@Param("tenantId")String tenantId);
}

+ 16
- 0
mallinkService/src/main/java/com/iformall/mapper/WxFinanceSetoffBillMapper.java Ver fichero

@@ -0,0 +1,16 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxFinanceSetoffBill;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
*/
public interface WxFinanceSetoffBillMapper extends CommonMapper<WxFinanceSetoffBill, Long> {

List<WxFinanceSetoffBill> findList(WxFinanceSetoffBill wxBillRent);
WxFinanceSetoffBill selectById(@Param("id")Long id,@Param("tenantId")String tenantId);
}

+ 4
- 5
mallinkService/src/main/java/com/iformall/service/WxFinanceService.java Ver fichero

@@ -7,7 +7,7 @@ import com.iformall.domain.dto.FinanceSetOffDTO;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxBillPayWay;
import com.iformall.domain.po.WxFinanceReceive;
import com.iformall.domain.po.WxFinanceReceiveBill;
import com.iformall.domain.po.WxFinanceSetoffBill;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.po.base.WxBillBaseEntity;
import com.iformall.domain.vo.FinanceBillSetoffSum;
@@ -27,13 +27,12 @@ public interface WxFinanceService {
PageInfo<WxFinanceReceive> receiveListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize);
List<WxBillBaseEntity> createReceive(WxFinanceReceive record,MallUserInfo user);
void saveOrUpdateReceive(WxFinanceReceive record,MallUserInfo user);
void saveOrUpdateReceiveBill(WxFinanceReceiveBill record);
void saveOrUpdateReceiveBill(WxFinanceSetoffBill record);
WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id);
void invalidReceive(WxFinanceReceive record,MallUserInfo user);
List<WxBillBaseEntity> getBills(TenantEntity tenantEntity,List<WxBillBaseEntity> bills);
//预收款
WxBillBaseEntity calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user);
List<WxBillBaseEntity> calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user);
FinanceBillSetoffSum getBillSetoffSum(WxFinanceReceive record);
List<WxFinanceReceive> getSetOffList(FinanceSetOffDTO dto);
List<WxFinanceReceive> getSetOffList(FinanceSetOffDTO dto,boolean isMerge);
}

+ 180
- 164
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java Ver fichero

@@ -16,12 +16,14 @@ import com.iformall.domain.po.WxBillPayWay;
import com.iformall.domain.po.WxEnergyFees;
import com.iformall.domain.po.WxEnergyFeesSetoff;
import com.iformall.domain.po.WxFinanceReceive;
import com.iformall.domain.po.WxFinanceReceiveBill;
import com.iformall.domain.po.WxFinanceSetoffBill;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxShop;
import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.po.base.WxBillBaseEntity;
import com.iformall.domain.vo.FinanceBillSetoffSum;
import com.iformall.domain.vo.FinanceSetOffDetailVo;
import com.iformall.enums.EnumBillAllType;
import com.iformall.enums.EnumBillStatus;
import com.iformall.enums.EnumFinanceReceiveStatus;
@@ -30,7 +32,7 @@ import com.iformall.enums.EnumYesOrNo;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxBillPayWayMapper;
import com.iformall.mapper.WxEnergyFeesSetoffMapper;
import com.iformall.mapper.WxFinanceReceiveBillMapper;
import com.iformall.mapper.WxFinanceSetoffBillMapper;
import com.iformall.mapper.WxFinanceReceiveMapper;
import com.iformall.service.WxBillAdvanceService;
import com.iformall.service.WxEnergyService;
@@ -69,7 +71,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
@Autowired
WxFinanceReceiveMapper wxFinanceReceiveMapper;
@Autowired
WxFinanceReceiveBillMapper wxFinanceReceiveBillMapper;
WxFinanceSetoffBillMapper wxFinanceReceiveBillMapper;

@Lazy
@Autowired
@@ -191,7 +193,6 @@ public class WxFinanceServiceImpl implements WxFinanceService {
WxEnergyFees wfat = advanceTypMap.get(at.getFeesId());
if (null != wfat) {
at.setFeesName(wfat.getName());
at.setRate(wfat.getRate());
}
total.add(new BigDecimal(at.getRemain()));
}
@@ -202,23 +203,8 @@ public class WxFinanceServiceImpl implements WxFinanceService {
return retMap;
}
private FinanceBillSetoffSum getAdvanceListByFeesId(TenantEntity tenantEntity,Long feesId) {
WxEnergyFeesSetoff tf = new WxEnergyFeesSetoff();
tf.updateTenantInfo(tenantEntity);
tf.setFeesId(feesId);
List<Long> feesIdList = wxEnergyFeesSetoffMapper.findadvanceFeesIdList(tf);
if (null != feesIdList && feesIdList.size() > 0 ) {
WxFinanceReceive faq = new WxFinanceReceive();
faq.updateTenantInfo(tenantEntity);
faq.setFeesIdList(feesIdList);
return getBillSetoffSum(faq);
}else {
return null;
}
}
@Override
public List<WxFinanceReceive> getSetOffList(FinanceSetOffDTO dto) {
public List<WxFinanceReceive> getSetOffList(FinanceSetOffDTO dto,boolean isMerge) {
if (null == dto.getBills() || dto.getBills().size() <= 0 ) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择账单");
}
@@ -233,82 +219,111 @@ public class WxFinanceServiceImpl implements WxFinanceService {
}
}
//通过账单科目去查询可以抵扣的预充费用
FinanceBillSetoffSum sum = getAdvanceListByFeesId(dto, billFeesId);
if (null == sum) {
WxEnergyFeesSetoff tf = new WxEnergyFeesSetoff();
tf.updateTenantInfo(dto);
tf.setFeesId(billFeesId);
List<Long> feesIdList = wxEnergyFeesSetoffMapper.findadvanceFeesIdList(tf);
if (null != feesIdList && feesIdList.size() > 0 ) {
WxFinanceReceive faq = new WxFinanceReceive();
faq.updateTenantInfo(dto);
faq.setFeesIdList(feesIdList);
if (isMerge) {
FinanceBillSetoffSum sum = getBillSetoffSum(faq);
if (null == sum) {
return null;
}
return sum.getAdvanceList();
}else {
faq.setSortColumns(SortField.CreateTime_ASC);
return wxFinanceReceiveMapper.findList(faq);
}
}else {
return null;
}
return sum.getAdvanceList();
}
private String calcuteSetOffMoney(String rate,String money) {
if (new BigDecimal(money).compareTo(new BigDecimal(0)) <= 0) {
return "0";
private void setSetOff(WxBillBaseEntity bill,List<WxFinanceReceive> advanceList,Integer currentIndex) {
BigDecimal owe = new BigDecimal(bill.getOwe());
BigDecimal b0 = new BigDecimal(0);
if (owe.compareTo(b0) <= 0) {
return;
}else {
List<FinanceSetOffDetailVo> setoffList = bill.getSetOffDetailList();
for (int j = currentIndex ; j < advanceList.size() ; j++) {
WxFinanceReceive advance = advanceList.get(j);
BigDecimal remain = new BigDecimal(advance.getRemain());
if (remain.compareTo(b0) > 0) {
if (null == setoffList) {
setoffList = new ArrayList<FinanceSetOffDetailVo>();
}
FinanceSetOffDetailVo dv = new FinanceSetOffDetailVo();
dv.setAdvanceId(advance.getId());
BigDecimal billSetOff = null;//账单历史抵扣
if (StringUtils.isBlank(bill.getSetOff())) {
billSetOff = new BigDecimal(bill.getSetOff());
}else {
billSetOff = b0;
}
BigDecimal billCurrentSetOff = new BigDecimal(bill.getCurrentSetOff());
//如果前面的不够,则后面的继续补
if (remain.compareTo(owe) <= 0 ) {
//设置账单历史抵扣
bill.setSetOff(billSetOff.add(remain).toPlainString());
//设置账单本次抵扣
bill.setCurrentSetOff(billCurrentSetOff.add(remain).toPlainString());
//设置预充已使用金额
advance.setUseMoney(advance.getReceiveMoney());
dv.setSetoff(remain.toPlainString());
setoffList.add(dv);
setSetOff(bill,advanceList,currentIndex);
}else {
bill.setSetOff(billSetOff.add(owe).toPlainString());
bill.setCurrentSetOff(billCurrentSetOff.add(owe).toPlainString());
advance.setUseMoney(new BigDecimal(advance.getUseMoney()).add(owe).toPlainString());
dv.setSetoff(owe.toPlainString());
setoffList.add(dv);
}
}else {
currentIndex = currentIndex+1;
}
}
}
return new BigDecimal(money).multiply(new BigDecimal(rate)).divide(new BigDecimal(100)).toPlainString();
}
@Override
public WxBillBaseEntity calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user) {
public List<WxBillBaseEntity> calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user) {
//多个账单类型和科目必须一致
//优先冲抵时间早的账单,优先用时间早的预充费用来冲抵
if (null == dto.getBills() || dto.getBills().size() <= 0 || null == dto.getFeesIdList() || dto.getFeesIdList().size() <= 0 ) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择账单和抵扣科目");
}
//查询出账单可以抵扣的科目预收项
List<WxFinanceReceive> advanceList = getSetOffList(dto);
WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId());
if (new BigDecimal(bill.getOwe()).compareTo(b0) <= 0 ) {
}else {
billList.add(bill);
}
//根据预充规则计算冲抵费用

WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(dto.getBillType()), merchant, dto.getBillId());
if (new BigDecimal(bill.getOwe()).compareTo(new BigDecimal(0)) <= 0) {
List<WxFinanceReceive> advanceList = getSetOffList(dto,false);
if (null == advanceList || advanceList.size() <= 0 ) {
return null;
}
WxFinanceReceive advance = this.getReceiveById(dto, dto.getFinanceAdvanceId());
WxEnergyFees ef = new WxEnergyFees();
ef.updateTenantInfo(dto);
ef.setId(advance.getFeesId());
WxEnergyFees advanceFees= wxEnergyService.getFeesById(ef);
//设置账单冲抵金额
String money = calcuteSetOffMoney(advanceFees.getRate(),bill.getOwe());
//应该是不创建收款记录。因为一个收款记录会包括收款和冲抵的账单详情
//新增收款记录,冲抵,关联冲抵账单
WxFinanceReceive addreceive = new WxFinanceReceive();
addreceive.updateTenantInfo(dto);
addreceive.setTotalMoney(money);
addreceive.setMoneyDetail(JSON.toJSONString(advance));
addreceive.setMerchantId(bill.getMerchantId());
// addreceive.setRemark(advanceType.getName()+"冲抵");
// addreceive.setType(EnumFinanceReceiveType.SETOFF.getCode());
this.saveOrUpdateReceive(addreceive,user);
//更新账单
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(dto);
payDto.setId(bill.getId());
payDto.setBillTypeValue(bill.getBillType());
payDto.setAddpay(money);
payDto.setSetOff(true);
payDto.setRemark("冲抵单["+addreceive.getId()+"]");
wxBillAllHelper.updatePay(payDto, user);
//插入关联账单信息
WxFinanceReceiveBill rb = new WxFinanceReceiveBill();
rb.updateTenantInfo(dto);
rb.setReceiveId(addreceive.getId());
rb.setBillId(bill.getId());
rb.setBillType(bill.getBillType());
rb.setFeesId(bill.getEnergyFeesId());
saveOrUpdateReceiveBill(rb);
return bill;
//账单排序
List<WxBillBaseEntity> bills = dto.getBills();
sortBills(bills);
//每个账单去计算抵扣
WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(dto);
Integer currentIndex = 0;
List<WxBillBaseEntity> retList = new ArrayList<WxBillBaseEntity>();
for (int i = 0 ; i < bills.size() ; i ++) {
WxBillBaseEntity be = bills.get(i);
WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId());
be.setReceivePay(bill.getReceivePay());
be.setPay(bill.getPay());
be.setSetOff(bill.getSetOff());
setSetOff(be, advanceList,currentIndex);
WxBillBaseEntity retb = new WxBillBaseEntity();
retb.setId(be.getId());
retb.setSetOffDetailList(be.getSetOffDetailList());
retList.add(retb);
}
return retList;
}
private void initQueryParam(WxFinanceReceive record) {
@@ -416,19 +431,19 @@ public class WxFinanceServiceImpl implements WxFinanceService {
logger.error("保存失败,e:" + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
//增加预收账单
WxBillAdvance billAdvance = new WxBillAdvance();
billAdvance.updateTenantInfo(user);
billAdvance.setMerchantId(record.getMerchantId());
WxMerchant merchant = wxMerchantService.selectById(record.getMerchantId());
billAdvance.setRentShopType(merchant.getRentShopType());
billAdvance.setReceivePay(record.getTotalMoney());
billAdvance.setPay("0");
billAdvance.setStarttime(new Date());
billAdvance.setEndtime(new Date());
billAdvance.setStatus(EnumBillStatus.SET_OFF.getCode());
billAdvance.setEnergyFeesId(record.getFeesId());
wxBillAdvanceService.saveOrUpdate(billAdvance, user);
// //增加预收账单
// WxBillAdvance billAdvance = new WxBillAdvance();
// billAdvance.updateTenantInfo(user);
// billAdvance.setMerchantId(record.getMerchantId());
// WxMerchant merchant = wxMerchantService.selectById(record.getMerchantId());
// billAdvance.setRentShopType(merchant.getRentShopType());
// billAdvance.setReceivePay(record.getTotalMoney());
// billAdvance.setPay("0");
// billAdvance.setStarttime(new Date());
// billAdvance.setEndtime(new Date());
// billAdvance.setStatus(EnumBillStatus.SET_OFF.getCode());
// billAdvance.setEnergyFeesId(record.getFeesId());
// wxBillAdvanceService.saveOrUpdate(billAdvance, user);
} else {
record.setUpdateBy(user.getId());
record.setUpdateByName(user.getName());
@@ -438,7 +453,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
}
@Override
public void saveOrUpdateReceiveBill(WxFinanceReceiveBill record) {
public void saveOrUpdateReceiveBill(WxFinanceSetoffBill record) {
Date date = new Date();
if (record.getId() == null) {
final IdWorker idWorker = IdWorker.get();
@@ -482,95 +497,96 @@ public class WxFinanceServiceImpl implements WxFinanceService {
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@Override
public List<WxBillBaseEntity> createReceive(WxFinanceReceive record,MallUserInfo user) {
//所选的账单按照时间先后排序,优先结清时间靠前的
List<WxBillBaseEntity> billList = new ArrayList<WxBillBaseEntity>();
WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(record);
//冲抵信息根据页面返回的账单抵扣信息直接保存入库
//费用计算自动优先匹配时间最早的那个
BigDecimal b0 = new BigDecimal(0);
for (int i = 0 ; i < record.getBills().size(); i ++) {
WxBillBaseEntity be = record.getBills().get(i);
WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId());
if (new BigDecimal(bill.getOwe()).compareTo(b0) <= 0 ) {
}else {
billList.add(bill);
//单保存冲抵的时候,实收金额为0
BigDecimal receiveTotal = b0;
WxBillPayWay payWay0 = null;
if (null != record.getPayWays()) {
for (int i = 0 ; i < record.getPayWays().size() ; i ++) {
WxBillPayWay payWay = record.getPayWays().get(i);
if (StringUtils.isNotBlank(payWay.getMoney())) {
receiveTotal = receiveTotal.add(new BigDecimal(payWay.getMoney()));
if (null == payWay0) {
payWay0 = payWay;
}
}
}
}
if (billList.size() <= 0 ) {
return null;
}
sortBills(billList);
//增加一条收款记录。关联账单,账单更新收款信息
BigDecimal total = new BigDecimal(0);
for (int i = 0 ; i < record.getPayWays().size() ; i ++) {
WxBillPayWay payWay = record.getPayWays().get(i);
total = total.add(new BigDecimal(payWay.getMoney()));
}
//冲抵总金额
BigDecimal setOffTotal = b0;
List<WxBillBaseEntity> bills = record.getBills();
sortBills(bills);
//创建一个收款单,关联账单
WxFinanceReceive addreceive = new WxFinanceReceive();
addreceive.updateTenantInfo(record);
addreceive.setTotalMoney(total.toPlainString());
addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays()));
addreceive.setMerchantId(record.getMerchantId());
addreceive.setRemark(record.getRemark());
addreceive.setStatus(EnumFinanceReceiveStatus.NORMAL.getCode());
addreceive.setType(EnumFinanceReceiveType.RECEIVE.getCode());
this.saveOrUpdateReceive(record,user);
WxBillPayWay payWay = record.getPayWays().get(0);
List<WxBillBaseEntity> updateList = new ArrayList<WxBillBaseEntity>();
for (int i = 0 ; i < billList.size(); i ++) {
WxBillBaseEntity bill = billList.get(i);
if (total.compareTo(b0) > 0 ) {
addreceive.setReceiveMoney(receiveTotal.toPlainString());
if (receiveTotal.compareTo(b0) > 0) {
addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays()));
}
WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(record);
for (int i = 0 ; i < record.getBills().size(); i++) {
WxBillBaseEntity be = record.getBills().get(i);
//计算账单收款费用,更新账单收款
if (receiveTotal.compareTo(b0) > 0) {
WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId());
//有收款,就要更新账单的收款
//更新账单收款信息
String money = "";
BigDecimal oweDecimal = new BigDecimal(bill.getOwe());
if (oweDecimal.compareTo(total) < 0 ) {
if (oweDecimal.compareTo(receiveTotal) < 0 ) {
money = bill.getOwe();
total = total.subtract(oweDecimal);
receiveTotal = receiveTotal.subtract(oweDecimal);
}else {
money = total.toPlainString();
total = b0;
money = receiveTotal.toPlainString();
receiveTotal = b0;
}
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.setId(bill.getId());
payDto.setBillTypeValue(bill.getBillType());
payDto.setId(be.getId());
payDto.setBillTypeValue(be.getBillType());
payDto.setAdvanceId(addreceive.getId());
payDto.setAddpay(money);
payDto.setPayWay(payWay.getId());
payDto.setPayWayObject(payWay);
payDto.setPayWay(payWay0.getId());
payDto.setPayWayObject(payWay0);
payDto.setRemark("系统收款:收款单["+addreceive.getId()+"]"+record.getRemark());
be.setCurrentReceive(money);
//并且有抵扣
if(StringUtils.isNotBlank(be.getCurrentSetOff())) {
payDto.setSetOff(be.getCurrentSetOff());
for (int j = 0 ; j < be.getSetOffDetailList().size(); j ++ ) {
FinanceSetOffDetailVo setoffdetail = be.getSetOffDetailList().get(j);
//关联冲抵
WxFinanceSetoffBill rb = new WxFinanceSetoffBill();
rb.updateTenantInfo(record);
rb.setReceiveId(addreceive.getId());
rb.setBillId(bill.getId());
rb.setBillType(bill.getBillType());
rb.setFeesId(bill.getEnergyFeesId());
rb.setPayWay(payWay0.getId());
saveOrUpdateReceiveBill(rb);
}
}
wxBillAllHelper.updatePay(payDto, user);
//插入关联账单信息
WxFinanceReceiveBill rb = new WxFinanceReceiveBill();
rb.updateTenantInfo(record);
rb.setReceiveId(addreceive.getId());
rb.setBillId(bill.getId());
rb.setBillType(bill.getBillType());
rb.setFeesId(bill.getEnergyFeesId());
rb.setPayWay(payWay.getId());
saveOrUpdateReceiveBill(rb);
updateList.add(bill);
}
}
if (updateList.size() <= 0 ) {
return null;
}
return updateList;
}

@Override
public List<WxBillBaseEntity> getBills(TenantEntity tenantEntity,List<WxBillBaseEntity> bills) {
if (null != bills && bills.size() > 0 ) {
WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(tenantEntity);
List<WxBillBaseEntity> retList = new ArrayList<WxBillBaseEntity>();
for (int i = 0 ; i < bills.size() ; i++) {
WxBillBaseEntity be = bills.get(i);
WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId());
retList.add(bill);
}else if (StringUtils.isNotBlank(be.getCurrentSetOff())) {
setOffTotal = setOffTotal.add(new BigDecimal(be.getCurrentSetOff()));
//没收款,有冲抵,就要更新账单的冲抵,然后把对应的预充值使用金额更新,并进行关联
}
return retList;
}
return null;
addreceive.setSetOffMoney(setOffTotal.toPlainString());
addreceive.setMerchantId(record.getMerchantId());
addreceive.setRemark(record.getRemark());
this.saveOrUpdateReceive(record,user);
return bills;
}

@Override


+ 1
- 2
mallinkService/src/main/resources/mapper/WxEnergyFeesMapper.xml Ver fichero

@@ -17,12 +17,11 @@
<result column="fixed_price" jdbcType="INTEGER" property="fixedPrice"/>
<result column="calcute_unit" jdbcType="INTEGER" property="calcuteUnit"/>
<result column="time_unit" jdbcType="INTEGER" property="timeUnit"/>
<result column="rate" jdbcType="VARCHAR" property="rate"/>
</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`is_del`,`name`,`price`,`public_calcute`,`type`,`bill_type`,`is_system`,
`fixed_price`,`calcute_unit`,`time_unit`,`rate`
`fixed_price`,`calcute_unit`,`time_unit`
</sql>

<sql id="dynamicWhereConditions">


+ 4
- 3
mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml Ver fichero

@@ -7,7 +7,8 @@
<result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="total_money" jdbcType="VARCHAR" property="totalMoney"/>
<result column="receive_money" jdbcType="VARCHAR" property="receiveMoney"/>
<result column="set_off_money" jdbcType="VARCHAR" property="setOffMoney"/>
<result column="use_money" jdbcType="VARCHAR" property="useMoney"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="type" jdbcType="INTEGER" property="type"/>
@@ -22,7 +23,7 @@
</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`total_money`,`use_money`,`status`,`type`,`money_detail`,
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`receive_money`,`set_off_money`,`use_money`,`status`,`type`,`money_detail`,
`create_by`,`create_by_name`,`update_by`,`update_by_name`,`merchant_id`,`remark`,`feesId`
</sql>

@@ -80,7 +81,7 @@
</update>
<select id="getMerchantAdvanceGroupSumList" parameterType="com.iformall.domain.po.WxFinanceReceive" resultMap="BaseResultMap">
select fees_id,sum(CAST(total_money AS DECIMAL(20,4))) as total_money,sum(CAST(use_money AS DECIMAL(20,4))) as use_money
select fees_id,sum(CAST(receive_money AS DECIMAL(20,4))) as receive_money,sum(CAST(use_money AS DECIMAL(20,4))) as use_money
from wx_finance_receive
<include refid="dynamicWhereConditions"/>
and money - use_money &gt; 0


mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml → mallinkService/src/main/resources/mapper/WxFinanceSetoffBillMapper.xml Ver fichero

@@ -1,7 +1,7 @@
<?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.iformall.mapper.WxFinanceReceiveBillMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxFinanceReceiveBill">
<mapper namespace="com.iformall.mapper.WxFinanceSetoffBillMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxFinanceSetoffBill">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" />

Cargando…
Cancelar
Guardar