diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java index 032a2797c..ea2b8045f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java +++ b/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); } + + } diff --git a/mallinkAdmin/src/main/resources/db/migration/V20240300001_settle.sql b/mallinkAdmin/src/main/resources/db/migration/V20240300001_settle.sql index 6bcde5c74..6067f1920 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V20240300001_settle.sql +++ b/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 '商户联系人', diff --git a/mallinkAdmin/src/main/resources/excel/settle.xlsx b/mallinkAdmin/src/main/resources/excel/settle.xlsx index b952843f2..2dc7e871b 100644 Binary files a/mallinkAdmin/src/main/resources/excel/settle.xlsx and b/mallinkAdmin/src/main/resources/excel/settle.xlsx differ diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxSettleMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxSettleMerchant.java index 547c5a7f6..97ca30b30 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxSettleMerchant.java +++ b/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") diff --git a/mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java index 0df487aec..b46bc67cc 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java +++ b/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 getMapDetail(WxSettleMerchant record); + + /** * 保存或更新实体 * @@ -38,4 +44,5 @@ public interface WxSettleMerchantService { void exportData(WxSettleMerchant record, HttpServletRequest request, HttpServletResponse response); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxSettleMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxSettleMerchantServiceImpl.java index 8995267bb..8c629ade3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxSettleMerchantServiceImpl.java +++ b/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 getMapDetail(WxSettleMerchant record) { + Map valueMap = new HashMap(); + 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 valueMap = new HashMap(); - 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 valueMap = getMapDetail(record); ExcelExportUtils.exportByModel("excel/settle.xlsx","供应商结算单_"+record.getMerchantName(),"供应商结算单", valueMap,request,response); } - public List selectListForExcelExport(Object queryParams, int page) { - WxSettleMerchant record = (WxSettleMerchant) queryParams; - WxSettleMerchant _r = wxSettleMerchantMapper.selectById(record.getId(), record.getTenantId()); - if (null == _r) { - return null; - } - List retList = new ArrayList(); - retList.add(_r); - return retList; - } - - } diff --git a/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml index 5cd20e361..57dee57ac 100644 --- a/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml @@ -39,6 +39,8 @@ + + @@ -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`