package com.steerinfo.dil.service.impl; import com.alibaba.fastjson.JSON; import com.steerinfo.dil.feign.AmsFeign; import com.steerinfo.dil.mapper.DilRoleOrgcodeTableMapper; import com.steerinfo.dil.mapper.DilTableColumnRoleMapper; import com.steerinfo.dil.mapper.UniversalMapper; import com.steerinfo.dil.model.DilRoleOrgcodeTable; import com.steerinfo.dil.service.UniversalService; import com.steerinfo.dil.util.DataChange; import com.steerinfo.dil.util.HTTPRequestUtils; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; import java.util.*; /** * @ author :TXF * @ time :2021/10/19 18:05 */ @Service @EnableScheduling @EnableAsync public class UniversalServiceImpl implements UniversalService { @Resource private UniversalMapper universalMapper; @Resource private DilRoleOrgcodeTableMapper dilRoleOrgcodeTableMapper; @Resource private DilTableColumnRoleMapper dilTableColumnRoleMapper; @Autowired private AmsFeign amsFeign; @Override public Map getColumnShowHidden(Map map) { Map responseMap = new HashMap<>(); List> columnShowData = universalMapper.getColumnShowData(map); List> columnAllData = universalMapper.getColumnAllData(map); List columnHiddenData = universalMapper.getColumnHiddenData(map); responseMap.put("columnShowData", columnShowData); responseMap.put("columnAllData", columnAllData); responseMap.put("columnHiddenData", columnHiddenData); return responseMap; } @Override public synchronized int updateColumnShowHidden(Map map) { int i = 0; //首先删除原来的列 if ("默认方案".equals(map.get("schemeName"))) { dilRoleOrgcodeTableMapper.updateEnableStatus(map); return 0; } i += dilRoleOrgcodeTableMapper.deleteSchmenLColumnData(map); List columnHiddenData = (List) map.get("columnHiddenData"); List mapList = new ArrayList<>(); for (String s : columnHiddenData) { DilRoleOrgcodeTable dilRoleOrgcodeTable = new DilRoleOrgcodeTable(); BigDecimal columnId = dilTableColumnRoleMapper.selectColumnId(s, map.get("tableName").toString()); dilRoleOrgcodeTable.setColumnId(columnId); dilRoleOrgcodeTable.setUserName(map.get("userName").toString()); dilRoleOrgcodeTable.setOrgCode(map.get("orgCode").toString()); dilRoleOrgcodeTable.setEnableStatus(new BigDecimal(1)); dilRoleOrgcodeTable.setPrimaryName(map.get("schemeName").toString()); dilRoleOrgcodeTable.setPrimaryId(dilRoleOrgcodeTableMapper.getPrimaryId()); mapList.add(dilRoleOrgcodeTable); } //将该用户的所有方案都变成未启用状 dilRoleOrgcodeTableMapper.updateEnableStatus(map); if (mapList.size() > 0) { //然后再批量新增进去 i += dilRoleOrgcodeTableMapper.batchInsert(mapList); } return i; } @Override public Map getColumShowHideScheme(Map map) { Map responseMap = new HashMap<>(); List> schemeList = new ArrayList<>(); //每一个map; Map schemeMap = new HashMap<>(); //作为传值用的map Map attrMap = new HashMap<>(); //当前启用状态的值 String activeName = "默认方案"; //以下是方案的标题和名字 schemeMap.put("title", "默认方案"); schemeMap.put("name", "默认方案"); //以下是方案的显示数据和隐藏数据 List> columnAllData = universalMapper.getColumnAllData(map); schemeMap.put("columnAllData", columnAllData); responseMap.put("columnAllData", columnAllData); attrMap.put("tableName", map.get("tableName")); map.put("schemeName", activeName); List columnHiddenData = universalMapper.getColumnHiddenData(map); schemeMap.put("columnHiddenData", columnHiddenData); schemeList.add(schemeMap); responseMap.put("activeName", activeName); responseMap.put("columnHiddenData", columnHiddenData); //然后根据用户名和报表名称,去查询方案名称和启用状态 List> schemeMapAnotherData = universalMapper.getColumnAllScheme(map); for (Map schemeMapAnotherDataMap : schemeMapAnotherData) { Map itemMap = new HashMap<>(); itemMap.put("title", schemeMapAnotherDataMap.get("schemeName")); itemMap.put("name", schemeMapAnotherDataMap.get("schemeName")); itemMap.put("columnAllData", columnAllData); List itemColumnHiddenData = universalMapper.getColumnHiddenData(schemeMapAnotherDataMap); itemMap.put("columnHiddenData", itemColumnHiddenData); schemeList.add(itemMap); if (DataChange.dataToBigDecimal(schemeMapAnotherDataMap.get("enableStatus")).compareTo(new BigDecimal(1)) == 0) { responseMap.put("activeName", schemeMapAnotherDataMap.get("schemeName")); responseMap.put("columnHiddenData", itemColumnHiddenData); } } responseMap.put("schemeList", schemeList); return responseMap; } }