Browse Source

单位评级优化

songwb 7 months ago
parent
commit
f126a69282

+ 123 - 29
ims-service/ims-eval/src/main/java/com/ims/eval/controller/OrganizationRatingController.java

@@ -2,25 +2,36 @@ package com.ims.eval.controller;
 
 
 
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ims.eval.cache.CacheContext;
 import com.ims.eval.config.CustomException;
 import com.ims.eval.config.CustomException;
+import com.ims.eval.dao.OrganizationEvaluationInfoMapper;
+import com.ims.eval.entity.OrganizationEvaluation;
 import com.ims.eval.entity.OrganizationRating;
 import com.ims.eval.entity.OrganizationRating;
+import com.ims.eval.entity.dto.response.MyuserResDTO;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.entity.dto.result.R;
+import com.ims.eval.service.IOrganizationEvaluationService;
 import com.ims.eval.service.IOrganizationRatingService;
 import com.ims.eval.service.IOrganizationRatingService;
+import com.ims.eval.service.custom.PostUserService;
 import com.ims.eval.util.ExcelUtil;
 import com.ims.eval.util.ExcelUtil;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -37,6 +48,41 @@ public class OrganizationRatingController {
 	@Autowired
 	@Autowired
 	private IOrganizationRatingService organizationRatingService;
 	private IOrganizationRatingService organizationRatingService;
 
 
+	@Autowired
+	private PostUserService postUserService;
+
+	@Autowired
+	private IOrganizationEvaluationService organizationEvaluationService;
+
+	@Resource
+	private OrganizationEvaluationInfoMapper organizationEvaluationInfoMapper;
+
+
+	/**
+	 * 保存数据
+	 */
+	@PostMapping(value = "/save-info")
+	public R save(@RequestBody List<OrganizationRating> orgRating) {
+		try {
+			boolean b = organizationRatingService.updateBatchById(orgRating);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("保存失败!");
+			}
+		} catch (CustomException e) {
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+
+
+	/**
+	 * 动态获取评级的业务阶段
+	 */
+	@GetMapping(value = "bin-section")
+	public R binSection(@RequestParam(value = "organizationYearRatingId") String organizationYearRatingId) {
+		return organizationRatingService.binSection(organizationYearRatingId);
+	}
 
 
 
 
 	/**
 	/**
@@ -51,6 +97,7 @@ public class OrganizationRatingController {
 
 
 	/**
 	/**
 	 * 查询
 	 * 查询
+	 *
 	 * @param pageNum
 	 * @param pageNum
 	 * @param pageSize
 	 * @param pageSize
 	 * @param id
 	 * @param id
@@ -60,25 +107,49 @@ public class OrganizationRatingController {
 	 */
 	 */
 	@GetMapping(value = "list")
 	@GetMapping(value = "list")
 	public R list(@RequestParam(value = "pageNum") Integer pageNum,
 	public R list(@RequestParam(value = "pageNum") Integer pageNum,
-				  @RequestParam(value = "pageSize") Integer pageSize,
-				  @RequestParam(value = "id", required = false) String id,
-				  @RequestParam(value = "organizationYearRatingId", required = false) String organizationYearRatingId,
-				  @RequestParam(value = "binSection", required = false) String binSection,
-				  @RequestParam(value = "year", required = false) String year,
-				  @RequestParam(value = "organizationShortName", required = false) String organizationShortName,
-				  @RequestParam(value = "organizationId", required = false) String organizationId,
-				  @RequestParam(value = "safetyEnvProtection", required = false) String safetyEnvProtection,
-				  @RequestParam(value = "veto", required = false) String veto,
-				  @RequestParam(value = "netProfit", required = false) String netProfit,
-				  @RequestParam(value = "compositeScore", required = false) String compositeScore,
-				  @RequestParam(value = "annualTarget", required = false) String annualTarget,
-				  @RequestParam(value = "bonusPoint", required = false) String bonusPoint,
-				  @RequestParam(value = "compositeScoreRaking", required = false) String compositeScoreRaking,
-				  @RequestParam(value = "projectLevel", required = false) String projectLevel,
-				  @RequestParam(value = "score", required = false) String score) {
-		IPage<OrganizationRating> list = organizationRatingService.list(pageNum, pageSize, id, organizationYearRatingId, binSection, year, organizationShortName, organizationId, safetyEnvProtection, veto, netProfit, compositeScore, annualTarget, bonusPoint, compositeScoreRaking, projectLevel,score);
-		if (list.getRecords().isEmpty()) {
-			return R.ok().data("");
+							  @RequestParam(value = "pageSize") Integer pageSize,
+							  @RequestParam(value = "id", required = false) String id,
+							  @RequestParam(value = "organizationYearRatingId", required = false) String organizationYearRatingId,
+							  @RequestParam(value = "binSection", required = false) String binSection,
+							  @RequestParam(value = "year", required = false) String year,
+							  @RequestParam(value = "organizationShortName", required = false) String organizationShortName,
+							  @RequestParam(value = "organizationId", required = false) String organizationId,
+							  @RequestParam(value = "safetyEnvProtection", required = false) String safetyEnvProtection,
+							  @RequestParam(value = "veto", required = false) String veto,
+							  @RequestParam(value = "netProfit", required = false) String netProfit,
+							  @RequestParam(value = "compositeScore", required = false) String compositeScore,
+							  @RequestParam(value = "annualTarget", required = false) String annualTarget,
+							  @RequestParam(value = "bonusPoint", required = false) String bonusPoint,
+							  @RequestParam(value = "compositeScoreRaking", required = false) String compositeScoreRaking,
+							  @RequestParam(value = "projectLevel", required = false) String projectLevel,
+							  @RequestParam(value = "score", required = false) String score) {
+		LambdaQueryWrapper<OrganizationEvaluation> qw = new LambdaQueryWrapper<>();
+		qw.eq(OrganizationEvaluation::getId, organizationYearRatingId);
+		List<OrganizationEvaluation> orgEva = organizationEvaluationService.list(qw);
+		StringBuilder sb = new StringBuilder();
+		sb.append("NDKP_").append(orgEva.get(0).getYear()).append("_1");
+
+		ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+		HttpServletRequest request = Objects.requireNonNull(attributes).getRequest();
+		JSONObject json = postUserService.getSysUser(request.getHeader("code"), request.getHeader("Blade-Auth"), request);
+		MyuserResDTO user = JSONObject.parseObject(json.getJSONObject("data").toJSONString(), MyuserResDTO.class);
+
+		IPage<OrganizationRating> list = organizationRatingService.list(pageNum, pageSize, id, organizationYearRatingId, binSection, year, organizationShortName, organizationId, safetyEnvProtection, veto, netProfit, compositeScore, annualTarget, bonusPoint, compositeScoreRaking, projectLevel, score);
+		List<OrganizationRating> ls = null;
+		organizationEvaluationInfoMapper.selectEvaluationInfoList();
+		String s = CacheContext.childCompanyId.get(user.getId());
+		if (s != null) {
+			Set<String> childList = CacheContext.getChildList(s, sb.toString());
+			ls = list.getRecords().stream().filter(a -> childList.contains(a.getOrganizationId())).collect(Collectors.toList());
+			if (ls.isEmpty()) {
+				return R.ok().data("");
+			}
+			int f = (pageNum - 1) * pageSize;
+			int tol = Math.min(f + pageSize, ls.size());
+			List<OrganizationRating> lsPage = ls.subList(f, tol);
+			IPage<OrganizationRating> lor = new Page<>(pageNum, pageSize, ls.size());
+			lor.setRecords(lsPage);
+			return R.ok().data(lor);
 		}
 		}
 		return R.ok().data(list);
 		return R.ok().data(list);
 	}
 	}
@@ -196,17 +267,40 @@ public class OrganizationRatingController {
 	}
 	}
 
 
 
 
-
 	/**
 	/**
 	 * 导出文件
 	 * 导出文件
 	 */
 	 */
 	@GetMapping(value = "exportExcel", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
 	@GetMapping(value = "exportExcel", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
 	public R exportExcel(HttpServletResponse response,
 	public R exportExcel(HttpServletResponse response,
-					   @RequestParam(value = "binSection", required = false) String binSection,
-					   @RequestParam(value = "year", required = false) String year) throws IOException {
+						 @RequestParam(value = "organizationYearRatingId", required = false) String organizationYearRatingId,
+						 @RequestParam(value = "binSection", required = false) String binSection,
+						 @RequestParam(value = "year", required = false) String year) throws IOException {
 
 
-		organizationRatingService.exportExcel(response,binSection,year);
-		return R.ok();
+		LambdaQueryWrapper<OrganizationEvaluation> qw = new LambdaQueryWrapper<>();
+		qw.eq(OrganizationEvaluation::getId, organizationYearRatingId);
+		List<OrganizationEvaluation> orgEva = organizationEvaluationService.list(qw);
+		StringBuilder sb = new StringBuilder();
+		sb.append("NDKP_").append(orgEva.get(0).getYear()).append("_1");
+
+		ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+		HttpServletRequest request = Objects.requireNonNull(attributes).getRequest();
+		JSONObject json = postUserService.getSysUser(request.getHeader("code"), request.getHeader("Blade-Auth"), request);
+		MyuserResDTO user = JSONObject.parseObject(json.getJSONObject("data").toJSONString(), MyuserResDTO.class);
+
+		IPage<OrganizationRating> listData = organizationRatingService.list(1, 100000, null, organizationYearRatingId, binSection, year,
+			null, null,
+			null, null, null, null, null, null, null, null, null);
+
+		List<OrganizationRating> ls = null;
+		organizationEvaluationInfoMapper.selectEvaluationInfoList();
+		String s = CacheContext.childCompanyId.get(user.getId());
+		if (s != null) {
+			Set<String> childList = CacheContext.getChildList(s, sb.toString());
+			ls = listData.getRecords().stream().filter(a -> childList.contains(a.getOrganizationId())).collect(Collectors.toList());
+			return organizationRatingService.exportExcel(response,ls,binSection,year);
+		}
+		ls = listData.getRecords();
+		return organizationRatingService.exportExcel(response,ls,binSection,year);
 	}
 	}
 
 
 
 
@@ -217,7 +311,7 @@ public class OrganizationRatingController {
 	public R importExcel(@RequestParam("file") MultipartFile file,
 	public R importExcel(@RequestParam("file") MultipartFile file,
 						 @RequestParam(value = "binSection") String binSection,
 						 @RequestParam(value = "binSection") String binSection,
 						 @RequestParam(value = "year") String year
 						 @RequestParam(value = "year") String year
-						 ) {
-		return organizationRatingService.importExcel(file,binSection,year);
+	) {
+		return organizationRatingService.importExcel(file, binSection, year);
 	}
 	}
 }
 }

+ 9 - 11
ims-service/ims-eval/src/main/java/com/ims/eval/controller/OrganizationYearRatingController.java

@@ -3,13 +3,16 @@ package com.ims.eval.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ims.eval.config.CustomException;
 import com.ims.eval.config.CustomException;
+import com.ims.eval.entity.OrganizationEvaluation;
 import com.ims.eval.entity.OrganizationYearRating;
 import com.ims.eval.entity.OrganizationYearRating;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.entity.dto.result.R;
+import com.ims.eval.service.IOrganizationEvaluationService;
 import com.ims.eval.service.IOrganizationYearRatingService;
 import com.ims.eval.service.IOrganizationYearRatingService;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.Arrays;
 
 
 /**
 /**
@@ -24,11 +27,13 @@ import java.util.Arrays;
 @RequestMapping("//organization-year-rating")
 @RequestMapping("//organization-year-rating")
 public class OrganizationYearRatingController {
 public class OrganizationYearRatingController {
 
 
+	@Autowired
+	private IOrganizationYearRatingService organizationYearRatingService;
 
 
 
 
+	@Resource
+	private IOrganizationEvaluationService iOrganizationEvaluationService;
 
 
-	@Autowired
-	private IOrganizationYearRatingService organizationYearRatingService;
 
 
 	/**
 	/**
 	 * 查询
 	 * 查询
@@ -63,17 +68,10 @@ public class OrganizationYearRatingController {
 
 
 	@PostMapping(value = "/save")
 	@PostMapping(value = "/save")
 	@ApiOperation(value = "新增(修改)", notes = "新增(修改)")
 	@ApiOperation(value = "新增(修改)", notes = "新增(修改)")
-	public R addAll(@RequestBody OrganizationYearRating organizationYearRating) {
+	public R addAll(@RequestBody OrganizationEvaluation organizationEvaluation) {
 
 
 		try {
 		try {
-			StringBuilder sbcode = new StringBuilder("ndpj_").append(organizationYearRating.getYear());
-			if(null !=organizationYearRating && null == organizationYearRating.getId()){
-				sbcode.append("_001");
-				organizationYearRating.setStage("流程未启动");
-				organizationYearRating.setYearRatingCode(sbcode.toString());
-			}
-
-			boolean b = organizationYearRatingService.saveOrUpdate(organizationYearRating);
+			boolean b = iOrganizationEvaluationService.saveOrUpdate2(organizationEvaluation);
 			if (b) {
 			if (b) {
 				return R.ok().data(b);
 				return R.ok().data(b);
 			} else {
 			} else {

+ 3 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/dao/OrganizationEvaluationInfoMapper.java

@@ -68,6 +68,9 @@ public interface OrganizationEvaluationInfoMapper extends BaseMapper<Organizatio
 																	@Param("organizationId") String organizationId);
 																	@Param("organizationId") String organizationId);
 
 
 	@DataPermission(type = true, isPermission = true, jbtype = true)
 	@DataPermission(type = true, isPermission = true, jbtype = true)
+	List<OrganizationEvaluationInfoResDTO> selectEvaluationInfoList();
+
+	@DataPermission(type = true, isPermission = true, jbtype = true)
 	List<OrganizationEvaluationInfoResDTO> selNDPJInfoList(@Param("organizationEvaluationId") String organizationEvaluationId,
 	List<OrganizationEvaluationInfoResDTO> selNDPJInfoList(@Param("organizationEvaluationId") String organizationEvaluationId,
 																	@Param("organizationShortName") String organizationShortName,
 																	@Param("organizationShortName") String organizationShortName,
 																	@Param("indicatorId") String indicatorId,
 																	@Param("indicatorId") String indicatorId,

+ 2 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationEvaluationService.java

@@ -51,4 +51,6 @@ public interface IOrganizationEvaluationService extends IService<OrganizationEva
 
 
 
 
 	OrganizationEvaluation getOrganizationEvaluation(String id);
 	OrganizationEvaluation getOrganizationEvaluation(String id);
+
+	Boolean saveOrUpdate2(OrganizationEvaluation entity);
 }
 }

+ 4 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationRatingService.java

@@ -32,9 +32,12 @@ public interface IOrganizationRatingService extends IService<OrganizationRating>
 
 
 	R grade(List<OrganizationRating> orgRating);
 	R grade(List<OrganizationRating> orgRating);
 
 
-	void exportExcel(HttpServletResponse response, String binSection, String year) throws IOException;
+	R exportExcel(HttpServletResponse response, List<OrganizationRating> ls,String binSection,String year) throws IOException;
 
 
 	R importExcel(MultipartFile file,String binSection,String year);
 	R importExcel(MultipartFile file,String binSection,String year);
 
 
 	int clearOldData(String year);
 	int clearOldData(String year);
+
+	R binSection(String organizationYearRatingId);
+
 }
 }

+ 1 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/custom/impl/WorkflowServiceImpl.java

@@ -470,7 +470,7 @@ public class WorkflowServiceImpl {
 				deptAssessmentDeclarationService.editState(bizKey, taskName, instId, destination);
 				deptAssessmentDeclarationService.editState(bizKey, taskName, instId, destination);
 				break;
 				break;
 			case "nddwpj"://年度单位评级
 			case "nddwpj"://年度单位评级
-				organizationYearRatingService.editState(bizKey, taskName, instId, destination);
+				organizationEvaluationService.editState(bizKey, taskName, instId);
 				break;
 				break;
 		}
 		}
 		return true;
 		return true;

+ 9 - 8
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluationPortalServiceImpl.java

@@ -151,8 +151,8 @@ public class EvaluationPortalServiceImpl extends ServiceImpl<EvaluationPortalMap
 		EvaluationPortal homeYear = null;
 		EvaluationPortal homeYear = null;
 		try {
 		try {
 			LambdaQueryWrapper<OrganizationEvaluation> lqw = new LambdaQueryWrapper<>();
 			LambdaQueryWrapper<OrganizationEvaluation> lqw = new LambdaQueryWrapper<>();
-			LambdaQueryWrapper<OrganizationEvaluation> eq = lqw.eq(OrganizationEvaluation::getStage, "流程已结束");
-			List<OrganizationEvaluation> list = organizationEvaluationService.list(eq);
+			lqw.eq(OrganizationEvaluation::getStage, "流程已结束");
+			List<OrganizationEvaluation> list = organizationEvaluationService.list(lqw);
 			if (list == null || list.isEmpty()) {
 			if (list == null || list.isEmpty()) {
 				hs.put("newyear", "2022");
 				hs.put("newyear", "2022");
 				hs.put("year", "");
 				hs.put("year", "");
@@ -162,7 +162,8 @@ public class EvaluationPortalServiceImpl extends ServiceImpl<EvaluationPortalMap
 			Map<String, List<OrganizationEvaluation>> cc = list.stream().collect(Collectors.groupingBy(OrganizationEvaluation::getCheckCycle));
 			Map<String, List<OrganizationEvaluation>> cc = list.stream().collect(Collectors.groupingBy(OrganizationEvaluation::getCheckCycle));
 			List<OrganizationEvaluation> jdkp = cc.get("JDKP");
 			List<OrganizationEvaluation> jdkp = cc.get("JDKP");
 			List<OrganizationEvaluation> ndkp = cc.get("NDKP");
 			List<OrganizationEvaluation> ndkp = cc.get("NDKP");
-			if ((jdkp == null || jdkp.isEmpty()) && (ndkp == null || ndkp.isEmpty())) {
+			List<OrganizationEvaluation> dwpj = cc.get("DWPJ");
+			if ((jdkp == null || jdkp.isEmpty()) && (dwpj == null || dwpj.isEmpty())) {
 				hs.put("newyear", "2022");
 				hs.put("newyear", "2022");
 				hs.put("year", "");
 				hs.put("year", "");
 				hs.put("season", "");
 				hs.put("season", "");
@@ -181,14 +182,14 @@ public class EvaluationPortalServiceImpl extends ServiceImpl<EvaluationPortalMap
 				hs.put("year", latestData.getYear());
 				hs.put("year", latestData.getYear());
 				hs.put("season", latestData.getMonth());
 				hs.put("season", latestData.getMonth());
 			}
 			}
-			if (ndkp == null || ndkp.isEmpty()) {
+			if (dwpj == null || dwpj.isEmpty()) {
 				hs.put("newyear", "2022");
 				hs.put("newyear", "2022");
-			} else if (ndkp.size() == 1) {
-				hs.put("newyear", ndkp.get(0).getYear());
+			} else if (dwpj.size() == 1) {
+				hs.put("newyear", dwpj.get(0).getYear());
 			} else {
 			} else {
 				Comparator<OrganizationEvaluation> comparator = Comparator.comparing(OrganizationEvaluation::getYear);
 				Comparator<OrganizationEvaluation> comparator = Comparator.comparing(OrganizationEvaluation::getYear);
-				Collections.sort(ndkp, comparator.reversed());
-				OrganizationEvaluation latestData = ndkp.get(0);
+				Collections.sort(dwpj, comparator.reversed());
+				OrganizationEvaluation latestData = dwpj.get(0);
 				hs.put("newyear", latestData.getYear());
 				hs.put("newyear", latestData.getYear());
 			}
 			}
 
 

+ 10 - 12
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationServiceImpl.java

@@ -278,6 +278,12 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 	}
 	}
 
 
 
 
+	@Override
+	public Boolean saveOrUpdate2(OrganizationEvaluation entity) {
+		return super.saveOrUpdate(entity);
+	}
+
+
 	/**
 	/**
 	 * 如果年度评级存在,单位评级不存在,则将年度评级的数据复制到单位评级
 	 * 如果年度评级存在,单位评级不存在,则将年度评级的数据复制到单位评级
 	 */
 	 */
@@ -374,10 +380,10 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 				}
 				}
 
 
 				//科技创新
 				//科技创新
-				List<EvaluateRule> kjevaluateRuleList = evaluateRuleService.getEvaluateRuleByYear(CacheContext.bsnCodeObject.get("KJCX").getId(), CacheContext.bseCodeObject.get("KJCX").getId(), "NDKP", evaluationRule.getYear());
-				if (null != kjevaluateRuleList && kjevaluateRuleList.size() > 0) {
-					evaluateRuleList.addAll(kjevaluateRuleList);
-				}
+//				List<EvaluateRule> kjevaluateRuleList = evaluateRuleService.getEvaluateRuleByYear(CacheContext.bsnCodeObject.get("KJCX").getId(), CacheContext.bseCodeObject.get("KJCX").getId(), "NDKP", evaluationRule.getYear());
+//				if (null != kjevaluateRuleList && kjevaluateRuleList.size() > 0) {
+//					evaluateRuleList.addAll(kjevaluateRuleList);
+//				}
 
 
 				//前期
 				//前期
 				double qqWeight = evaluationRule.getQqWeight();
 				double qqWeight = evaluationRule.getQqWeight();
@@ -783,18 +789,10 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 		if (infocount > 0) {
 		if (infocount > 0) {
 			throw new CustomException("已发起流程不允许删除");
 			throw new CustomException("已发起流程不允许删除");
 		}
 		}
-		/*List<OrganizationEvaluation> loe = new ArrayList<>();
-		for (Serializable s : idList) {
-			OrganizationEvaluation organizationEvaluation = baseMapper.selectById(s);
-			loe.add(organizationEvaluation);
-		}*/
 		boolean b = super.removeByIds(idList);
 		boolean b = super.removeByIds(idList);
 		if (!b) {
 		if (!b) {
 			throw new CustomException("删除失败");
 			throw new CustomException("删除失败");
 		}
 		}
-		/*for (OrganizationEvaluation org : loe) {
-			iOrganizationRatingService.
-		}*/
 		return true;
 		return true;
 	}
 	}
 
 

+ 93 - 48
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationRatingServiceImpl.java

@@ -5,10 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ims.eval.cache.CacheContext;
 import com.ims.eval.cache.CacheContext;
-import com.ims.eval.dao.OrganizationEvaluationInfoMapper;
 import com.ims.eval.dao.OrganizationRatingMapper;
 import com.ims.eval.dao.OrganizationRatingMapper;
 import com.ims.eval.entity.*;
 import com.ims.eval.entity.*;
-import com.ims.eval.entity.dto.response.OrganizationEvaluationInfoResDTO;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.service.*;
 import com.ims.eval.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -64,9 +62,6 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 	private IEvaluationPortalService iEvaluationPortalService;
 	private IEvaluationPortalService iEvaluationPortalService;
 
 
 	@Resource
 	@Resource
-	private OrganizationEvaluationInfoMapper organizationEvaluationInfoMapper;
-
-	@Resource
 	private IEvaluateReportService iEvaluateReportService;
 	private IEvaluateReportService iEvaluateReportService;
 
 
 	@Resource
 	@Resource
@@ -158,7 +153,7 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 	 * 导出
 	 * 导出
 	 */
 	 */
 	@Override
 	@Override
-	public void exportExcel(HttpServletResponse response, String binSection, String year) throws IOException {
+	public R exportExcel(HttpServletResponse response, List<OrganizationRating> ls, String binSection, String year) throws IOException {
 		// 设置响应头信息,以附件形式下载
 		// 设置响应头信息,以附件形式下载
 		response.setHeader("Content-Disposition", "attachment; filename=organization_rating.xlsx");
 		response.setHeader("Content-Disposition", "attachment; filename=organization_rating.xlsx");
 		response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
 		response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@@ -171,24 +166,22 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 
 
 		// 创建表头
 		// 创建表头
 		Row headerRow = sheet.createRow(0);
 		Row headerRow = sheet.createRow(0);
-		List<String> headers = Arrays.asList("考评单位", "业务板块", "考评年度", "年度安全环保评级", "否决事项:无0,有1", "净利润", "经营业绩考核综合得分百分比", "生产经营评级", "年度项目进度目标完成率",
+		List<String> headers = Arrays.asList("考评单位", "业务板块", "考评年度", "年度安全环保评级", "否决事项:无0,有1", "净利润", "经营业绩考核综合得分%", "生产经营评级", "年度项目进度目标完成率",
 			"先进性指标考核得分有无加分", "前期评级", "基建工程综合得分排名", "基建工程项目等级", "基建评级", "综合得分", "年度评级");
 			"先进性指标考核得分有无加分", "前期评级", "基建工程综合得分排名", "基建工程项目等级", "基建评级", "综合得分", "年度评级");
 
 
-
 		for (int i = 0; i < headers.size(); i++) {
 		for (int i = 0; i < headers.size(); i++) {
 			Cell cell = headerRow.createCell(i);
 			Cell cell = headerRow.createCell(i);
 			cell.setCellValue(headers.get(i));
 			cell.setCellValue(headers.get(i));
 		}
 		}
 
 
-
 		//行数据
 		//行数据
-		Page<OrganizationRating> page = new Page<>(1, 100000);
-		IPage<OrganizationRating> orgRating = baseMapper.selectList(page, null, null, binSection, year, null, null,
-			null, null, null, null, null, null, null, null, null);
+//		Page<OrganizationRating> page = new Page<>(1, 100000);
+//		IPage<OrganizationRating> orgRating = baseMapper.selectList(page, null, null, binSection, year, null, null,
+//			null, null, null, null, null, null, null, null, null);
 
 
 		// 填充数据到工作表
 		// 填充数据到工作表
 		int rowIndex = 1; // 从第二行开始填充数据(第一行是表头)
 		int rowIndex = 1; // 从第二行开始填充数据(第一行是表头)
-		for (OrganizationRating or : orgRating.getRecords()) {
+		for (OrganizationRating or : ls) {
 			Row row = sheet.createRow(rowIndex++);
 			Row row = sheet.createRow(rowIndex++);
 
 
 			// 设置数据
 			// 设置数据
@@ -241,7 +234,7 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 			// 关闭工作簿
 			// 关闭工作簿
 			workbook.close();
 			workbook.close();
 		}
 		}
-
+		return R.ok();
 	}
 	}
 
 
 
 
@@ -301,7 +294,23 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 				lep.add(ep);
 				lep.add(ep);
 			}
 			}
 		}
 		}
-		boolean b = iEvaluationPortalService.saveBatch(lep);
+//		boolean b = iEvaluationPortalService.saveBatch(lep);
+		List<EvaluationPortal> leUpdate = new ArrayList<>();
+		List<EvaluationPortal> leSave = new ArrayList<>();
+		for (EvaluationPortal evaluationPortal : lep) {
+			LambdaQueryWrapper<EvaluationPortal> lqw = new LambdaQueryWrapper<>();
+			lqw.eq(EvaluationPortal::getCompany, evaluationPortal.getCompany()).eq(EvaluationPortal::getYear, evaluationPortal.getYear())
+				.isNull(EvaluationPortal::getSeason).eq(EvaluationPortal::getBinSection, evaluationPortal.getBinSection());
+			List<EvaluationPortal> list = iEvaluationPortalService.list(lqw);
+			if (null == list || list.isEmpty()) {
+				leSave.add(evaluationPortal);
+			} else {
+				evaluationPortal.setId(list.get(0).getId());
+				leUpdate.add(evaluationPortal);
+			}
+		}
+		boolean save = iEvaluationPortalService.saveBatch(leSave);
+		boolean update = iEvaluationPortalService.updateBatchById(leUpdate);
 	}
 	}
 
 
 
 
@@ -559,7 +568,8 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 		organizationYearRatingId, String binSection, String year, String organizationShortName, String organizationId, String safetyEnvProtection,
 		organizationYearRatingId, String binSection, String year, String organizationShortName, String organizationId, String safetyEnvProtection,
 										  String veto, String netProfit, String compositeScore, String annualTarget, String bonusPoint, String compositeScoreRaking, String projectLevel, String score) {
 										  String veto, String netProfit, String compositeScore, String annualTarget, String bonusPoint, String compositeScoreRaking, String projectLevel, String score) {
 		List<BinSection> bsnList = CacheContext.bsnList;
 		List<BinSection> bsnList = CacheContext.bsnList;
-		Map<String, List<BinSection>> bsnMap = bsnList.stream().collect(Collectors.groupingBy(BinSection::getId));
+		List<BinSection> bsnls = bsnList.stream().filter(s -> null != s.getMemo1() && s.getMemo1().equals("DWPJ")).collect(Collectors.toList());
+		Map<String, List<BinSection>> bsnMap = bsnls.stream().collect(Collectors.groupingBy(BinSection::getId));
 		String[] s = organizationYearRatingId.split("_");
 		String[] s = organizationYearRatingId.split("_");
 
 
 		Page<OrganizationRating> page = new Page<>(pageNum, pageSize);
 		Page<OrganizationRating> page = new Page<>(pageNum, pageSize);
@@ -591,47 +601,82 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 	}
 	}
 
 
 
 
-	private void getRatingInfo(String organizationYearRatingId, String year, String s, Map<String, List<BinSection>> bsnMap) {
-		List<OrganizationEvaluationInfoResDTO> infoResDTOList = organizationEvaluationInfoMapper.selectEvaluationInfoList(s, "", "", "", "", "");
-		if (null == infoResDTOList || infoResDTOList.isEmpty()) {
-			return;
+	@Override
+	public R binSection(String organizationYearRatingId) {
+		List<BinSection> bsnList = CacheContext.bsnList;
+
+		Map<String, List<BinSection>> bsnMap = bsnList.stream().collect(Collectors.groupingBy(BinSection::getId));
+		String[] s = organizationYearRatingId.split("_");
+
+		List<EvaluateReport> evaReport = iEvaluateReportService.list(s[0], "");
+		if (null == evaReport || evaReport.isEmpty()) {
+			return R.ok();
+		}
+		Set<BinSection> lb = new HashSet<>();
+		for (EvaluateReport evaluateReport : evaReport) {
+			LambdaQueryWrapper<EvaluateReportInfo> lqw = new LambdaQueryWrapper<>();
+			lqw.eq(EvaluateReportInfo::getEvaluateReportId, evaluateReport.getId());
+			List<EvaluateReportInfo> evaReportInfos = evaluateReportInfoService.list(lqw);
+			if (null != evaReportInfos && !(evaReportInfos.isEmpty())) {
+				lb.add(bsnMap.get(evaluateReport.getBinSection()).get(0));
+			}
 		}
 		}
-		Map<String, List<OrganizationEvaluationInfoResDTO>> binSec = infoResDTOList.stream()
-			.collect(Collectors.groupingBy(OrganizationEvaluationInfoResDTO::getBinSection));
-
-		for (Map.Entry<String, List<OrganizationEvaluationInfoResDTO>> entry : binSec.entrySet()) {
-			List<OrganizationRating> lors = new ArrayList<>();
-			List<OrganizationEvaluationInfoResDTO> orgEvaInfos = entry.getValue();
-
-			List<EvaluateReport> evaReport = iEvaluateReportService.list(s, entry.getKey());
-			List<EvaluateReportInfo> evaReportInfos = null;
-			if ((null!=evaReport) &&(!evaReport.isEmpty())) {
-				LambdaQueryWrapper<EvaluateReportInfo> lqw = new LambdaQueryWrapper<>();
-				lqw.eq(EvaluateReportInfo::getEvaluateReportId, evaReport.get(0).getId());
-				evaReportInfos = evaluateReportInfoService.list(lqw);
+		List<BinSection> lbs = new ArrayList<>(lb);
+		for (BinSection binSection : lbs) {
+			if ("HD".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("1");
+			}else if ("SD".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("2");
+			}else if ("XNYFG".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("3");
+			}else if ("MDYTH".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("4");
+			}else if ("GJYW".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("5");
+			}else if ("ZHZC".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("6");
+			}else if ("TJGS".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("7");
+			}else if ("GCGS".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("8");
+			}else if ("QQ".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("9");
+			}else if ("JJ".equals(binSection.getSectionCode())) {
+				binSection.setMemo4("10");
 			}
 			}
+		}
+		List<BinSection> col = lbs.stream().sorted(Comparator.comparing(BinSection::getMemo4)).collect(Collectors.toList());
+		return R.ok().data(col);
+	}
 
 
-			Map<String, List<OrganizationEvaluationInfoResDTO>> orgName = orgEvaInfos.stream()
-				.collect(Collectors.groupingBy(OrganizationEvaluationInfoResDTO::getOrganizationShortName));
-			for (String keys : orgName.keySet()) {
-				OrganizationEvaluationInfoResDTO oe = orgName.get(keys).get(0);
+
+	private void getRatingInfo(String organizationYearRatingId, String year, String s, Map<String, List<BinSection>> bsnMap) {
+		List<EvaluateReport> evaReport = iEvaluateReportService.list(s, "");
+		if (null == evaReport || evaReport.isEmpty()) {
+			throw new RuntimeException("考评报告未生成,请先生成考评报告");
+		}
+//		Set<BinSection> lb = new HashSet<>();
+		List<OrganizationRating> lors = new ArrayList<>();
+		for (EvaluateReport evaluateReport : evaReport) {
+			LambdaQueryWrapper<EvaluateReportInfo> lqw = new LambdaQueryWrapper<>();
+			lqw.eq(EvaluateReportInfo::getEvaluateReportId, evaluateReport.getId());
+			List<EvaluateReportInfo> evaReportInfos = evaluateReportInfoService.list(lqw);
+			if (null == evaReportInfos || evaReportInfos.isEmpty()) {
+				continue;
+			}
+			for (EvaluateReportInfo evaReportInfo : evaReportInfos) {
 				OrganizationRating or = new OrganizationRating();
 				OrganizationRating or = new OrganizationRating();
 				or.setOrganizationYearRatingId(organizationYearRatingId);
 				or.setOrganizationYearRatingId(organizationYearRatingId);
-				or.setOrganizationShortName(oe.getOrganizationShortName());
-				or.setOrganizationId(oe.getOrganizationId());
+				or.setOrganizationShortName(evaReportInfo.getOrganizationName());
+				or.setOrganizationId(evaReportInfo.getOrganizationId());
 				or.setYear(year);
 				or.setYear(year);
-				or.setBinSection(bsnMap.get(oe.getBinSection()).get(0).getSectionCode());
-				if ((evaReportInfos != null) && (!evaReportInfos.isEmpty())) {
-					for (EvaluateReportInfo evaReportInfo : evaReportInfos) {
-						if (evaReportInfo.getOrganizationName().equals(keys)) {
-							or.setScore(evaReportInfo.getScore() != 0.0 ? String.valueOf(evaReportInfo.getScore()) : null);
-						}
-					}
-				}
+				or.setBinSection(bsnMap.get(evaluateReport.getBinSection()).get(0).getSectionCode());
+				or.setScore(evaReportInfo.getScore() != 0.0 ? String.valueOf(evaReportInfo.getScore()) : null);
 				lors.add(or);
 				lors.add(or);
+//				lb.add(bsnMap.get(evaluateReport.getBinSection()).get(0));
 			}
 			}
-			iOrganizationRatingService.saveBatch(lors);
 		}
 		}
+		iOrganizationRatingService.saveBatch(lors);
 	}
 	}