From d0c3258ed4871f2b9f03357bfd39b6caeff156b0 Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期二, 09 一月 2024 11:07:59 +0800 Subject: [PATCH] 修订版3.0 --- data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java | 2 data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java | 16 ++ data-server/src/main/resources/mapper/FinanceSubmitMapper.xml | 14 -- data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java | 3 data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java | 2 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java | 68 +++++++++++++ data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java | 3 data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java | 50 +++++++++ data-server/src/main/resources/mapper/DataReportingMapper.xml | 135 ++++++++++++++------------ 9 files changed, 209 insertions(+), 84 deletions(-) diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java index 0704d60..2aa2035 100644 --- a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java +++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java @@ -286,6 +286,72 @@ return Result.success(stringObjectMap); } - public static void main(String[] args) { + @ApiOperation(value = "瀵煎嚭璐㈠姟涓婃姤鍒楄〃") + @PostMapping("/downFinanceSubmitFile") + public Result downFinanceSubmitFile(@RequestBody Map<String, Object> data) { + Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class); + FinanceSubmit financeSubmit = JSON.parseObject(JSON.toJSONString(data.get("entity")), FinanceSubmit.class); + return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downFinanceSubmitFile(page, financeSubmit)); + } + + @ApiOperation(value = "瀵煎叆璐㈠姟涓婃姤鍒楄〃") + @PostMapping("/inputFinanceSubmitCsv") + public Result<?> inputFinanceSubmitCsv(@RequestParam("file") MultipartFile file) throws IOException { + CsvReader reader = CsvUtil.getReader(); + CsvData data = reader.read(new InputStreamReader(file.getInputStream(), "GB2312")); + List<CsvRow> rows = data.getRows(); + String format; + try { + format = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyyMMdd").parse(rows.get(2).get(0).split("锛�")[1])); + } catch (ParseException e) { + throw new ErrorException("鏂囦欢涓棩鏈熷湪杞崲鏃跺嚭鐜伴敊璇�"); + } + for (int i = 6; i < rows.size(); i++) { + FinanceSubmit financeSubmit = new FinanceSubmit(); + for (int i1 = 0; i1 < rows.get(5).size(); i1++) { + String str = rows.get(i).get(i1); + if (str == null) continue; + switch (rows.get(5).get(i1)) { + case "浠g悊鍟�": + financeSubmit.setCompany(str); + break; + case "璐︽埛鍚�": + financeSubmit.setName(str); + break; + case "閲戦": + try { + financeSubmit.setConsumption(new BigDecimal(str)); + } catch (Exception e) { + } + break; + case "浠g悊杩旂偣": + try { + financeSubmit.setAgentRebate(new BigDecimal(str)); + } catch (Exception e) { + } + break; + case "鎵撴浜烘皯甯�": + try { + financeSubmit.setMoney(new BigDecimal(str)); + } catch (Exception e) { + } + break; + case "鍛樺伐杩旂偣": + try { + financeSubmit.setEmployeeRebate(new BigDecimal(str)); + } catch (Exception e) { + } + break; + case "鍛樺伐杩旂偣浜烘皯甯�": + try { + financeSubmit.setEmployeeRebateMoney(new BigDecimal(str)); + } catch (Exception e) { + } + break; + } + } + financeSubmitService.addFinanceSubmit(financeSubmit, format); + } + return Result.success(); } } diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java index dacc791..3b72388 100644 --- a/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java +++ b/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java @@ -33,7 +33,6 @@ @ApiModelProperty("鐧昏鏃堕棿") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ValueTableShow(4) private LocalDateTime createTime; @ApiModelProperty("瀵规瘮鐨勮处鍙�") @@ -50,6 +49,5 @@ @ApiModelProperty("瀵规瘮鐨勭櫥璁版椂闂�") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ValueTableShow(8) private LocalDateTime comparisonCreateTime; } diff --git a/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java b/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java index 4cca3bc..20dfcec 100644 --- a/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java +++ b/data-server/src/main/java/com/yuanchu/mom/pojo/FinanceSubmit.java @@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.common.OrderBy; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; @@ -27,7 +28,7 @@ @Data @AllArgsConstructor @NoArgsConstructor -public class FinanceSubmit implements Serializable { +public class FinanceSubmit extends OrderBy implements Serializable { /** * 涓婚敭 diff --git a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java index ea9d584..75e00b1 100644 --- a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java +++ b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java @@ -9,6 +9,7 @@ import com.yuanchu.mom.pojo.DataReporting; import com.baomidou.mybatisplus.extension.service.IService; import com.yuanchu.mom.pojo.FansSubmit; +import com.yuanchu.mom.pojo.FinanceSubmit; import java.util.List; import java.util.Map; @@ -44,4 +45,6 @@ Map<String, Object> selectDataComparisonDtoPageList(Page page, DataComparisonDto dataComparisonDto); + String downFinanceSubmitFile(IPage<FinanceSubmit> page, FinanceSubmit financeSubmit); + } diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java index 6df59c6..3a1de81 100644 --- a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java +++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java @@ -25,9 +25,11 @@ import com.yuanchu.mom.mapper.FansSubmitMapper; import com.yuanchu.mom.pojo.DataReporting; import com.yuanchu.mom.pojo.FansSubmit; +import com.yuanchu.mom.pojo.FinanceSubmit; import com.yuanchu.mom.service.DataReportingService; import com.yuanchu.mom.mapper.DataReportingMapper; import com.yuanchu.mom.service.FansSubmitService; +import com.yuanchu.mom.service.FinanceSubmitService; import com.yuanchu.mom.utils.Jwt; import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.utils.ServletUtils; @@ -74,6 +76,9 @@ @Resource private FansSubmitService fansSubmitService; + @Resource + private FinanceSubmitService financeSubmitService; + @Override public Map<String, Object> selectDataReportingList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto) { Map<String, Object> map = new HashMap<>(); @@ -100,6 +105,15 @@ dataReporting2.setConsumption(dataReporting.getCustomerCosts().multiply(BigDecimal.valueOf(dataReporting.getFansAdd()))); } catch (Exception e) { } + try { + dataReporting2.setDiscountedConsumption(dataReporting.getConsumption().divide(dataReporting.getAgentRebate(), 2, RoundingMode.HALF_UP)); + }catch (Exception e){} + try { + dataReporting2.setActualCost(dataReporting.getAccountConsumption().divide(new BigDecimal(dataReporting.getFansAdd()), 2, RoundingMode.HALF_UP)); + }catch (Exception e){} + try { + dataReporting2.setProfit(dataReporting.getRebateConsumption().subtract(dataReporting.getConsumption())); + }catch (Exception e){} return dataReportingMapper.updateById(dataReporting2); } @@ -144,7 +158,7 @@ if (date == null) { date = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); }; - DataReporting one = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getProduct, dataReporting.getProduct()).eq(DataReporting::getName, dataReporting.getName()).like(DataReporting::getCreateTime, date)); + DataReporting one = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getProduct, dataReporting.getProduct()).eq(DataReporting::getName, dataReporting.getName()).eq(DataReporting::getCreateUser, userId).like(DataReporting::getCreateTime, date)); try { dataReporting.setRebateConsumption(dataReporting.getAccountConsumption().divide(dataReporting.getCustomerRebate(), 2, RoundingMode.HALF_UP)); } catch (Exception e) { @@ -199,7 +213,7 @@ CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK); writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time}); writer.write(new String[]{}); - writer.write(new String[]{}); + writer.write(new String[]{"鏃堕棿鑼冨洿锛�"+dataReportingPageDto.getCreateTime().format(DateTimeFormatter.ofPattern("yyyyMMdd"))}); writer.write(new String[]{}); writer.write(new String[]{}); List<Map<String, String>> head = JSON.parseObject(JSON.toJSONString(map.get("head")), List.class); @@ -286,7 +300,36 @@ CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK); writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time}); writer.write(new String[]{}); + writer.write(new String[]{"鏃堕棿鑼冨洿锛�"+fansSubmit.getCreateTime().format(DateTimeFormatter.ofPattern("yyyyMMdd"))}); writer.write(new String[]{}); + writer.write(new String[]{}); + List<Map<String, String>> head = JSON.parseObject(JSON.toJSONString(map.get("head")), List.class); + String[] str = new String[head.size()]; + for (int i = 0; i < head.size(); i++) { + str[i] = head.get(i).get("value"); + } + writer.write(str); + JSON.parseObject(JSON.toJSONString(map.get("body")), IPage.class).getRecords().forEach(a->{ + Map<String, Object> map1 = JSON.parseObject(JSON.toJSONString(a), Map.class); + for (int i = 0; i < head.size(); i++) { + str[i] = map1.get(head.get(i).get("label"))==null?null:map1.get(head.get(i).get("label"))+""; + } + writer.write(str); + }); + writer.close(); + return name; + } + + @Override + public String downFinanceSubmitFile(IPage<FinanceSubmit> page, FinanceSubmit financeSubmit) { + Map<String, Object> map = financeSubmitService.selectFinanceSubmitList(page, financeSubmit); + String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss")); + String name = "璐㈠姟涓婃姤" + time + ".csv"; + String path = outPath + name; + CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK); + writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time}); + writer.write(new String[]{}); + writer.write(new String[]{"鏃堕棿鑼冨洿锛�"+financeSubmit.getCreateTime().format(DateTimeFormatter.ofPattern("yyyyMMdd"))}); writer.write(new String[]{}); writer.write(new String[]{}); List<Map<String, String>> head = JSON.parseObject(JSON.toJSONString(map.get("head")), List.class); @@ -318,7 +361,10 @@ || StringUtils.isEmpty(dataComparisonDto.getComparisonName())) { map.put("body", new Page<DataComparisonDto>()); }else { + long startTime = System.currentTimeMillis(); IPage<DataComparisonDto> dataReportingPageDtoIPage = dataReportingMapper.selectDataComparisonDtoPageList(page, dataComparisonDto); + long endTime = System.currentTimeMillis(); + System.out.println("鎵ц鏃堕棿锛�" + (endTime - startTime) + " 姣"); map.put("body", dataReportingPageDtoIPage); } return map; diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java index 4865a3d..5177530 100644 --- a/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java +++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java @@ -75,7 +75,7 @@ @Override public int addFansSubmit(FansSubmit fansSubmit, String date) { if(date == null) date = getYesterday(); - DataReporting dataReporting = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getName, fansSubmit.getCustom()).eq(DataReporting::getProduct, fansSubmit.getProduct()).like(DataReporting::getCreateTime, date)); + DataReporting dataReporting = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getName, fansSubmit.getCustom()).eq(DataReporting::getProduct, fansSubmit.getProduct()).eq(DataReporting::getCreateUser, getLook.selectPowerByMethodAndUserId("selectRegistrantCountDtoPageList").get("userId")).like(DataReporting::getCreateTime, date)); if(ObjectUtil.isEmpty(dataReporting)){ throw new ErrorException(date+" 瀹㈡埛锛�"+fansSubmit.getCustom()+" 骞舵湭涓婃姤杩� "+fansSubmit.getProduct()+" 椤圭洰"); } diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java index 3c4bd95..612bef2 100644 --- a/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java +++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/FinanceSubmitServiceImpl.java @@ -11,12 +11,14 @@ import com.yuanchu.mom.pojo.DataReporting; import com.yuanchu.mom.pojo.FansSubmit; import com.yuanchu.mom.pojo.FinanceSubmit; +import com.yuanchu.mom.service.DataReportingService; import com.yuanchu.mom.service.FinanceSubmitService; import com.yuanchu.mom.mapper.FinanceSubmitMapper; import com.yuanchu.mom.utils.QueryWrappers; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.math.RoundingMode; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.HashMap; @@ -55,17 +57,27 @@ @Override public int updateFinanceSubmit(FinanceSubmit financeSubmit) { + DataReporting reporting = dataReportingMapper.selectById(financeSubmit.getDataId()); + reporting.setId(financeSubmit.getDataId()); + reporting.setAgentRebate(financeSubmit.getEmployeeRebate()); + try { + reporting.setDiscountedConsumption(reporting.getConsumption().divide(reporting.getAgentRebate(), 2, RoundingMode.HALF_UP)); + }catch (Exception e){} + dataReportingMapper.updateById(reporting); return financeSubmitMapper.updateById(financeSubmit); } @Override public int addFinanceSubmit(FinanceSubmit financeSubmit, String date) { if(date == null) date = getYesterday(); - DataReporting dataReporting = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getAgent, financeSubmit.getCompany()).eq(DataReporting::getName, financeSubmit.getName()).like(DataReporting::getCreateTime, date)); + DataReporting dataReporting = dataReportingMapper.selectOne(Wrappers.<DataReporting>lambdaQuery().eq(DataReporting::getAgent, financeSubmit.getCompany()).eq(DataReporting::getName, financeSubmit.getName()).eq(DataReporting::getCreateUser, getLook.selectPowerByMethodAndUserId("selectRegistrantCountDtoPageList").get("userId")).like(DataReporting::getCreateTime, date)); if(ObjectUtil.isEmpty(dataReporting)){ - throw new ErrorException(date+" 璐︽埛锛�"+financeSubmit.getName()+" 鐨勪唬鐞嗗晢锛�"+financeSubmit.getCompany()+" 骞舵湭涓婃姤杩�"); + throw new ErrorException(date+" 璐︽埛锛�"+financeSubmit.getName()+" 浠g悊鍟嗭細"+financeSubmit.getCompany()+" 骞舵湭涓婃姤杩�"); } dataReporting.setAgentRebate(financeSubmit.getEmployeeRebate()); + try { + dataReporting.setDiscountedConsumption(dataReporting.getConsumption().divide(dataReporting.getAgentRebate(), 2, RoundingMode.HALF_UP)); + }catch (Exception e){} dataReportingMapper.updateById(dataReporting); financeSubmit.setDataId(dataReporting.getId()); return financeSubmitMapper.insert(financeSubmit); diff --git a/data-server/src/main/resources/mapper/DataReportingMapper.xml b/data-server/src/main/resources/mapper/DataReportingMapper.xml index 22ea781..d7854d0 100644 --- a/data-server/src/main/resources/mapper/DataReportingMapper.xml +++ b/data-server/src/main/resources/mapper/DataReportingMapper.xml @@ -5,37 +5,37 @@ <mapper namespace="com.yuanchu.mom.mapper.DataReportingMapper"> <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DataReporting"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="department" column="department" jdbcType="VARCHAR"/> - <result property="registrant" column="registrant" jdbcType="VARCHAR"/> - <result property="product" column="product" jdbcType="VARCHAR"/> - <result property="channel" column="channel" jdbcType="VARCHAR"/> - <result property="name" column="name" jdbcType="VARCHAR"/> - <result property="showNum" column="show_num" jdbcType="INTEGER"/> - <result property="click" column="click" jdbcType="INTEGER"/> - <result property="accountConsumption" column="account_consumption" jdbcType="DECIMAL"/> - <result property="rebateConsumption" column="rebate_consumption" jdbcType="DECIMAL"/> - <result property="consumption" column="consumption" jdbcType="DECIMAL"/> - <result property="discountedConsumption" column="discounted_consumption" jdbcType="DECIMAL"/> - <result property="fansAdd" column="fans_add" jdbcType="INTEGER"/> - <result property="actualCost" column="actual_cost" jdbcType="DECIMAL"/> - <result property="internalCosts" column="internal_costs" jdbcType="DECIMAL"/> - <result property="customerCosts" column="customer_costs" jdbcType="DECIMAL"/> - <result property="profit" column="profit" jdbcType="DECIMAL"/> - <result property="agentRebate" column="agent_rebate" jdbcType="DECIMAL"/> - <result property="customerRebate" column="customer_rebate" jdbcType="DECIMAL"/> - <result property="remark" column="remark" jdbcType="DECIMAL"/> - <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> - <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> - <result property="createUser" column="create_user" jdbcType="VARCHAR"/> - <result property="updateUser" column="update_user" jdbcType="VARCHAR"/> + <id property="id" column="id" jdbcType="INTEGER"/> + <result property="department" column="department" jdbcType="VARCHAR"/> + <result property="registrant" column="registrant" jdbcType="VARCHAR"/> + <result property="product" column="product" jdbcType="VARCHAR"/> + <result property="channel" column="channel" jdbcType="VARCHAR"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="showNum" column="show_num" jdbcType="INTEGER"/> + <result property="click" column="click" jdbcType="INTEGER"/> + <result property="accountConsumption" column="account_consumption" jdbcType="DECIMAL"/> + <result property="rebateConsumption" column="rebate_consumption" jdbcType="DECIMAL"/> + <result property="consumption" column="consumption" jdbcType="DECIMAL"/> + <result property="discountedConsumption" column="discounted_consumption" jdbcType="DECIMAL"/> + <result property="fansAdd" column="fans_add" jdbcType="INTEGER"/> + <result property="actualCost" column="actual_cost" jdbcType="DECIMAL"/> + <result property="internalCosts" column="internal_costs" jdbcType="DECIMAL"/> + <result property="customerCosts" column="customer_costs" jdbcType="DECIMAL"/> + <result property="profit" column="profit" jdbcType="DECIMAL"/> + <result property="agentRebate" column="agent_rebate" jdbcType="DECIMAL"/> + <result property="customerRebate" column="customer_rebate" jdbcType="DECIMAL"/> + <result property="remark" column="remark" jdbcType="DECIMAL"/> + <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> + <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> + <result property="createUser" column="create_user" jdbcType="VARCHAR"/> + <result property="updateUser" column="update_user" jdbcType="VARCHAR"/> </resultMap> <select id="selectDataReportingDtoPageList" resultType="com.yuanchu.mom.dto.DataReportingPageDto"> select * from ( select dr.*,u1.name create_user_name,u2.name update_user_name from data_reporting dr - left join user u1 on dr.create_user = u1.id - left join user u2 on dr.update_user = u2.id + left join user u1 on dr.create_user = u1.id + left join user u2 on dr.update_user = u2.id ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} @@ -43,7 +43,8 @@ </select> <select id="selectProductCountDtoPageList" resultType="com.yuanchu.mom.dto.ProductCountDto"> select * from ( - select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add, sum(customer_costs) customer_costs, create_user + select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add, + sum(customer_costs) customer_costs, create_user from data_reporting group by product,date_format(create_time, '%Y-%m-%d') ) a @@ -53,7 +54,12 @@ </select> <select id="selectRegistrantCountDtoPageList" resultType="com.yuanchu.mom.dto.RegistrantCountDto"> select * from ( - select id, department, registrant, product, name, sum(show_num) show_num, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time, create_user + select id, department, registrant, product, name, sum(show_num) show_num, sum(click) click, + sum(account_consumption)account_consumption, sum(rebate_consumption) + rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) + discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) + customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, + sum(remark) remark, create_time, update_time, create_user from data_reporting group by registrant,date_format(create_time, '%Y-%m-%d') ) a @@ -62,66 +68,73 @@ </if> </select> <select id="getDataFor1" resultType="java.util.Map"> - select COALESCE(sum(account_consumption), 0) data1, COALESCE(sum(consumption), 0) data2, COALESCE(sum(customer_costs),0) data3, COALESCE(sum(actual_cost), 0) data4 + select COALESCE(sum(account_consumption), 0) data1, + COALESCE(sum(consumption), 0) data2, + COALESCE(sum(customer_costs), 0) data3, + COALESCE(sum(actual_cost), 0) data4 from data_reporting - where date(create_time) like CURDATE() + where date(create_time) like (CURDATE() - INTERVAL 1 DAY) </select> <select id="getDataFor2" resultType="java.util.Map"> - SELECT sum(account_consumption) account_consumptions, DATE_FORMAT(create_time, '%m-%d') `date`, DATE_FORMAT(create_time, '%y-%m-%d') time + SELECT sum(account_consumption) account_consumptions, + DATE_FORMAT(create_time, '%m-%d') `date`, + DATE_FORMAT(create_time, '%y-%m-%d') time FROM data_reporting group by DATE_FORMAT(create_time, '%y-%m-%d') having DATE_SUB(CURDATE(), INTERVAL 7 DAY) < time - and time <= CURDATE() + and time < CURDATE() </select> <select id="getDataFor3" resultType="java.util.Map"> - SELECT sum(consumption) consumption, DATE_FORMAT(create_time, '%m-%d') `date`, DATE_FORMAT(create_time, '%y-%m-%d') time + SELECT sum(consumption) consumption, + DATE_FORMAT(create_time, '%m-%d') `date`, + DATE_FORMAT(create_time, '%y-%m-%d') time FROM data_reporting group by DATE_FORMAT(create_time, '%y-%m-%d') having DATE_SUB(CURDATE(), INTERVAL 7 DAY) < time - and time <= CURDATE() + and time < CURDATE() </select> <select id="getDataFor4" resultType="java.util.Map"> select product, sum(customer_costs) customerCosts from data_reporting group by product - order by customerCosts desc limit 7 + order by customerCosts desc + limit 7 </select> <select id="getDataFor5" resultType="java.util.Map"> select product, sum(actual_cost) actualCost from data_reporting group by product - order by actualCost desc limit 7 + order by actualCost desc + limit 7 </select> <select id="selectUser" resultType="java.util.Map"> - select user.department, user.name, user.account from user + select user.department, user.name, user.account + from user where id = #{userId} </select> <select id="selectDataComparisonDtoPageList" resultType="com.yuanchu.mom.dto.DataComparisonDto"> - select a.account account, - a.name name, + select a.account account, + a.name name, a.account_consumption consumption, - a.create_time createTime, - b.account comparisonAccount, - b.name comparisonName, - b.account_consumption comparisonConsumption, - b.create_time comparisonCreateTime - from (select user.account, - user.name, - dr1.account_consumption, - dr1.create_time - from data_reporting dr1 - join user on dr1.create_user = user.id - where date_format(dr1.create_time, '%Y-%m-%d') = date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d') - and user.name like concat('%', #{dataComparisonDto.name}, '%')) a, - (select user.account, - user.name, - dr2.account_consumption, - dr2.create_time - from data_reporting dr2 - join user on dr2.create_user = user.id - where date_format(dr2.create_time, '%Y-%m-%d') = date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d') - and user.name like concat('%', #{dataComparisonDto.comparisonName}, '%')) b - where a.account_consumption != b.account_consumption + b.account comparisonAccount, + b.name comparisonName, + b.account_consumption comparisonConsumption + from (select dr1.*, user.id uId, user.name uName, user.account + from data_reporting dr1 + join user on dr1.create_user = user.id + where date_format(dr1.create_time, '%Y-%m-%d') = + date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d') + and user.name = #{dataComparisonDto.name}) a + left join (select dr2.*, user.id uId, user.name uName, user.account + from data_reporting dr2 + join user on dr2.create_user = user.id + where date_format(dr2.create_time, '%Y-%m-%d') = + date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d') + and user.name = #{dataComparisonDto.comparisonName}) b + on a.name = b.name + and a.product = b.product + where (a.account_consumption != b.account_consumption + or b.account_consumption is null) </select> </mapper> diff --git a/data-server/src/main/resources/mapper/FinanceSubmitMapper.xml b/data-server/src/main/resources/mapper/FinanceSubmitMapper.xml index e811df5..4bb0808 100644 --- a/data-server/src/main/resources/mapper/FinanceSubmitMapper.xml +++ b/data-server/src/main/resources/mapper/FinanceSubmitMapper.xml @@ -4,20 +4,6 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.mom.mapper.FinanceSubmitMapper"> - <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.FinanceSubmit"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="name" column="name" jdbcType="VARCHAR"/> - <result property="company" column="company" jdbcType="VARCHAR"/> - <result property="consumption" column="consumption" jdbcType="DECIMAL"/> - <result property="recharge" column="recharge" jdbcType="DECIMAL"/> - <result property="refund" column="refund" jdbcType="DECIMAL"/> - <result property="agentRebate" column="agent_rebate" jdbcType="DECIMAL"/> - <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> - <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> - <result property="createUser" column="create_user" jdbcType="INTEGER"/> - <result property="updateUser" column="update_user" jdbcType="INTEGER"/> - </resultMap> - <select id="selectFinanceSubmitPageList" resultType="com.yuanchu.mom.pojo.FinanceSubmit"> select * from ( select fs.*, u.name create_user_name from finance_submit fs, user u -- Gitblit v1.9.3