| | |
| | | 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()); |