2890b7585bd0583004f032cb6aa0554857a8c00a.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package cn.com.goldenwater.dcproj.service.impl.tac;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.TacEvaluationExternalExpertDao;
  4. import cn.com.goldenwater.dcproj.dao.TacInspYearBatchGroupPersDao;
  5. import cn.com.goldenwater.dcproj.dao.TacPawpRgstrDao;
  6. import cn.com.goldenwater.dcproj.model.TacEvaluationExternalExpert;
  7. import cn.com.goldenwater.dcproj.model.TacInspYearBatchGroupPers;
  8. import cn.com.goldenwater.dcproj.param.TacEvaluationExternalExpertParam;
  9. import cn.com.goldenwater.dcproj.param.TacInspYearBatchGroupPersParam;
  10. import cn.com.goldenwater.dcproj.param.TacPawpRgstrParam;
  11. import cn.com.goldenwater.dcproj.service.TacEvaluationExternalExpertService;
  12. import cn.com.goldenwater.dcproj.utils.StringUtils;
  13. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  14. import cn.com.goldenwater.dcproj.vo.TacEvaluationExternalExpertVo;
  15. import cn.com.goldenwater.id.util.UuidUtil;
  16. import cn.com.goldenwater.target.CheckException;
  17. import com.github.pagehelper.PageHelper;
  18. import com.github.pagehelper.PageInfo;
  19. import org.slf4j.Logger;
  20. import org.slf4j.LoggerFactory;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import javax.servlet.http.HttpServletResponse;
  25. import java.util.ArrayList;
  26. import java.util.Date;
  27. import java.util.List;
  28. /**
  29. * 稽查专家测评Service业务层处理
  30. *
  31. * @author ruoyi
  32. * @date 2023-03-06
  33. */
  34. @Service
  35. @Transactional
  36. public class TacEvaluationExternalExpertServiceImpl extends AbstractCrudService<TacEvaluationExternalExpert, TacEvaluationExternalExpertParam> implements TacEvaluationExternalExpertService
  37. {
  38. private Logger logger = LoggerFactory.getLogger(getClass());
  39. @Autowired
  40. private TacEvaluationExternalExpertDao tacEvaluationExternalExpertDao;
  41. @Autowired
  42. private TacInspYearBatchGroupPersDao tacInspYearBatchGroupPersDao;
  43. @Autowired
  44. private TacPawpRgstrDao pawpRgstrDao;
  45. public TacEvaluationExternalExpertServiceImpl(TacEvaluationExternalExpertDao tacEvaluationExternalExpertDao) {
  46. super(tacEvaluationExternalExpertDao);
  47. this.tacEvaluationExternalExpertDao = tacEvaluationExternalExpertDao;
  48. }
  49. /**
  50. * 增加稽查专家测评
  51. *
  52. * @return 稽查专家测评
  53. */
  54. @Override
  55. public int insert(TacEvaluationExternalExpert tacEvaluationExternalExpert) {
  56. logger.debug("TacEvaluationExternalExpert 新增");
  57. // 判断 外聘专家是否提交问题
  58. // 1 判定当前专家在组、项目 中有几个角色
  59. TacInspYearBatchGroupPersParam batchGroupPersParam = new TacInspYearBatchGroupPersParam();
  60. batchGroupPersParam.setGroupId(tacEvaluationExternalExpert.getGroupId());
  61. batchGroupPersParam.setPersId(tacEvaluationExternalExpert.getExpertId());
  62. List<TacInspYearBatchGroupPers> groupPersList = this.tacInspYearBatchGroupPersDao.findList(batchGroupPersParam);
  63. if(null != groupPersList){
  64. TacPawpRgstrParam pawpRgstrParam = new TacPawpRgstrParam();
  65. pawpRgstrParam.setGroupId(tacEvaluationExternalExpert.getGroupId());
  66. pawpRgstrParam.setObjId(tacEvaluationExternalExpert.getProjId());
  67. for(TacInspYearBatchGroupPers batchGroupPers : groupPersList){
  68. pawpRgstrParam.setPersId(batchGroupPers.getRoleType());
  69. Integer num = pawpRgstrDao.findExpertSubmitCount(pawpRgstrParam);
  70. if(null == num || num.intValue()<1){
  71. throw new CheckException(null == tacEvaluationExternalExpert.getExpertName()?"":tacEvaluationExternalExpert.getExpertName()+"专家未提交问题,不能打分");
  72. }
  73. }
  74. }else {
  75. throw new CheckException(null == tacEvaluationExternalExpert.getExpertName()?"":tacEvaluationExternalExpert.getExpertName()+"专家信息错误,不能打分");
  76. }
  77. String uuid = UuidUtil.uuid(); // 生成uuid
  78. tacEvaluationExternalExpert.setId(uuid);
  79. tacEvaluationExternalExpert.setIntm(new Date());
  80. tacEvaluationExternalExpert.setUptm(new Date());
  81. return this.tacEvaluationExternalExpertDao.insert(tacEvaluationExternalExpert);
  82. }
  83. /**
  84. * 更新 稽查专家测评
  85. * 主键更新
  86. * @param tacEvaluationExternalExpert 稽查专家测评
  87. * @return 稽查专家测评
  88. */
  89. @Override
  90. public int update(TacEvaluationExternalExpert tacEvaluationExternalExpert) {
  91. logger.debug("TacEvaluationExternalExpert 更新");
  92. tacEvaluationExternalExpert.setUptm(new Date());
  93. return this.tacEvaluationExternalExpertDao.update(tacEvaluationExternalExpert);
  94. }
  95. /**
  96. * 主键删除 稽查专家测评
  97. *
  98. * @param id 稽查专家测评主键
  99. * @return 稽查专家测评
  100. */
  101. @Override
  102. public int delete(String id) {
  103. logger.debug("TacEvaluationExternalExpert 删除");
  104. return this.tacEvaluationExternalExpertDao.delete(id);
  105. }
  106. /**
  107. * 导出 稽查专家测评
  108. *
  109. * @param tacEvaluationExternalExpertParam 筛选查询参数
  110. * @param response
  111. */
  112. @Override
  113. public void export(TacEvaluationExternalExpertParam tacEvaluationExternalExpertParam, HttpServletResponse response) {
  114. logger.debug("TacEvaluationExternalExpert 导出");
  115. List<TacEvaluationExternalExpert> tacEvaluationExternalExpertList = findList(tacEvaluationExternalExpertParam);
  116. List<String> columns = new ArrayList<String>() {{
  117. add("id");
  118. add("orgId");
  119. add("adCode");
  120. add("groupId");
  121. add("projId");
  122. add("expertId");
  123. add("expertName");
  124. add("expertProf");
  125. add("businessLevel");
  126. add("qualityResults");
  127. add("workStyle");
  128. add("oneVeto");
  129. add("score");
  130. add("evalLevel");
  131. add("note");
  132. add("persId");
  133. add("intm");
  134. add("uptm");
  135. }};
  136. ExportUtil.exportExcel2(tacEvaluationExternalExpertList, response, "稽查专家测评列表", columns, TacEvaluationExternalExpert.class);
  137. }
  138. /**
  139. * 批量添加
  140. * @param tacEvaluationExternalExpertList
  141. * @return
  142. */
  143. @Override
  144. public int insertBatchFile(List<TacEvaluationExternalExpert> tacEvaluationExternalExpertList){
  145. return this.tacEvaluationExternalExpertDao.insertBatchFile(tacEvaluationExternalExpertList);
  146. }
  147. /**
  148. * 待测评的稽查外聘专家列表
  149. * @param externalExpertParam
  150. * @return
  151. */
  152. @Override
  153. public List<TacEvaluationExternalExpertVo> selectEavlPersListByGroupId(TacEvaluationExternalExpertParam externalExpertParam){
  154. return this.tacEvaluationExternalExpertDao.selectEavlPersListByGroupId(externalExpertParam);
  155. }
  156. /**
  157. * 稽查外聘专家测评结果
  158. * @param externalExpertParam
  159. * @return
  160. */
  161. @Override
  162. public PageInfo<TacEvaluationExternalExpertVo> findEvaluationResult(TacEvaluationExternalExpertParam externalExpertParam) {
  163. PageHelper.startPage(externalExpertParam);
  164. List<TacEvaluationExternalExpertVo> list = this.tacEvaluationExternalExpertDao.findEvaluationResult2(externalExpertParam);
  165. PageInfo<TacEvaluationExternalExpertVo> pageInfo = new PageInfo(list);
  166. return pageInfo;
  167. }
  168. /**
  169. * 稽查外聘专家测评结果详情类别
  170. * @param externalExpertParam
  171. * @return
  172. */
  173. @Override
  174. public PageInfo<TacEvaluationExternalExpertVo> findEvaluationResultDetails(TacEvaluationExternalExpertParam externalExpertParam){
  175. PageHelper.startPage(externalExpertParam);
  176. List<TacEvaluationExternalExpertVo> list = this.tacEvaluationExternalExpertDao.findEvaluationResultDetails(externalExpertParam);
  177. PageInfo<TacEvaluationExternalExpertVo> pageInfo = new PageInfo(list);
  178. return pageInfo;
  179. }
  180. /**
  181. * 修改评分
  182. * @param externalExpertParam
  183. * @return
  184. */
  185. @Override
  186. public int updateScoreById(TacEvaluationExternalExpert externalExpertParam){
  187. return this.tacEvaluationExternalExpertDao.updateScoreById(externalExpertParam);
  188. }
  189. /**
  190. * 恢复评分
  191. * @param id
  192. * @return
  193. */
  194. @Override
  195. public int revertScoreById(String id){
  196. TacEvaluationExternalExpert externalExpert = this.tacEvaluationExternalExpertDao.get(id);
  197. if(null != externalExpert){
  198. String backup = externalExpert.getBackUp();
  199. if(StringUtils.isNotBlank(backup)){
  200. String[] strs = backup.split(",");
  201. TacEvaluationExternalExpert externalExpertParam = new TacEvaluationExternalExpertParam();
  202. externalExpertParam.setId(id);
  203. externalExpertParam.setBusinessLevel(Double.parseDouble(strs[0]));
  204. externalExpertParam.setQualityResults(Double.parseDouble(strs[1]));
  205. externalExpertParam.setWorkStyle(Double.parseDouble(strs[2]));
  206. externalExpertParam.setScore(Double.parseDouble(strs[3]));
  207. externalExpertParam.setEvalLevel(strs[4]);
  208. if(strs.length==6){
  209. externalExpertParam.setNote(strs[5]);
  210. }
  211. return this.tacEvaluationExternalExpertDao.revertScoreById(externalExpertParam);
  212. }
  213. }
  214. return 0;
  215. }
  216. @Override
  217. public TacEvaluationExternalExpert selectOneDetailByProjIdAndExpertId(String projId,String expertId){
  218. return this.tacEvaluationExternalExpertDao.selectOneDetailByProjIdAndExpertId(projId,expertId);
  219. }
  220. @Override
  221. public TacEvaluationExternalExpert selectHjScoreByProjIdAndExpertId(String projId,String expertId){
  222. return this.tacEvaluationExternalExpertDao.selectHjScoreByProjIdAndExpertId(projId,expertId);
  223. }
  224. @Override
  225. public int insertHjScoreByProjIdAndExpertId(TacEvaluationExternalExpert vo){
  226. return this.tacEvaluationExternalExpertDao.insert(vo);
  227. }
  228. @Override
  229. public List<TacEvaluationExternalExpertVo> findEvaluationResultDetails2(String expertId,String projId){
  230. return this.tacEvaluationExternalExpertDao.findEvaluationResultDetails2(expertId,projId);
  231. }
  232. }