winter 2 лет назад
Родитель
Сommit
1d7d468c65
7 измененных файлов: 126 добавлений и 88 удалений
  1. +22
    -7
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java
  2. +5
    -0
      mallinkAdmin/src/main/resources/db/migration/V20240300001_settle.sql
  3. Двоичные данные
      mallinkAdmin/src/main/resources/excel/settle.xlsx
  4. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxSettleMerchant.java
  5. +8
    -1
      mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java
  6. +83
    -78
      mallinkService/src/main/java/com/iformall/service/impl/WxSettleMerchantServiceImpl.java
  7. +4
    -2
      mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml

+ 22
- 7
mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java Просмотреть файл

@@ -1,22 +1,17 @@
package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.SystemControllerLog;
import com.iformall.annotation.TenantIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxSettleMerchant;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxSettleMerchantService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@@ -59,8 +54,26 @@ public class WxSettleMerchantController extends BaseController {
return new ResultData(e.getErrorCode(), e.getMessage());
}
}
@ApiOperation("详细")
@GetMapping("/detail")
public ResultData detail(Long id) {
if (null == id) {
return new ResultData(Result.ERROR,"参数错误");
}
WxSettleMerchant wxSettleMerchant = wxSettleMerchantService.getById(getTenantInfo(), id);
if (null == wxSettleMerchant) {
return new ResultData(Result.ERROR,"参数错误");
}
return new ResultData(wxSettleMerchantService.getMapDetail(wxSettleMerchant));
}
@ApiOperation("计算周期性费用")
@GetMapping("/calcute")
public ResultData calcutePeriodicity(@ModelAttribute WxSettleMerchant wxSettleMerchant) {
return new ResultData(wxSettleMerchantService.getMapDetail(wxSettleMerchant));
}

@TenantIgnore
@ApiOperation("导出")
@GetMapping("/exportData")
public void exportData(@ModelAttribute WxSettleMerchant wxSettleMerchant, HttpServletRequest request, HttpServletResponse response) {
@@ -73,5 +86,7 @@ public class WxSettleMerchantController extends BaseController {
}
wxSettleMerchantService.exportData(record, request, response);
}


}

+ 5
- 0
mallinkAdmin/src/main/resources/db/migration/V20240300001_settle.sql Просмотреть файл

@@ -16,6 +16,9 @@ CREATE TABLE `wx_settle_merchant` (
`zfb_sale_money` decimal(10,3) DEFAULT NULL COMMENT '支付宝销售金额',
`zfb_rate` decimal(10,3) DEFAULT NULL COMMENT '支付宝扣款费率',
`zfb_money` decimal(10,3) DEFAULT NULL COMMENT '支付宝结算金额',
`union_sale_money` decimal(10,3) DEFAULT NULL COMMENT '银联销售金额',
`union_rate` decimal(10,3) DEFAULT NULL COMMENT '银联扣款费率',
`union_money` decimal(10,3) DEFAULT NULL COMMENT '银联结算金额',
`wx_sale_money` decimal(10,3) DEFAULT NULL COMMENT '微信销售金额',
`wx_rate` decimal(10,3) DEFAULT NULL COMMENT '微信扣款费率',
`wx_money` decimal(10,3) DEFAULT NULL COMMENT '微信结算金额',
@@ -33,6 +36,8 @@ CREATE TABLE `wx_settle_merchant` (
`earnest_money` decimal(10,3) DEFAULT NULL COMMENT '保证金',
`other_money` decimal(10,3) DEFAULT NULL COMMENT '其他',
`last_remaining` decimal(10,3) DEFAULT NULL COMMENT '上次未结清',
`points_rate` decimal(10,3) DEFAULT NULL COMMENT '扣点费率',
`points_money` decimal(10,3) DEFAULT NULL COMMENT '扣点费用',
`merchant_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商户名称',
`merchant_code` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商户代码',
`merchant_person` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商户联系人',


Двоичные данные
mallinkAdmin/src/main/resources/excel/settle.xlsx Просмотреть файл


+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxSettleMerchant.java Просмотреть файл

@@ -85,6 +85,10 @@ public class WxSettleMerchant extends TenantEntity {
private BigDecimal otherMoney;
@io.swagger.annotations.ApiModelProperty(value = "上次未结清", name = "lastRemaining")
private BigDecimal lastRemaining;
@io.swagger.annotations.ApiModelProperty(value = "扣点费率", name = "pointsRate")
private BigDecimal pointsRate;
@io.swagger.annotations.ApiModelProperty(value = "扣点费用", name = "pointsMoney")
private BigDecimal pointsMoney;
@io.swagger.annotations.ApiModelProperty(value = "商户名称", name = "lastRemaining")
private String merchantName;
@io.swagger.annotations.ApiModelProperty(value = "商户代码", name = "merchantCode")


+ 8
- 1
mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java Просмотреть файл

@@ -1,9 +1,13 @@
package com.iformall.service;

import java.math.BigDecimal;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.dto.WxSettleMerchantDto;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxSettleMerchant;
import com.iformall.domain.po.base.TenantEntity;
@@ -27,7 +31,9 @@ public interface WxSettleMerchantService {
* @return
*/
WxSettleMerchant getById(TenantEntity tenantEntity,Long id);

Map<String,Object> getMapDetail(WxSettleMerchant record);
/**
* 保存或更新实体
*
@@ -38,4 +44,5 @@ public interface WxSettleMerchantService {
void exportData(WxSettleMerchant record, HttpServletRequest request, HttpServletResponse response);


}

+ 83
- 78
mallinkService/src/main/java/com/iformall/service/impl/WxSettleMerchantServiceImpl.java Просмотреть файл

@@ -4,30 +4,18 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxSettleMerchant;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxCUserBasicInfoVo;
import com.iformall.mapper.WxSettleMerchantMapper;
import com.iformall.service.ExcelService;
import com.iformall.service.WxSettleMerchantService;
import com.iformall.utils.DateUtils;
import com.iformall.utils.ExcelExportUtils;

import cn.afterturn.easypoi.cache.manager.FileLoaderImpl;
import cn.afterturn.easypoi.cache.manager.POICacheManager;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.handler.inter.IExcelExportServer;

import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@@ -50,7 +38,86 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{
public WxSettleMerchant getById(TenantEntity tenantEntity,Long id) {
return wxSettleMerchantMapper.selectById(id, tenantEntity.getTenantId());
}

@Override
public Map<String,Object> getMapDetail(WxSettleMerchant record) {
Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("beginTime", DateUtils.format(record.getBeginTime()));
valueMap.put("endTime", DateUtils.format(record.getEndTime()));
valueMap.put("confirmTime", DateUtils.format(record.getConfirmTime()));
valueMap.put("merchantName", record.getMerchantName());
valueMap.put("merchantCode", record.getMerchantCode());
valueMap.put("merchantPerson", record.getMerchantPerson());
valueMap.put("merchantPhone", record.getMerchantPhone());
valueMap.put("totalMoney", record.getTotalMoney());
valueMap.put("cardSaleMoney", handleExcelData(record.getCardSaleMoney()));
valueMap.put("cardRate", handleExcelData(record.getCardRate()));
valueMap.put("cardMoney", handleExcelData(record.getCardMoney()));
valueMap.put("zfbSaleMoney", handleExcelData(record.getZfbSaleMoney()));
valueMap.put("zfbRate", handleExcelData(record.getZfbRate()));
valueMap.put("zfbMoney", handleExcelData(record.getZfbMoney()));
valueMap.put("unionSaleMoney", handleExcelData(record.getUnionSaleMoney()));
valueMap.put("unionRate", handleExcelData(record.getUnionRate()));
valueMap.put("unionMoney", handleExcelData(record.getUnionMoney()));
valueMap.put("wxSaleMoney", handleExcelData(record.getWxSaleMoney()));
valueMap.put("wxRate", handleExcelData(record.getWxRate()));
valueMap.put("wxMoney", handleExcelData(record.getWxMoney()));
valueMap.put("eraseZeroSaleMoney", handleExcelData(record.getEraseZeroSaleMoney()));
valueMap.put("eraseZeroRate", handleExcelData(record.getEraseZeroRate()));
valueMap.put("eraseZeroMoney", handleExcelData(record.getEraseZeroMoney()));
valueMap.put("cashSaleMoney", handleExcelData(record.getCashSaleMoney()));
valueMap.put("cashRate", handleExcelData(record.getCashRate()));
valueMap.put("cashMoney", handleExcelData(record.getCashMoney()));
valueMap.put("totalSaleMoney", calcuteAdd(record.getCardSaleMoney(),record.getZfbSaleMoney(),record.getUnionSaleMoney(),
record.getWxSaleMoney(),record.getEraseZeroSaleMoney(),record.getCashSaleMoney()));
valueMap.put("totalReduceMoney", calcuteAdd(record.getCardMoney(),record.getZfbMoney(),record.getUnionMoney(),record.getWxMoney(),
record.getEraseZeroMoney(),record.getCashMoney()));
valueMap.put("rentMoney", handleExcelData(record.getRentMoney()));
valueMap.put("rentContractMoney", handleExcelData(record.getRentContractMoney()));
valueMap.put("employeeManageMoney", handleExcelData(record.getEmployeeManageMoney()));
valueMap.put("salesSlipMoney", handleExcelData(record.getSalesSlipMoney()));
valueMap.put("salary", handleExcelData(record.getSalary()));
valueMap.put("earnestMoney", handleExcelData(record.getEarnestMoney()));
valueMap.put("otherMoney", handleExcelData(record.getOtherMoney()));
valueMap.put("lastRemaining", handleExcelData(record.getLastRemaining()));
valueMap.put("pointsRate", handleExcelData(record.getPointsRate()));
valueMap.put("pointsMoney", handleExcelData(record.getPointsMoney()));
valueMap.put("totalTempMoney", calcuteAdd(record.getRentMoney(),record.getRentContractMoney(),record.getEmployeeManageMoney(),record.getSalesSlipMoney(),
record.getSalary(),record.getEarnestMoney(),record.getOtherMoney(),record.getLastRemaining(),record.getPointsMoney()));
valueMap.put("totalMoneyDX", valueMap);
valueMap.put("actualMoneyDX", valueMap);
valueMap.put("actualMoney", record.getActualMoney());
valueMap.put("accountName", record.getAccountName());
valueMap.put("accountBank", record.getAccountBank());
valueMap.put("accountNumber", record.getAccountNumber());
return valueMap;
}
private BigDecimal calcuteAdd(BigDecimal... args) {
BigDecimal result = new BigDecimal(0);
for (int i = 0 ; i < args.length ; i ++) {
BigDecimal _c = args[i];
if (null != _c) {
result.add(_c);
}
}
return result.setScale(3,BigDecimal.ROUND_HALF_UP);
}
private Object handleExcelData(Object value) {
if (null == value) {
return "-";
}
return value;
}
@Override
public void saveOrUpdate(WxSettleMerchant record,MallUserInfo operator) {
Date date = new Date();
@@ -68,76 +135,14 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{
wxSettleMerchantMapper.updateById(record);
}
}
@Override
public void exportData(WxSettleMerchant record, HttpServletRequest request, HttpServletResponse response) {
Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("beginTime", DateUtils.format(record.getBeginTime()));
valueMap.put("endTime", DateUtils.format(record.getEndTime()));
valueMap.put("confirmTime", DateUtils.format(record.getConfirmTime()));
valueMap.put("merchantName", record.getMerchantName());
valueMap.put("merchantCode", record.getMerchantCode());
valueMap.put("merchantPerson", record.getMerchantPerson());
valueMap.put("merchantPhone", record.getMerchantPhone());
valueMap.put("totalMoney", record.getTotalMoney());
valueMap.put("cardSaleMoney", valueMap);
valueMap.put("cardRate", valueMap);
valueMap.put("cardMoney", valueMap);
valueMap.put("zfbSaleMoney", valueMap);
valueMap.put("zfbRate", valueMap);
valueMap.put("zfbMoney", valueMap);
valueMap.put("unionSaleMoney", valueMap);
valueMap.put("unionRate", valueMap);
valueMap.put("unionMoney", valueMap);
valueMap.put("wxSaleMoney", valueMap);
valueMap.put("wxRate", valueMap);
valueMap.put("wxMoney", valueMap);
valueMap.put("eraseZeroSaleMoney", valueMap);
valueMap.put("eraseZeroRate", valueMap);
valueMap.put("eraseZeroMoney", valueMap);
valueMap.put("cashSaleMoney", valueMap);
valueMap.put("cashRate", valueMap);
valueMap.put("cashMoney", valueMap);
valueMap.put("totalSaleMoney", valueMap);
valueMap.put("totalReduceMoney", valueMap);
valueMap.put("rentMoney", valueMap);
valueMap.put("rentContractMoney", valueMap);
valueMap.put("employeeManageMoney", valueMap);
valueMap.put("salesSlipMoney", valueMap);
valueMap.put("salary", valueMap);
valueMap.put("earnestMoney", valueMap);
valueMap.put("otherMoney", valueMap);
valueMap.put("lastRemaining", valueMap);
valueMap.put("totalTempMoney", valueMap);
valueMap.put("totalMoneyDX", valueMap);
valueMap.put("actualMoneyDX", valueMap);
valueMap.put("actualMoney", valueMap);
valueMap.put("accountName", valueMap);
valueMap.put("accountBank", valueMap);
valueMap.put("accountNumber", valueMap);
Map<String,Object> valueMap = getMapDetail(record);
ExcelExportUtils.exportByModel("excel/settle.xlsx","供应商结算单_"+record.getMerchantName(),"供应商结算单", valueMap,request,response);
}

public List<Object> selectListForExcelExport(Object queryParams, int page) {
WxSettleMerchant record = (WxSettleMerchant) queryParams;
WxSettleMerchant _r = wxSettleMerchantMapper.selectById(record.getId(), record.getTenantId());
if (null == _r) {
return null;
}
List<Object> retList = new ArrayList<Object>();
retList.add(_r);
return retList;
}


}

+ 4
- 2
mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml Просмотреть файл

@@ -39,6 +39,8 @@
<result column="earnest_money" jdbcType="DECIMAL" property="earnestMoney" />
<result column="other_money" jdbcType="DECIMAL" property="otherMoney" />
<result column="last_remaining" jdbcType="DECIMAL" property="lastRemaining" />
<result column="points_rate" jdbcType="DECIMAL" property="pointsRate" />
<result column="points_money" jdbcType="DECIMAL" property="pointsMoney" />
<result column="merchant_name" jdbcType="VARCHAR" property="merchantName" />
<result column="merchant_code" jdbcType="VARCHAR" property="merchantCode" />
<result column="merchant_person" jdbcType="VARCHAR" property="merchantPerson" />
@@ -55,8 +57,8 @@
`actual_money`,`card_sale_money`,`card_rate`,`card_money`,`zfb_sale_money`,`zfb_rate`,`zfb_money`,`union_sale_money`,`union_rate`,
`union_money`,`wx_sale_money`,`wx_rate`,`wx_money`,`erase_zero_sale_money`,`erase_zero_rate`,`erase_zero_money`,`cash_sale_money`,
`cash_rate`,`cash_money`,`rent_money`,`rent_contract_money`,`employee_manage_money`,`sales_slip_money`,`salary`,`earnest_money`,
`other_money`,`last_remaining`,`merchant_name`,`merchant_code`,`merchant_person`,`merchant_phone`,`account_name`,`account_bank`,
`account_number`,`create_by`,`update_by`
`other_money`,`last_remaining`,`points_rate`,`points_money`,`merchant_name`,`merchant_code`,`merchant_person`,`merchant_phone`,
`account_name`,`account_bank`,`account_number`,`create_by`,`update_by`
</sql>

<sql id="dynamicWhereConditions">


Загрузка…
Отмена
Сохранить