| @@ -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<WxSettleMerchant> 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); | |||
| } | |||
| } | |||
| @@ -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='卡券'; | |||
| @@ -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; | |||
| } | |||
| @@ -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, Long> { | |||
| WxSettleMerchant selectById(@Param("id")Long id,@Param("tenantId")String tenantId); | |||
| List<WxSettleMerchant> findList(WxSettleMerchant wxSettleMerchant); | |||
| } | |||
| @@ -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<WxSettleMerchant> 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); | |||
| } | |||
| @@ -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<WxSettleMerchant> 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<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); | |||
| 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; | |||
| } | |||
| } | |||
| @@ -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<String,Object> 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(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,114 @@ | |||
| <?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.WxSettleMerchantMapper"> | |||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxSettleMerchant"> | |||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId" /> | |||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" /> | |||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | |||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | |||
| <result column="merchant_id" jdbcType="BIGINT" property="merchantId" /> | |||
| <result column="begin_time" jdbcType="TIMESTAMP" property="beginTime" /> | |||
| <result column="end_time" jdbcType="TIMESTAMP" property="endTime" /> | |||
| <result column="confirm_time" jdbcType="TIMESTAMP" property="confirmTime" /> | |||
| <result column="total_money" jdbcType="DECIMAL" property="totalMoney" /> | |||
| <result column="actual_money" jdbcType="DECIMAL" property="actualMoney" /> | |||
| <result column="card_sale_money" jdbcType="DECIMAL" property="cardSaleMoney" /> | |||
| <result column="card_rate" jdbcType="DECIMAL" property="cardRate" /> | |||
| <result column="card_money" jdbcType="DECIMAL" property="cardMoney" /> | |||
| <result column="zfb_sale_money" jdbcType="DECIMAL" property="zfbSaleMoney" /> | |||
| <result column="zfb_rate" jdbcType="DECIMAL" property="zfbRate" /> | |||
| <result column="zfb_money" jdbcType="DECIMAL" property="zfbMoney" /> | |||
| <result column="union_sale_money" jdbcType="DECIMAL" property="unionSaleMoney" /> | |||
| <result column="union_rate" jdbcType="DECIMAL" property="unionRate" /> | |||
| <result column="union_money" jdbcType="DECIMAL" property="unionMoney" /> | |||
| <result column="wx_sale_money" jdbcType="DECIMAL" property="wxSaleMoney" /> | |||
| <result column="wx_rate" jdbcType="DECIMAL" property="wxRate" /> | |||
| <result column="wx_money" jdbcType="DECIMAL" property="wxMoney" /> | |||
| <result column="erase_zero_sale_money" jdbcType="DECIMAL" property="eraseZeroSaleMoney" /> | |||
| <result column="erase_zero_rate" jdbcType="DECIMAL" property="eraseZeroRate" /> | |||
| <result column="erase_zero_money" jdbcType="DECIMAL" property="eraseZeroMoney" /> | |||
| <result column="cash_sale_money" jdbcType="DECIMAL" property="cashSaleMoney" /> | |||
| <result column="cash_rate" jdbcType="DECIMAL" property="cashRate" /> | |||
| <result column="cash_money" jdbcType="DECIMAL" property="cashMoney" /> | |||
| <result column="rent_money" jdbcType="DECIMAL" property="rentMoney" /> | |||
| <result column="rent_contract_money" jdbcType="DECIMAL" property="rentContractMoney" /> | |||
| <result column="employee_manage_money" jdbcType="DECIMAL" property="employeeManageMoney" /> | |||
| <result column="sales_slip_money" jdbcType="DECIMAL" property="salesSlipMoney" /> | |||
| <result column="salary" jdbcType="DECIMAL" property="salary" /> | |||
| <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="merchant_name" jdbcType="VARCHAR" property="merchantName" /> | |||
| <result column="merchant_code" jdbcType="VARCHAR" property="merchantCode" /> | |||
| <result column="merchant_person" jdbcType="VARCHAR" property="merchantPerson" /> | |||
| <result column="merchant_phone" jdbcType="VARCHAR" property="merchantPhone" /> | |||
| <result column="account_name" jdbcType="VARCHAR" property="accountName" /> | |||
| <result column="account_bank" jdbcType="VARCHAR" property="accountBank" /> | |||
| <result column="account_number" jdbcType="VARCHAR" property="accountNumber" /> | |||
| <result column="create_by" jdbcType="BIGINT" property="createBy" /> | |||
| <result column="update_by" jdbcType="BIGINT" property="updateBy" /> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| `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` | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| where 1 = 1 | |||
| <if test=" null != id "> | |||
| and `id` = #{id} | |||
| </if> | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and `parent_tenant_id` = #{parentTenantId} | |||
| </if> | |||
| <if test=" null != begin"> | |||
| and `start_time` >= #{begin} | |||
| </if> | |||
| <if test=" null != end"> | |||
| and `end_time` <= #{end} | |||
| </if> | |||
| <if test=" null != merchantName and merchantName != '' "> | |||
| and `merchant_name` like concat('%', #{merchantName},'%') | |||
| </if> | |||
| <if test=" null != merchantId "> | |||
| and `merchant_id` = #{merchantId} | |||
| </if> | |||
| <if test=" null != createBy "> | |||
| and `create_by` = #{createBy} | |||
| </if> | |||
| <if test=" null != ids "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| #{idItem} | |||
| </foreach> | |||
| </if> | |||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||
| </sql> | |||
| <select id="selectById" parameterType="java.util.HashMap" resultMap="BaseResultMap"> | |||
| select <include refid="allColumns" /> from wx_settle_merchant where id = #{id} and tenant_id=#{tenantId} | |||
| </select> | |||
| <select id="findList" parameterType="com.iformall.domain.po.WxSettleMerchant" resultMap="BaseResultMap"> | |||
| select <include refid="allColumns" /> from wx_settle_merchant | |||
| <include refid="dynamicWhereConditions" /> | |||
| </select> | |||
| </mapper> | |||