Browse Source

指标优化

wangchangsheng 2 years ago
parent
commit
ebf4ecc6c2

+ 6 - 6
ims-service/ims-eval/src/main/java/com/ims/eval/controller/DeptResponsibilityController.java

@@ -1,10 +1,8 @@
 package com.ims.eval.controller;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.ims.eval.entity.OrganizationEvaluationRule;
 import com.ims.eval.entity.dto.result.R;
-import com.ims.eval.service.IOrganizationEvaluationRuleService;
+import com.ims.eval.service.IDeptResponsibilityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,7 +25,7 @@ public class DeptResponsibilityController {
 
 
 	@Autowired
-	private IOrganizationEvaluationRuleService organizationEvaluationRuleService;
+	private IDeptResponsibilityService deptResponsibilityService;
 
 
 	/**
@@ -57,10 +55,12 @@ public class DeptResponsibilityController {
 				  @RequestParam(value = "evaluationCycle", required = false) String evaluationCycle,
 				  @RequestParam(value = "year", required = false) String year,
 				  @RequestParam(value = "month", required = false) String month) {
-		IPage<OrganizationEvaluationRule> list = organizationEvaluationRuleService.list2(pageNum, pageSize, id, organizationName, organizationId, organizationType, binSection, binStage, evaluationCycle, year, month);
-		return R.ok().data(list);
+//		IPage<DeptResponsibility> list = deptResponsibilityService.list2(pageNum, pageSize, id, organizationName, organizationId, organizationType, binSection, binStage, evaluationCycle, year, month);
+		return R.ok().data(null);
 	}
 
 
 
+
+
 }

+ 43 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/controller/IndicatorDictionaryController.java

@@ -2,6 +2,7 @@ package com.ims.eval.controller;
 
 
 import com.ims.eval.config.CustomException;
+import com.ims.eval.entity.dto.request.IndicatorDictionaryDTO;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.entity.IndicatorDictionary;
 import com.ims.eval.service.IIndicatorDictionaryService;
@@ -47,6 +48,24 @@ public class IndicatorDictionaryController {
 
 
 	/**
+
+	 * @param indicatorId 指标ID
+	 * @param optionCode  选项编码
+	 * @param optionName  选项名称
+	 * @return
+	 */
+	//@ImsPreAuth("eval:indicator:view")
+	@RequestMapping(value = "listGroup")
+	public List<IndicatorDictionaryDTO> listGroup(
+										  @RequestParam(value = "indicatorId", required = false) String indicatorId,
+										  @RequestParam(value = "optionCode", required = false) String optionCode,
+										  @RequestParam(value = "optionName", required = false) String optionName) {
+		List<IndicatorDictionaryDTO> list = indicatorDictionaryService.list(indicatorId, optionCode, optionName);
+		return list;
+	}
+
+
+	/**
 	 * 添加
 	 *
 	 * @param dictionary
@@ -71,6 +90,30 @@ public class IndicatorDictionaryController {
 	}
 
 	/**
+	 * 添加
+	 *
+	 * @param dictionarys
+	 * @return
+	 */
+
+	//@ImsPreAuth("eval:dataDictionary:edit")
+	@PostMapping(value = "/saveBatch")
+	@ApiOperation(value = "批量新增", notes = "批量新增")
+	public R dictionarySaveBatch(@RequestBody List<IndicatorDictionaryDTO> dictionarys) {
+
+		try {
+			boolean b = indicatorDictionaryService.dictionarySaveBatch(dictionarys);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("保存失败!");
+			}
+		} catch (CustomException e){
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+
+	/**
 	 * 批量删除
 	 *
 	 * @param ids

+ 12 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/Indicator.java

@@ -41,6 +41,11 @@ public class Indicator extends Model {
      */
     private String unit;
 
+	/**
+	 * 指标系数
+	 */
+	private double coefficient;
+
     /**
      * 能否量化
      */
@@ -51,6 +56,13 @@ public class Indicator extends Model {
      */
     private String isAdditional;
 
+	/**
+	 * 是否主子指标
+	 */
+	private Boolean isChild;
+
+
+
     /**
      * 描述
      */

+ 16 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/IndicatorDictionary.java

@@ -37,6 +37,17 @@ public class IndicatorDictionary extends Model {
 	@TableField(exist = false)
 	private String indicatorName;
 
+	/**
+	 * 子指标名
+	 */
+	private String childName;
+
+	/**
+	 * 子指标code
+	 */
+	private String childCode;
+
+
     /**
      * 选项编码
      */
@@ -77,5 +88,10 @@ public class IndicatorDictionary extends Model {
      */
     private Date updateTime;
 
+	/**
+	 * 排序
+	 */
+	private Integer orderNum;
+
 
 }

+ 19 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/dto/request/IndicatorDTO.java

@@ -0,0 +1,19 @@
+package com.ims.eval.entity.dto.request;
+
+import com.ims.eval.entity.Indicator;
+import com.ims.eval.entity.IndicatorDictionary;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value="指标配置请求类", description="指标配置请求类")
+public class IndicatorDTO extends Indicator {
+
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "考评部门", required=true)
+	private List<IndicatorDictionary> indicatorDictionaries;
+}

+ 28 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/dto/request/IndicatorDictionaryDTO.java

@@ -0,0 +1,28 @@
+package com.ims.eval.entity.dto.request;
+
+import com.ims.eval.entity.IndicatorDictionary;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value="子指标配置请求类", description="子指标配置请求类")
+public class IndicatorDictionaryDTO  {
+
+
+	/**
+	 * 子指标名
+	 */
+	private String childName;
+
+	/**
+	 * 子指标code
+	 */
+	private String childCode;
+
+	private List<IndicatorDictionary> list;
+
+
+
+}

+ 7 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IIndicatorDictionaryService.java

@@ -2,6 +2,8 @@ package com.ims.eval.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ims.eval.entity.IndicatorDictionary;
+import com.ims.eval.entity.dto.request.IndicatorDictionaryDTO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -17,4 +19,9 @@ public interface IIndicatorDictionaryService extends IService<IndicatorDictionar
 
 	List<IndicatorDictionary> list(String id,String indicatorId,String optionCode,String optionName);
 
+	boolean dictionarySaveBatch(List<IndicatorDictionaryDTO> dictionarys);
+
+	List<IndicatorDictionaryDTO> list(String indicatorId,String optionCode,String optionName);
+
+
 }

+ 64 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/IndicatorDictionaryServiceImpl.java

@@ -6,14 +6,20 @@ import com.ims.common.utils.StringUtils;
 import com.ims.eval.cache.CacheContext;
 import com.ims.eval.dao.IndicatorDictionaryMapper;
 import com.ims.eval.config.CustomException;
+import com.ims.eval.entity.DataDictionary;
 import com.ims.eval.entity.IndicatorDictionary;
+import com.ims.eval.entity.dto.request.IndicatorDictionaryDTO;
 import com.ims.eval.service.IIndicatorDictionaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -50,6 +56,8 @@ public class IndicatorDictionaryServiceImpl extends ServiceImpl<IndicatorDiction
 		return list;
 	}
 
+
+
 	@Override
 	public boolean saveOrUpdate(IndicatorDictionary entity) {
 
@@ -70,4 +78,60 @@ public class IndicatorDictionaryServiceImpl extends ServiceImpl<IndicatorDiction
 	}
 
 
+	@Override
+	public boolean dictionarySaveBatch(List<IndicatorDictionaryDTO> dictionarys) {
+
+
+		boolean b = false;
+		for (IndicatorDictionaryDTO dto : dictionarys) {
+			for (IndicatorDictionary i : dto.getList()) {
+				QueryWrapper<IndicatorDictionary> qw = new QueryWrapper<>();
+				qw.lambda().eq(IndicatorDictionary::getIndicatorId, i.getIndicatorId());
+				qw.lambda().eq(IndicatorDictionary::getChildCode, dto.getChildCode());
+				qw.lambda().eq(IndicatorDictionary::getOptionCode, i.getOptionCode());
+				List<IndicatorDictionary> list = baseMapper.selectList(qw);
+				if (null != list && list.size() > 0) {
+					throw new CustomException("当前属性code已存在");
+				}
+				i.setChildCode(dto.getChildCode());
+				i.setChildName(dto.getChildName());
+				i.setCreateTime(new Date());
+				i.setOptionName(null == CacheContext.ddNameMap.get(i.getOptionCode()) ? "未知属性" : CacheContext.ddNameMap.get(i.getOptionCode()));
+				b = super.saveOrUpdate(i);
+			}
+		}
+		return b;
+	}
+
+	@Override
+	public List<IndicatorDictionaryDTO> list(String indicatorId, String optionCode, String optionName) {
+
+		List<IndicatorDictionaryDTO> dtoList =  new ArrayList<>();
+
+		QueryWrapper<IndicatorDictionary> qw = new QueryWrapper<>();
+		if (StringUtils.isNotEmpty(indicatorId)) {
+			qw.lambda().eq(IndicatorDictionary::getIndicatorId, indicatorId);
+		}
+		if (StringUtils.isNotEmpty(optionCode)) {
+			qw.lambda().eq(IndicatorDictionary::getOptionCode, optionCode);
+		}
+		if (StringUtils.isNotEmpty(optionName)) {
+			qw.lambda().like(IndicatorDictionary::getOptionName, optionName);
+		}
+
+		List<IndicatorDictionary> list = baseMapper.selectList(qw);
+
+		Map<String,List<IndicatorDictionary>> map = list.stream().collect(Collectors.groupingBy(ord -> ord.getChildCode()+","+ ord.getChildName()));
+
+		map.forEach((k,v)->{
+			String [] zb = k.split(",");
+			IndicatorDictionaryDTO dto =  new IndicatorDictionaryDTO();
+			dto.setChildCode(zb[0]);
+			dto.setChildName(zb[1]);
+			dto.setList(v);
+			dtoList.add(dto);
+		});
+
+		return dtoList;
+	}
 }