瀏覽代碼

指标保存查询改造

wangchangsheng 2 年之前
父節點
當前提交
2fa25e0133

+ 44 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/controller/IndicatorController.java

@@ -3,10 +3,10 @@ package com.ims.eval.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ims.eval.config.CustomException;
+import com.ims.eval.entity.dto.request.IndicatorDTO;
 import com.ims.eval.entity.dto.request.IndicatorDictionaryDTO;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.entity.Indicator;
-import com.ims.eval.entity.IndicatorDictionary;
 import com.ims.eval.service.IIndicatorDictionaryService;
 import com.ims.eval.service.IIndicatorService;
 import io.swagger.annotations.ApiOperation;
@@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -111,6 +110,23 @@ public class IndicatorController {
 	}
 
 
+
+	/**
+	 * g根据指标idh获取主子指标
+	 *
+	 * @param id 指标id
+	 * @return
+	 */
+	@GetMapping(value = "selectById")
+	public R selectById(
+		@RequestParam(value = "id", required = false) String id) {
+
+		List<IndicatorDictionaryDTO> list = new ArrayList<>();
+		IndicatorDTO indicator = iIndicatorService.getById(id);
+
+		return R.ok().data(indicator);
+	}
+
 	/**
 	 * 添加
 	 *
@@ -135,6 +151,32 @@ public class IndicatorController {
 		}
 	}
 
+	/**
+	 * 添加
+	 *
+	 * @param indicator
+	 * @return
+	 */
+
+	//@ImsPreAuth("eval:dataDictionary:edit")
+	@PostMapping(value = "/saveGroup")
+	@ApiOperation(value = "新增(修改)", notes = "新增(修改)")
+	public R saveGroup(@RequestBody IndicatorDTO indicator) {
+
+		try {
+			boolean b = iIndicatorService.saveGroup(indicator);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("保存失败!");
+			}
+		} catch (CustomException e){
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+
+
+
 
 	/**
 	 * 批量删除

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

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ims.eval.entity.Indicator;
-import com.ims.eval.entity.OrganizationEvaluationRule;
+import com.ims.eval.entity.dto.request.IndicatorDTO;
 import com.ims.eval.entity.dto.response.IndicatorResDTO;
 import org.apache.ibatis.annotations.Param;
 
@@ -33,5 +33,8 @@ public interface IndicatorMapper extends BaseMapper<Indicator> {
 
 	List<IndicatorResDTO> selectListByIds(@Param("indicatorIds")List<String> indicatorIds);
 
+	IndicatorDTO selectById(@Param("id") String id);
+
+
 
 }

+ 1 - 4
ims-service/ims-eval/src/main/java/com/ims/eval/entity/dto/request/IndicatorDTO.java

@@ -1,9 +1,7 @@
 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;
@@ -14,6 +12,5 @@ public class IndicatorDTO extends Indicator {
 
 	private static final long serialVersionUID = 1L;
 
-	@ApiModelProperty(value = "考评部门", required=true)
-	private List<IndicatorDictionary> indicatorDictionaries;
+	private List<IndicatorDictionaryDTO> dtoList;
 }

+ 2 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/IIndicatorDictionaryService.java

@@ -3,7 +3,6 @@ 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;
 
@@ -24,4 +23,6 @@ public interface IIndicatorDictionaryService extends IService<IndicatorDictionar
 	List<IndicatorDictionaryDTO> list(String indicatorId,String optionCode,String optionName);
 
 
+
+
 }

+ 6 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/service/IIndicatorService.java

@@ -3,11 +3,10 @@ package com.ims.eval.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ims.eval.entity.Indicator;
-import com.ims.eval.entity.IndicatorDictionary;
+import com.ims.eval.entity.dto.request.IndicatorDTO;
 import com.ims.eval.entity.dto.response.IndicatorResDTO;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -32,4 +31,9 @@ public interface IIndicatorService extends IService<Indicator> {
 
 	List<IndicatorResDTO> listByIds(List<String> indicatorIds);
 
+	boolean saveGroup(IndicatorDTO dto);
+
+	IndicatorDTO getById(String id);
+
+
 }

+ 80 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/IndicatorServiceImpl.java

@@ -11,10 +11,16 @@ import com.ims.eval.dao.IndicatorMapper;
 import com.ims.eval.config.CustomException;
 import com.ims.eval.entity.Indicator;
 import com.ims.eval.entity.IndicatorDictionary;
+import com.ims.eval.entity.YearOperatingCoefficient;
+import com.ims.eval.entity.dto.request.IndicatorDTO;
+import com.ims.eval.entity.dto.request.IndicatorDictionaryDTO;
 import com.ims.eval.entity.dto.response.IndicatorResDTO;
+import com.ims.eval.service.IIndicatorDictionaryService;
 import com.ims.eval.service.IIndicatorService;
 import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
@@ -34,6 +40,9 @@ public class IndicatorServiceImpl extends ServiceImpl<IndicatorMapper, Indicator
 	@Resource
 	private IndicatorDictionaryMapper indicatorDictionaryMapper;
 
+	@Autowired
+	private IIndicatorDictionaryService indicatorDictionaryService;
+
 	@Override
 	public IPage<Indicator> list(Integer pageNum, Integer pageSize, String id, String indicatorName, String indicatorCode, String binSection, String binStage, String dept, String company) {
 
@@ -156,6 +165,77 @@ public class IndicatorServiceImpl extends ServiceImpl<IndicatorMapper, Indicator
 		return list;
 	}
 
+	@Transactional
+	@Override
+	public boolean saveGroup(IndicatorDTO dto) {
+		if (null != dto && (null == dto.getId() || "".equals(dto.getId().trim()))) {
+			QueryWrapper<Indicator> qw = new QueryWrapper<>();
+			qw.lambda().eq(Indicator::getIndicatorCode, dto.getIndicatorCode());
+			qw.lambda().eq(Indicator::getBinSection, dto.getBinSection());
+			qw.lambda().eq(Indicator::getBinStage, dto.getBinStage());
+			List<Indicator> list = baseMapper.selectList(qw);
+			if (null != list && list.size() > 0) {
+				throw new CustomException("当前指标code已存在");
+			}
+
+			dto.setCreateTime(new Date());
+		} else {
+			dto.setUpdateTime(new Date());
+		}
+
+		boolean b = super.saveOrUpdate(dto);
+		if (!b) {
+			throw new CustomException("指标保存失败");
+		}
+
+		for (IndicatorDictionaryDTO dto2 : dto.getDtoList()) {
+
+			if (null == dto2.getChildCode() || "".equals(dto2.getChildCode().trim()) || null == dto2.getChildName() || "".equals(dto2.getChildName().trim())) {
+				throw new CustomException("子指标名或编码为空");
+			}
+			for (IndicatorDictionary i : dto2.getList()) {
+				if (null != i && (null == i.getId() || "".equals(i.getId().trim()))) {
+					QueryWrapper<IndicatorDictionary> qw = new QueryWrapper<>();
+					qw.lambda().eq(IndicatorDictionary::getIndicatorId, i.getIndicatorId());
+					qw.lambda().eq(IndicatorDictionary::getChildCode, dto2.getChildCode());
+					qw.lambda().eq(IndicatorDictionary::getOptionCode, i.getOptionCode());
+					List<IndicatorDictionary> list2 = indicatorDictionaryMapper.selectList(qw);
+					if (null != list2 && list2.size() > 0) {
+						throw new CustomException("当前属性code已存在");
+					}
+					i.setIndicatorId(dto.getId());
+					i.setChildCode(dto2.getChildCode());
+					i.setChildName(dto2.getChildName());
+					i.setCreateTime(new Date());
+					i.setOptionName(null == CacheContext.ddNameMap.get(i.getOptionCode()) ? "未知属性" : CacheContext.ddNameMap.get(i.getOptionCode()));
+				} else {
+					i.setIndicatorId(dto.getId());
+					i.setChildCode(dto2.getChildCode());
+					i.setChildName(dto2.getChildName());
+					i.setOptionName(null == CacheContext.ddNameMap.get(i.getOptionCode()) ? "未知属性" : CacheContext.ddNameMap.get(i.getOptionCode()));
+					i.setUpdateTime(new Date());
+				}
+
+				b = indicatorDictionaryService.saveOrUpdate(i);
+				if (!b) {
+					throw new CustomException("指标明细存失败");
+				}
+			}
+		}
+		return b;
+	}
+
+	@Override
+	public IndicatorDTO getById(String id) {
+		//获取指标
+		IndicatorDTO indicatorDTO = baseMapper.selectById(id);
+		//根据指标获取明细组
+		List<IndicatorDictionaryDTO> dtoList = indicatorDictionaryService.list(indicatorDTO.getId(),"","");
+		indicatorDTO.setDtoList(dtoList);
+
+		return indicatorDTO;
+	}
+
 	@Override
 	public boolean saveOrUpdate(Indicator entity) {
 

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

@@ -118,6 +118,10 @@ public class YearGroupCoefficientServiceImpl extends ServiceImpl<YearGroupCoeffi
 			if (StringUtils.isNotEmpty(coefficientDTO.getYear())) {
 				qw.lambda().eq(YearGroupCoefficient::getYear, coefficientDTO.getYear());
 			}
+			StringBuilder sb = new StringBuilder();
+			sb.append("ndxs").append("_");
+			sb.append(coefficientDTO.getYear()).append("_").append("0001");
+			coefficientDTO.setCoefficientCode(sb.toString());
 			List<YearGroupCoefficient> list = baseMapper.selectList(qw);
 			if (null != list && list.size() > 0) {
 				throw new CustomException("已存在该年度系数");
@@ -138,6 +142,9 @@ public class YearGroupCoefficientServiceImpl extends ServiceImpl<YearGroupCoeffi
 			coefficient.setYearGroupCoefficientId(coefficientDTO.getId());
 			coefficient.setYear(coefficientDTO.getYear());
 			b =	yearOperatingCoefficientService.saveOrUpdate(coefficient);
+			if(!b){
+				throw new CustomException("年度系数保明细存失败");
+			}
 		}
 
 		return b;

+ 9 - 0
ims-service/ims-eval/src/main/resources/mappers/IndicatorMapper.xml

@@ -104,4 +104,13 @@
         </where>
     </select>
 
+
+    <select id="selectById" resultType="com.ims.eval.entity.dto.request.IndicatorDTO">
+        SELECT
+            *
+        FROM
+            indicator
+        where id = #{id}
+    </select>
+
 </mapper>