|  |  |  | 
|---|
|  |  |  | package com.zy.system.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONArray; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.plugins.Page; | 
|---|
|  |  |  | import com.core.common.DateUtils; | 
|---|
|  |  |  | import com.zy.system.entity.SaasLog; | 
|---|
|  |  |  | import com.zy.system.service.SaasLogService; | 
|---|
|  |  |  | import com.core.annotations.ManagerAuth; | 
|---|
|  |  |  | import com.core.common.BaseRes; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.common.*; | 
|---|
|  |  |  | import com.zy.common.web.BaseController; | 
|---|
|  |  |  | import com.zy.system.entity.SaasLog; | 
|---|
|  |  |  | import com.zy.system.mapper.SaasLogMapper; | 
|---|
|  |  |  | import com.zy.system.service.SaasLogService; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SaasLogService saasLogService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SaasLogMapper saasLogMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/saasLog/{id}/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok(saasLogService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/saasLogSummary/list/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R saasLogSummarylist(@RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | String io_time = (String) param.get("io_time"); | 
|---|
|  |  |  | Date sDate = null; | 
|---|
|  |  |  | Date eDate = null; | 
|---|
|  |  |  | if(!Cools.isEmpty(io_time) && io_time.contains(RANGE_TIME_LINK)) { | 
|---|
|  |  |  | String[] dates = io_time.split(RANGE_TIME_LINK); | 
|---|
|  |  |  | sDate = DateUtils.convert(dates[0]); | 
|---|
|  |  |  | eDate = DateUtils.convert(dates[1]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String type = (String) param.get("type"); | 
|---|
|  |  |  | String owner = (String) param.get("owner"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ArrayList<SaasLog> list = saasLogMapper.selectListSummary(sDate,eDate,type,owner); | 
|---|
|  |  |  | double sum = list.stream().mapToDouble(SaasLog::getAnfme).sum(); | 
|---|
|  |  |  | ListIterator<SaasLog> saasLogListIterator = list.listIterator(); | 
|---|
|  |  |  | String a = null; | 
|---|
|  |  |  | while (saasLogListIterator.hasNext()){ | 
|---|
|  |  |  | SaasLog next = saasLogListIterator.next(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!next.getOwner().equals(a)){ | 
|---|
|  |  |  | if (a != null) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ArrayList<SaasLog> list1 = saasLogMapper.selectListSummaryBySubtotal(a,sDate,eDate,type); | 
|---|
|  |  |  | for (SaasLog saasLog : list1) { | 
|---|
|  |  |  | saasLogListIterator.previous(); | 
|---|
|  |  |  | saasLog.setMatnr("小计"); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog); | 
|---|
|  |  |  | saasLogListIterator.next(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | saasLogListIterator.previous(); | 
|---|
|  |  |  | SaasLog saasLog1 = new SaasLog(); | 
|---|
|  |  |  | saasLog1.setOwner(a); | 
|---|
|  |  |  | saasLog1.setMatnr("合计"); | 
|---|
|  |  |  | saasLog1.setAnfme(list1.stream().mapToDouble(SaasLog::getAnfme).sum()); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog1); | 
|---|
|  |  |  | saasLogListIterator.next(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | a = next.getOwner(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ArrayList<SaasLog> list1 = saasLogMapper.selectListSummaryBySubtotal(a,sDate,eDate,type); | 
|---|
|  |  |  | for (SaasLog saasLog : list1) { | 
|---|
|  |  |  | saasLog.setMatnr("小计"); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SaasLog saasLog1 = new SaasLog(); | 
|---|
|  |  |  | saasLog1.setOwner(a); | 
|---|
|  |  |  | saasLog1.setMatnr("合计"); | 
|---|
|  |  |  | saasLog1.setAnfme(list1.stream().mapToDouble(SaasLog::getAnfme).sum()); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SaasLog saasLog = new SaasLog(); | 
|---|
|  |  |  | saasLog.setOwner("总计"); | 
|---|
|  |  |  | saasLog.setAnfme(sum); | 
|---|
|  |  |  | list.add(saasLog); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/saasLogSummary/export/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R summaryExport(@RequestBody JSONObject param){ | 
|---|
|  |  |  | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); | 
|---|
|  |  |  | Map<String, Object> map = excludeTrash(param.getJSONObject("saasLog")); | 
|---|
|  |  |  | String io_time = (String) map.get("io_time"); | 
|---|
|  |  |  | Date sDate = null; | 
|---|
|  |  |  | Date eDate = null; | 
|---|
|  |  |  | if(!Cools.isEmpty(io_time) && io_time.contains(RANGE_TIME_LINK)) { | 
|---|
|  |  |  | String[] dates = io_time.split(RANGE_TIME_LINK); | 
|---|
|  |  |  | sDate = DateUtils.convert(dates[0]); | 
|---|
|  |  |  | eDate = DateUtils.convert(dates[1]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String type = (String) map.get("type"); | 
|---|
|  |  |  | String owner = (String) map.get("owner"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ArrayList<SaasLog> list = saasLogMapper.selectListSummary(sDate,eDate,type,owner); | 
|---|
|  |  |  | double sum = list.stream().mapToDouble(SaasLog::getAnfme).sum(); | 
|---|
|  |  |  | ListIterator<SaasLog> saasLogListIterator = list.listIterator(); | 
|---|
|  |  |  | String a = null; | 
|---|
|  |  |  | while (saasLogListIterator.hasNext()){ | 
|---|
|  |  |  | SaasLog next = saasLogListIterator.next(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!next.getOwner().equals(a)){ | 
|---|
|  |  |  | if (a != null) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ArrayList<SaasLog> list1 = saasLogMapper.selectListSummaryBySubtotal(a,sDate,eDate,type); | 
|---|
|  |  |  | for (SaasLog saasLog : list1) { | 
|---|
|  |  |  | saasLogListIterator.previous(); | 
|---|
|  |  |  | saasLog.setMatnr("小计"); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog); | 
|---|
|  |  |  | saasLogListIterator.next(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | saasLogListIterator.previous(); | 
|---|
|  |  |  | SaasLog saasLog1 = new SaasLog(); | 
|---|
|  |  |  | saasLog1.setOwner(a); | 
|---|
|  |  |  | saasLog1.setMatnr("合计"); | 
|---|
|  |  |  | saasLog1.setAnfme(list1.stream().mapToDouble(SaasLog::getAnfme).sum()); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog1); | 
|---|
|  |  |  | saasLogListIterator.next(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | a = next.getOwner(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ArrayList<SaasLog> list1 = saasLogMapper.selectListSummaryBySubtotal(a,sDate,eDate,type); | 
|---|
|  |  |  | for (SaasLog saasLog : list1) { | 
|---|
|  |  |  | saasLog.setMatnr("小计"); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SaasLog saasLog1 = new SaasLog(); | 
|---|
|  |  |  | saasLog1.setOwner(a); | 
|---|
|  |  |  | saasLog1.setMatnr("合计"); | 
|---|
|  |  |  | saasLog1.setAnfme(list1.stream().mapToDouble(SaasLog::getAnfme).sum()); | 
|---|
|  |  |  | saasLogListIterator.add(saasLog1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SaasLog saasLog = new SaasLog(); | 
|---|
|  |  |  | saasLog.setOwner("总计"); | 
|---|
|  |  |  | saasLog.setAnfme(sum); | 
|---|
|  |  |  | list.add(saasLog); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(exportSupport(list, fields)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ | 
|---|
|  |  |  | for (Map.Entry<String, Object> entry : map.entrySet()){ | 
|---|
|  |  |  | String val = String.valueOf(entry.getValue()); | 
|---|