Bläddra i källkod

单位评级优化

songwb 7 månader sedan
förälder
incheckning
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 com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.dao.OrganizationEvaluationInfoMapper;
+import com.ims.eval.entity.OrganizationEvaluation;
 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.service.IOrganizationEvaluationService;
 import com.ims.eval.service.IOrganizationRatingService;
+import com.ims.eval.service.custom.PostUserService;
 import com.ims.eval.util.ExcelUtil;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 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 javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 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>
@@ -37,6 +48,41 @@ public class OrganizationRatingController {
 	@Autowired
 	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 pageSize
 	 * @param id
@@ -60,25 +107,49 @@ public class OrganizationRatingController {
 	 */
 	@GetMapping(value = "list")
 	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);
 	}
@@ -196,17 +267,40 @@ public class OrganizationRatingController {
 	}
 
 
-
 	/**
 	 * 导出文件
 	 */
 	@GetMapping(value = "exportExcel", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
 	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,
 						 @RequestParam(value = "binSection") String binSection,
 						 @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.ims.eval.config.CustomException;
+import com.ims.eval.entity.OrganizationEvaluation;
 import com.ims.eval.entity.OrganizationYearRating;
 import com.ims.eval.entity.dto.result.R;
+import com.ims.eval.service.IOrganizationEvaluationService;
 import com.ims.eval.service.IOrganizationYearRatingService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.Arrays;
 
 /**
@@ -24,11 +27,13 @@ import java.util.Arrays;
 @RequestMapping("//organization-year-rating")
 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")
 	@ApiOperation(value = "新增(修改)", notes = "新增(修改)")
-	public R addAll(@RequestBody OrganizationYearRating organizationYearRating) {
+	public R addAll(@RequestBody OrganizationEvaluation organizationEvaluation) {
 
 		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) {
 				return R.ok().data(b);
 			} 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);
 
 	@DataPermission(type = true, isPermission = true, jbtype = true)
+	List<OrganizationEvaluationInfoResDTO> selectEvaluationInfoList();
+
+	@DataPermission(type = true, isPermission = true, jbtype = true)
 	List<OrganizationEvaluationInfoResDTO> selNDPJInfoList(@Param("organizationEvaluationId") String organizationEvaluationId,
 																	@Param("organizationShortName") String organizationShortName,
 																	@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);
+
+	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);
 
-	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);
 
 	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);
 				break;
 			case "nddwpj"://年度单位评级
-				organizationYearRatingService.editState(bizKey, taskName, instId, destination);
+				organizationEvaluationService.editState(bizKey, taskName, instId);
 				break;
 		}
 		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;
 		try {
 			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()) {
 				hs.put("newyear", "2022");
 				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));
 			List<OrganizationEvaluation> jdkp = cc.get("JDKP");
 			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("year", "");
 				hs.put("season", "");
@@ -181,14 +182,14 @@ public class EvaluationPortalServiceImpl extends ServiceImpl<EvaluationPortalMap
 				hs.put("year", latestData.getYear());
 				hs.put("season", latestData.getMonth());
 			}
-			if (ndkp == null || ndkp.isEmpty()) {
+			if (dwpj == null || dwpj.isEmpty()) {
 				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 {
 				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());
 			}
 

+ 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();
@@ -783,18 +789,10 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 		if (infocount > 0) {
 			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);
 		if (!b) {
 			throw new CustomException("删除失败");
 		}
-		/*for (OrganizationEvaluation org : loe) {
-			iOrganizationRatingService.
-		}*/
 		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.extension.plugins.pagination.Page;
 import com.ims.eval.cache.CacheContext;
-import com.ims.eval.dao.OrganizationEvaluationInfoMapper;
 import com.ims.eval.dao.OrganizationRatingMapper;
 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.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -64,9 +62,6 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 	private IEvaluationPortalService iEvaluationPortalService;
 
 	@Resource
-	private OrganizationEvaluationInfoMapper organizationEvaluationInfoMapper;
-
-	@Resource
 	private IEvaluateReportService iEvaluateReportService;
 
 	@Resource
@@ -158,7 +153,7 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 	 * 导出
 	 */
 	@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.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@@ -171,24 +166,22 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 
 		// 创建表头
 		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++) {
 			Cell cell = headerRow.createCell(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; // 从第二行开始填充数据(第一行是表头)
-		for (OrganizationRating or : orgRating.getRecords()) {
+		for (OrganizationRating or : ls) {
 			Row row = sheet.createRow(rowIndex++);
 
 			// 设置数据
@@ -241,7 +234,7 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 			// 关闭工作簿
 			workbook.close();
 		}
-
+		return R.ok();
 	}
 
 
@@ -301,7 +294,23 @@ public class OrganizationRatingServiceImpl extends ServiceImpl<OrganizationRatin
 				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,
 										  String veto, String netProfit, String compositeScore, String annualTarget, String bonusPoint, String compositeScoreRaking, String projectLevel, String score) {
 		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("_");
 
 		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();
 				or.setOrganizationYearRatingId(organizationYearRatingId);
-				or.setOrganizationShortName(oe.getOrganizationShortName());
-				or.setOrganizationId(oe.getOrganizationId());
+				or.setOrganizationShortName(evaReportInfo.getOrganizationName());
+				or.setOrganizationId(evaReportInfo.getOrganizationId());
 				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);
+//				lb.add(bsnMap.get(evaluateReport.getBinSection()).get(0));
 			}
-			iOrganizationRatingService.saveBatch(lors);
 		}
+		iOrganizationRatingService.saveBatch(lors);
 	}