diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java new file mode 100644 index 000000000..032a2797c --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxSettleMerchantController.java @@ -0,0 +1,77 @@ +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.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; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("wxSettleMerchant") +@Api(description = "结算表") +public class WxSettleMerchantController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxSettleMerchantService wxSettleMerchantService; + + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData list(@ModelAttribute WxSettleMerchant wxSettleMerchant, Integer pageNum, Integer pageSize) { + if (null == wxSettleMerchant) wxSettleMerchant = new WxSettleMerchant(); + wxSettleMerchant.updateTenantInfo(getTenantInfo()); + wxSettleMerchant.setSortColumns(BaseEntity.SortField.CreateDate_DESC); + final PageInfo page = wxSettleMerchantService.listAsPage(wxSettleMerchant, pageNum, pageSize); + return new ResultData(page); + } + + @ApiOperation("新增接口") + @PostMapping("saveOrUpdate") + public ResultData add(@RequestBody WxSettleMerchant wxSettleMerchant) { + wxSettleMerchant.updateTenantInfo(getTenantInfo()); + try { + wxSettleMerchantService.saveOrUpdate(wxSettleMerchant,this.getUser()); + return new ResultData(); + } catch (MallinkException e) { + logger.error(e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } + } + + @TenantIgnore + @ApiOperation("导出") + @GetMapping("/exportData") + public void exportData(@ModelAttribute WxSettleMerchant wxSettleMerchant, HttpServletRequest request, HttpServletResponse response) { + if (null == wxSettleMerchant.getId()) { + return; + } + WxSettleMerchant record = wxSettleMerchantService.getById(getTenantInfo(), wxSettleMerchant.getId()); + if (null == record) { + return; + } + 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 new file mode 100644 index 000000000..6bcde5c74 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V20240300001_settle.sql @@ -0,0 +1,46 @@ +CREATE TABLE `wx_settle_merchant` ( + `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', + `merchant_id` bigint(20) NOT NULL COMMENT '商户编号', + `begin_time` datetime NOT NULL COMMENT '开始时间', + `end_time` datetime NOT NULL COMMENT '结束时间', + `confirm_time` datetime NOT NULL COMMENT '对账时间', + `create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', + `total_money` decimal(10,3) NOT NULL COMMENT '对账金额', + `actual_money` decimal(10,3) DEFAULT NULL COMMENT '实际结算金额', + `card_sale_money` decimal(10,3) DEFAULT NULL COMMENT '储值卡销售金额', + `card_rate` decimal(10,3) DEFAULT NULL COMMENT '储值卡扣款费率', + `card_money` decimal(10,3) DEFAULT NULL COMMENT '储值卡结算金额', + `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 '支付宝结算金额', + `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 '微信结算金额', + `erase_zero_sale_money` decimal(10,3) DEFAULT NULL COMMENT '抹零销售金额', + `erase_zero_rate` decimal(10,3) DEFAULT NULL COMMENT '抹零扣款费率', + `erase_zero_money` decimal(10,3) DEFAULT NULL COMMENT '抹零结算金额', + `cash_sale_money` decimal(10,3) DEFAULT NULL COMMENT '现金销售金额', + `cash_rate` decimal(10,3) DEFAULT NULL COMMENT '现金扣款费率', + `cash_money` decimal(10,3) DEFAULT NULL COMMENT '现金结算金额', + `rent_money` decimal(10,3) DEFAULT NULL COMMENT '租金费用', + `rent_contract_money` decimal(10,3) DEFAULT NULL COMMENT '物业管理费', + `employee_manage_money` decimal(10,3) DEFAULT NULL COMMENT '员工管理费', + `sales_slip_money` decimal(10,3) DEFAULT NULL COMMENT '小票费用', + `salary` decimal(10,3) DEFAULT NULL COMMENT '工资', + `earnest_money` decimal(10,3) DEFAULT NULL COMMENT '保证金', + `other_money` decimal(10,3) DEFAULT NULL COMMENT '其他', + `last_remaining` 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 '商户联系人', + `merchant_phone` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商户联系电话', + `account_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '收款人名称', + `account_bank` varchar(300) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '开户行', + `account_number` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '收款人账户', + `create_by` bigint(20) NOT NULL COMMENT '创建人', + `update_by` bigint(20) NOT NULL COMMENT '修改人', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='卡券'; diff --git a/mallinkAdmin/src/main/resources/excel/settle.xlsx b/mallinkAdmin/src/main/resources/excel/settle.xlsx new file mode 100644 index 000000000..b952843f2 Binary files /dev/null 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 new file mode 100644 index 000000000..547c5a7f6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxSettleMerchant.java @@ -0,0 +1,111 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.math.BigDecimal; +import java.util.Date; + +@TableName(value = "wx_settle_merchant") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxSettleMerchant extends TenantEntity { + + private Long id; + + @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate") + private Date updateDate; + @io.swagger.annotations.ApiModelProperty(value = "商户编号", name = "merchantId") + private Long merchantId; + @io.swagger.annotations.ApiModelProperty(value = "开始时间", name = "beginTime") + private Date beginTime; + @io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endTime") + private Date endTime; + @io.swagger.annotations.ApiModelProperty(value = "对账时间", name = "confirmTime") + private Date confirmTime; + @io.swagger.annotations.ApiModelProperty(value = "对账金额", name = "totalMoney") + private BigDecimal totalMoney; + @io.swagger.annotations.ApiModelProperty(value = "实际结算金额", name = "actualMoney") + private BigDecimal actualMoney; + @io.swagger.annotations.ApiModelProperty(value = "储值卡销售金额", name = "cardSaleMoney") + private BigDecimal cardSaleMoney; + @io.swagger.annotations.ApiModelProperty(value = "储值卡扣款费率", name = "cardRate") + private BigDecimal cardRate; + @io.swagger.annotations.ApiModelProperty(value = "储值卡结算金额", name = "cardMoney") + private BigDecimal cardMoney; + @io.swagger.annotations.ApiModelProperty(value = "支付宝销售金额", name = "zfbSaleMoney") + private BigDecimal zfbSaleMoney; + @io.swagger.annotations.ApiModelProperty(value = "支付宝扣款费率", name = "zfbRate") + private BigDecimal zfbRate; + @io.swagger.annotations.ApiModelProperty(value = "支付宝结算金额", name = "zfbMoney") + private BigDecimal zfbMoney; + @io.swagger.annotations.ApiModelProperty(value = "银联销售金额", name = "unionSaleMoney") + private BigDecimal unionSaleMoney; + @io.swagger.annotations.ApiModelProperty(value = "银联扣款费率", name = "unionRate") + private BigDecimal unionRate; + @io.swagger.annotations.ApiModelProperty(value = "银联结算金额", name = "unionMoney") + private BigDecimal unionMoney; + @io.swagger.annotations.ApiModelProperty(value = "微信销售金额", name = "wxSaleMoney") + private BigDecimal wxSaleMoney; + @io.swagger.annotations.ApiModelProperty(value = "微信扣款费率", name = "wxRate") + private BigDecimal wxRate; + @io.swagger.annotations.ApiModelProperty(value = "微信结算金额", name = "wxMoney") + private BigDecimal wxMoney; + @io.swagger.annotations.ApiModelProperty(value = "抹零销售金额", name = "eraseZeroSaleMoney") + private BigDecimal eraseZeroSaleMoney; + @io.swagger.annotations.ApiModelProperty(value = "抹零扣款费率", name = "eraseZeroRate") + private BigDecimal eraseZeroRate; + @io.swagger.annotations.ApiModelProperty(value = "抹零结算金额", name = "eraseZeroMoney") + private BigDecimal eraseZeroMoney; + @io.swagger.annotations.ApiModelProperty(value = "现金销售金额", name = "cashSaleMoney") + private BigDecimal cashSaleMoney; + @io.swagger.annotations.ApiModelProperty(value = "现金扣款费率", name = "cashRate") + private BigDecimal cashRate; + @io.swagger.annotations.ApiModelProperty(value = "现金结算金额", name = "cashMoney") + private BigDecimal cashMoney; + @io.swagger.annotations.ApiModelProperty(value = "租金费用", name = "rentMoney") + private BigDecimal rentMoney; + @io.swagger.annotations.ApiModelProperty(value = "物业管理费", name = "rentContractMoney") + private BigDecimal rentContractMoney; + @io.swagger.annotations.ApiModelProperty(value = "员工管理费", name = "employeeManageMoney") + private BigDecimal employeeManageMoney; + @io.swagger.annotations.ApiModelProperty(value = "小票费用", name = "salesSlipMoney") + private BigDecimal salesSlipMoney; + @io.swagger.annotations.ApiModelProperty(value = "工资", name = "salary") + private BigDecimal salary; + @io.swagger.annotations.ApiModelProperty(value = "保证金", name = "earnestMoney") + private BigDecimal earnestMoney; + @io.swagger.annotations.ApiModelProperty(value = "其他", name = "otherMoney") + private BigDecimal otherMoney; + @io.swagger.annotations.ApiModelProperty(value = "上次未结清", name = "lastRemaining") + private BigDecimal lastRemaining; + @io.swagger.annotations.ApiModelProperty(value = "商户名称", name = "lastRemaining") + private String merchantName; + @io.swagger.annotations.ApiModelProperty(value = "商户代码", name = "merchantCode") + private String merchantCode; + @io.swagger.annotations.ApiModelProperty(value = "商户联系人", name = "merchantPerson") + private String merchantPerson; + @io.swagger.annotations.ApiModelProperty(value = "商户联系电话", name = "merchantPhone") + private String merchantPhone; + @io.swagger.annotations.ApiModelProperty(value = "收款人名称", name = "accountName") + private String accountName; + @io.swagger.annotations.ApiModelProperty(value = "开户行", name = "accountBank") + private String accountBank; + @io.swagger.annotations.ApiModelProperty(value = "收款人账户", name = "accountNumber") + private String accountNumber; + @io.swagger.annotations.ApiModelProperty(value = "创建人", name = "createBy") + private Long createBy; + @io.swagger.annotations.ApiModelProperty(value = "修改人", name = "updateBy") + private Long updateBy; + + @TableField(exist = false) + private Date begin; + @TableField(exist = false) + private Date end; +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxSettleMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxSettleMerchantMapper.java new file mode 100644 index 000000000..4bdfc1b60 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxSettleMerchantMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxSettleMerchant; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface WxSettleMerchantMapper extends CommonMapper { + + WxSettleMerchant selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findList(WxSettleMerchant wxSettleMerchant); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java new file mode 100644 index 000000000..0df487aec --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxSettleMerchantService.java @@ -0,0 +1,41 @@ +package com.iformall.service; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxSettleMerchant; +import com.iformall.domain.po.base.TenantEntity; + +public interface WxSettleMerchantService { + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(WxSettleMerchant record, Integer pageIndex, Integer pageSize); + + /** + * 根据Id获得实体 + * + * @param id + * @return + */ + WxSettleMerchant getById(TenantEntity tenantEntity,Long id); + + /** + * 保存或更新实体 + * + * @param record + */ + void saveOrUpdate(WxSettleMerchant record,MallUserInfo operator); + + + 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 new file mode 100644 index 000000000..8995267bb --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxSettleMerchantServiceImpl.java @@ -0,0 +1,143 @@ +package com.iformall.service.impl; + +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.util.*; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author gongbiao + */ +@Service +public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxSettleMerchantMapper wxSettleMerchantMapper; + + @Override + public PageInfo listAsPage(WxSettleMerchant record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxSettleMerchantMapper.findList(record)); + } + + @Override + public WxSettleMerchant getById(TenantEntity tenantEntity,Long id) { + return wxSettleMerchantMapper.selectById(id, tenantEntity.getTenantId()); + } + + @Override + public void saveOrUpdate(WxSettleMerchant record,MallUserInfo operator) { + Date date = new Date(); + if (record.getId() == null) { + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setCreateDate(date); + record.setUpdateDate(date); + record.setCreateBy(operator.getId()); + record.setUpdateBy(operator.getId()); + wxSettleMerchantMapper.insert(record); + } else { + record.setUpdateDate(date); + record.setUpdateBy(operator.getId()); + 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); + + 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/java/com/iformall/utils/ExcelExportUtils.java b/mallinkService/src/main/java/com/iformall/utils/ExcelExportUtils.java new file mode 100644 index 000000000..b362ca77f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/utils/ExcelExportUtils.java @@ -0,0 +1,86 @@ +package com.iformall.utils; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; + +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.view.EasypoiTemplateExcelView; + +public class ExcelExportUtils { + + + public static void exportByModel(String modelPath,String fileName,String sheetName,Map valueMap,HttpServletRequest request, HttpServletResponse response) { + String templateFile = convertTemplatePath(modelPath); + TemplateExportParams exportTemplateParams = new TemplateExportParams(templateFile,sheetName); + exportTemplateParams.setColForEach(true); + POICacheManager.setFileLoader(new FileLoaderImpl()); + Workbook book = ExcelExportUtil.exportExcel(exportTemplateParams, valueMap); + EasypoiTemplateExcelView easypoiTemplateExcelView = new EasypoiTemplateExcelView(); + try { + easypoiTemplateExcelView.out(book, fileName, request, response); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + /** + * 模板路径处理,避免出现NPE + * @param path + * @return + */ + private static String convertTemplatePath(String path) { + if (System.getProperties().getProperty("os.name").contains("Windows")) { + return path; + } + + Resource resource = new ClassPathResource(path); + FileOutputStream fileOutputStream = null; + String folder = System.getProperty("catalina.home"); + File tempFile = new File(folder + File.separator + path); + if (tempFile.exists()) { + return tempFile.getPath(); + } + File parentFile = tempFile.getParentFile(); + if (!parentFile.exists()) { + parentFile.mkdirs(); + } + + try { + BufferedInputStream inputStream = new BufferedInputStream(resource.getInputStream()); + fileOutputStream = new FileOutputStream(tempFile); + byte[] buffer = new byte[10240]; + int len = 0; + while ((len = inputStream.read(buffer)) != -1 ) { + fileOutputStream.write(buffer,0,len); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + }finally { + if (fileOutputStream != null) { + try { + fileOutputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return tempFile.getPath(); + } +} diff --git a/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml new file mode 100644 index 000000000..5cd20e361 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxSettleMerchantMapper.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`create_date`,`update_date`,`merchant_id`,`begin_time`,`end_time`,`confirm_time`,`total_money`, + `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` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `start_time` >= #{begin} + + + + and `end_time` <= #{end} + + + + and `merchant_name` like concat('%', #{merchantName},'%') + + + + and `merchant_id` = #{merchantId} + + + + and `create_by` = #{createBy} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + \ No newline at end of file