3d3a1edf83ad94f73d22e49254779b713cc8cda2.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. package cn.com.goldenwater.dcproj.service.impl.tac;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.TacEvaluationGroupLeaderDao;
  4. import cn.com.goldenwater.dcproj.dao.TacInspYearBatchGroupPersDao;
  5. import cn.com.goldenwater.dcproj.dao.TacPawpRgstrDao;
  6. import cn.com.goldenwater.dcproj.model.TacEvaluationGroupLeader;
  7. import cn.com.goldenwater.dcproj.model.TacInspYearBatchGroupPers;
  8. import cn.com.goldenwater.dcproj.model.TacPawpRgstr;
  9. import cn.com.goldenwater.dcproj.param.TacEvaluationGroupLeaderParam;
  10. import cn.com.goldenwater.dcproj.param.TacInspYearBatchGroupPersParam;
  11. import cn.com.goldenwater.dcproj.param.TacPawpRgstrParam;
  12. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  13. import cn.com.goldenwater.dcproj.service.TacEvaluationGroupLeaderService;
  14. import cn.com.goldenwater.dcproj.utils.StringUtils;
  15. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  16. import cn.com.goldenwater.dcproj.vo.TacEvaluationGroupLeaderVo;
  17. import cn.com.goldenwater.id.util.UuidUtil;
  18. import cn.com.goldenwater.target.CheckException;
  19. import com.github.pagehelper.PageHelper;
  20. import com.github.pagehelper.PageInfo;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Service;
  25. import org.springframework.transaction.annotation.Transactional;
  26. import javax.servlet.http.HttpServletResponse;
  27. import java.util.ArrayList;
  28. import java.util.Arrays;
  29. import java.util.Date;
  30. import java.util.List;
  31. import java.util.stream.Collectors;
  32. /**
  33. * 专家组长测评Service业务层处理
  34. *
  35. * @author ruoyi
  36. * @date 2023-03-06
  37. */
  38. @Service
  39. @Transactional
  40. public class TacEvaluationGroupLeaderServiceImpl extends AbstractCrudService<TacEvaluationGroupLeader, TacEvaluationGroupLeaderParam> implements TacEvaluationGroupLeaderService
  41. {
  42. private Logger logger = LoggerFactory.getLogger(getClass());
  43. @Autowired
  44. private TacEvaluationGroupLeaderDao tacEvaluationGroupLeaderDao;
  45. /**
  46. * 机构 区域 服务
  47. */
  48. @Autowired
  49. private OlBisInspOrgService olBisInspOrgService;
  50. @Autowired
  51. private TacPawpRgstrDao pawpRgstrDao;
  52. @Autowired
  53. private TacInspYearBatchGroupPersDao tacInspYearBatchGroupPersDao;
  54. public TacEvaluationGroupLeaderServiceImpl(TacEvaluationGroupLeaderDao tacEvaluationGroupLeaderDao) {
  55. super(tacEvaluationGroupLeaderDao);
  56. this.tacEvaluationGroupLeaderDao = tacEvaluationGroupLeaderDao;
  57. }
  58. /**
  59. * 增加专家组长测评
  60. *
  61. * @return 专家组长测评
  62. */
  63. @Override
  64. public int insert(TacEvaluationGroupLeader tacEvaluationGroupLeader) {
  65. logger.debug("TacEvaluationGroupLeader 新增");
  66. // 给专家组长 打分 先判定 是否所有专家都提交了阶段成果
  67. // 获取到专家底稿信息
  68. TacPawpRgstrParam pawpRgstrParam = new TacPawpRgstrParam();
  69. pawpRgstrParam.setGroupId(tacEvaluationGroupLeader.getGroupId());
  70. pawpRgstrParam.setObjId(tacEvaluationGroupLeader.getProjId());
  71. pawpRgstrParam.setProvince(olBisInspOrgService.getProvince(tacEvaluationGroupLeader.getOrgId()));
  72. List<TacPawpRgstr> pawpRgstrList= pawpRgstrDao.findList(pawpRgstrParam);
  73. if(null == pawpRgstrList || 1 != pawpRgstrList.size()){
  74. throw new CheckException("没有专家底稿,不能打分");
  75. }
  76. // 获取到 该组 项目 下的专家列表
  77. TacInspYearBatchGroupPersParam batchGroupPersParam = new TacInspYearBatchGroupPersParam();
  78. batchGroupPersParam.setGroupId(tacEvaluationGroupLeader.getGroupId());
  79. List<TacInspYearBatchGroupPers> groupPersList = this.tacInspYearBatchGroupPersDao.findList(batchGroupPersParam);
  80. if(null == groupPersList || 0 == groupPersList.size()){
  81. throw new CheckException("专家未提交问题,不能打分");
  82. }
  83. TacPawpRgstr pawpRgstr = pawpRgstrList.get(0);
  84. // 判定该组有没有配置 专业专家
  85. List<String> roleTypeList = Arrays.asList(new String[]{"11","12","13","14","15","16"});
  86. List<TacInspYearBatchGroupPers> expertList = groupPersList.stream().filter(f -> roleTypeList.contains(f.getRoleType())).collect(Collectors.toList());
  87. if(null == expertList || 0== expertList.size()){
  88. if( StringUtils.isBlank(pawpRgstr.getPdbstStat()) || 4 > Integer.parseInt(pawpRgstr.getPdbstStat())){
  89. throw new CheckException("前期专家未提交问题,不能打分");
  90. }
  91. if(StringUtils.isBlank(pawpRgstr.getBstocmTsopbfpStat()) || 4 > Integer.parseInt(pawpRgstr.getBstocmTsopbfpStat())){
  92. throw new CheckException("建管专家未提交问题,不能打分");
  93. }
  94. if(StringUtils.isBlank(pawpRgstr.getRaiobisStat()) || 4 > Integer.parseInt(pawpRgstr.getRaiobisStat())){
  95. throw new CheckException("计划专家未提交问题,不能打分");
  96. }
  97. if(StringUtils.isBlank(pawpRgstr.getBstocmCmsStat()) || 4 > Integer.parseInt(pawpRgstr.getBstocmCmsStat())){
  98. throw new CheckException("财务专家未提交问题,不能打分");
  99. }
  100. if(StringUtils.isBlank(pawpRgstr.getBitopqPeqaaStat()) || 4 > Integer.parseInt(pawpRgstr.getBitopqPeqaaStat())){
  101. throw new CheckException("质量专家未提交问题,不能打分");
  102. }
  103. if(StringUtils.isBlank(pawpRgstr.getBioesRwunitStat()) || 4 > Integer.parseInt(pawpRgstr.getBioesRwunitStat())){
  104. throw new CheckException("安全专家未提交问题,不能打分");
  105. }
  106. }else{
  107. for(TacInspYearBatchGroupPers groupPers: groupPersList){
  108. if("11".equals(groupPers.getRoleType()) && (StringUtils.isBlank(pawpRgstr.getPdbstStat()) || 4 > Integer.parseInt(pawpRgstr.getPdbstStat()))){
  109. throw new CheckException("前期专家未提交问题,不能打分");
  110. }
  111. if("12".equals(groupPers.getRoleType()) && (StringUtils.isBlank(pawpRgstr.getBstocmTsopbfpStat()) || 4 > Integer.parseInt(pawpRgstr.getBstocmTsopbfpStat()))){
  112. throw new CheckException("建管专家未提交问题,不能打分");
  113. }
  114. if("13".equals(groupPers.getRoleType()) && (StringUtils.isBlank(pawpRgstr.getRaiobisStat()) || 4 > Integer.parseInt(pawpRgstr.getRaiobisStat()))){
  115. throw new CheckException("计划专家未提交问题,不能打分");
  116. }
  117. if("14".equals(groupPers.getRoleType()) && (StringUtils.isBlank(pawpRgstr.getBstocmCmsStat()) || 4 > Integer.parseInt(pawpRgstr.getBstocmCmsStat()))){
  118. throw new CheckException("财务专家未提交问题,不能打分");
  119. }
  120. if("15".equals(groupPers.getRoleType()) && (StringUtils.isBlank(pawpRgstr.getBitopqPeqaaStat()) || 4 > Integer.parseInt(pawpRgstr.getBitopqPeqaaStat()))){
  121. throw new CheckException("质量专家未提交问题,不能打分");
  122. }
  123. if("16".equals(groupPers.getRoleType()) && (StringUtils.isBlank(pawpRgstr.getBioesRwunitStat()) || 4 > Integer.parseInt(pawpRgstr.getBioesRwunitStat()))){
  124. throw new CheckException("安全专家未提交问题,不能打分");
  125. }
  126. }
  127. }
  128. String uuid = UuidUtil.uuid(); // 生成uuid
  129. tacEvaluationGroupLeader.setId(uuid);
  130. tacEvaluationGroupLeader.setIntm(new Date());
  131. tacEvaluationGroupLeader.setUptm(new Date());
  132. return this.tacEvaluationGroupLeaderDao.insert(tacEvaluationGroupLeader);
  133. }
  134. /**
  135. * 更新 专家组长测评
  136. * 主键更新
  137. * @param tacEvaluationGroupLeader 专家组长测评
  138. * @return 专家组长测评
  139. */
  140. @Override
  141. public int update(TacEvaluationGroupLeader tacEvaluationGroupLeader) {
  142. logger.debug("TacEvaluationGroupLeader 更新");
  143. tacEvaluationGroupLeader.setUptm(new Date());
  144. return this.tacEvaluationGroupLeaderDao.update(tacEvaluationGroupLeader);
  145. }
  146. /**
  147. * 主键删除 专家组长测评
  148. *
  149. * @param id 专家组长测评主键
  150. * @return 专家组长测评
  151. */
  152. @Override
  153. public int delete(String id) {
  154. logger.debug("TacEvaluationGroupLeader 删除");
  155. return this.tacEvaluationGroupLeaderDao.delete(id);
  156. }
  157. /**
  158. * 导出 专家组长测评
  159. *
  160. * @param tacEvaluationGroupLeaderParam 筛选查询参数
  161. * @param response
  162. */
  163. @Override
  164. public void export(TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam, HttpServletResponse response) {
  165. logger.debug("TacEvaluationGroupLeader 导出");
  166. List<TacEvaluationGroupLeader> tacEvaluationGroupLeaderList = findList(tacEvaluationGroupLeaderParam);
  167. List<String> columns = new ArrayList<String>() {{
  168. add("id");
  169. add("orgId");
  170. add("adCode");
  171. add("groupId");
  172. add("projId");
  173. add("groupLeaderId");
  174. add("groupLeaderName");
  175. add("orgLeader");
  176. add("businessLevel");
  177. add("cphsManage");
  178. add("workStyle");
  179. add("oneVeto");
  180. add("score");
  181. add("evalLevel");
  182. add("note");
  183. add("persId");
  184. add("intm");
  185. add("uptm");
  186. }};
  187. ExportUtil.exportExcel2(tacEvaluationGroupLeaderList, response, "专家组长测评列表", columns, TacEvaluationGroupLeader.class);
  188. }
  189. /**
  190. * 批量添加
  191. * @param tacEvaluationGroupLeaderList
  192. * @return
  193. */
  194. @Override
  195. public int insertBatchFile(List<TacEvaluationGroupLeader> tacEvaluationGroupLeaderList){
  196. return this.tacEvaluationGroupLeaderDao.insertBatchFile(tacEvaluationGroupLeaderList);
  197. }
  198. /**
  199. * 待测评的 专家组长列表
  200. * @return
  201. */
  202. @Override
  203. public List<TacEvaluationGroupLeaderVo> selectEavlPersListByGroupId(TacEvaluationGroupLeaderParam groupLeaderParam){
  204. return this.tacEvaluationGroupLeaderDao.selectEavlPersListByGroupId(groupLeaderParam);
  205. }
  206. /**
  207. * 专家组长 测评结果
  208. * @return
  209. */
  210. @Override
  211. public PageInfo<TacEvaluationGroupLeaderVo> findEvaluationResult(TacEvaluationGroupLeaderParam groupLeaderParam){
  212. PageHelper.startPage(groupLeaderParam);
  213. List<TacEvaluationGroupLeaderVo> list = this.tacEvaluationGroupLeaderDao.findEvaluationResult2(groupLeaderParam);
  214. PageInfo<TacEvaluationGroupLeaderVo> pageInfo = new PageInfo(list);
  215. return pageInfo ;
  216. }
  217. /**
  218. * 专家组长 测评结果明细
  219. * 按 专家 按项目
  220. * @return
  221. */
  222. @Override
  223. public PageInfo<TacEvaluationGroupLeaderVo> findEvaluationResultDetails(TacEvaluationGroupLeaderParam groupLeaderParam){
  224. PageHelper.startPage(groupLeaderParam);
  225. List<TacEvaluationGroupLeaderVo> list = this.tacEvaluationGroupLeaderDao.findEvaluationResultDetails(groupLeaderParam);
  226. PageInfo<TacEvaluationGroupLeaderVo> pageInfo = new PageInfo(list);
  227. return pageInfo ;
  228. }
  229. /**
  230. * 修改评分
  231. * @param groupLeaderParam
  232. * @return
  233. */
  234. @Override
  235. public int updateScoreById(TacEvaluationGroupLeader groupLeaderParam){
  236. return this.tacEvaluationGroupLeaderDao.updateScoreById(groupLeaderParam);
  237. }
  238. /**
  239. * 恢复评分
  240. * @param id
  241. * @return
  242. */
  243. @Override
  244. public int revertScoreById(String id){
  245. TacEvaluationGroupLeader groupLeader = this.tacEvaluationGroupLeaderDao.get(id);
  246. if(null != groupLeader ){
  247. String backup = groupLeader.getBackUp();
  248. if(StringUtils.isNotBlank(backup)){
  249. String[] strs = backup.split(",");
  250. TacEvaluationGroupLeader groupLeaderParam = new TacEvaluationGroupLeaderParam();
  251. groupLeaderParam.setId(id);
  252. groupLeaderParam.setOrgLeader(Double.parseDouble(strs[0]));
  253. groupLeaderParam.setBusinessLevel(Double.parseDouble(strs[1]));
  254. groupLeaderParam.setCphsManage(Double.parseDouble(strs[2]));
  255. groupLeaderParam.setWorkStyle(Double.parseDouble(strs[3]));
  256. groupLeaderParam.setScore(Double.parseDouble(strs[4]));
  257. groupLeaderParam.setEvalLevel(strs[5]);
  258. if(strs.length==7){
  259. groupLeaderParam.setNote(strs[6]);
  260. }
  261. return this.tacEvaluationGroupLeaderDao.revertScoreById(groupLeaderParam);
  262. }
  263. }
  264. return 0;
  265. }
  266. @Override
  267. public TacEvaluationGroupLeader selectOneDetailByProjIdAndGroupLeaderId(String projId,String groupLeaderId){
  268. return this.tacEvaluationGroupLeaderDao.selectOneDetailByProjIdAndGroupLeaderId(projId,groupLeaderId);
  269. }
  270. @Override
  271. public TacEvaluationGroupLeader selectHjScoreByProjIdAndGroupLeaderId(String projId,String groupLeaderId){
  272. return this.tacEvaluationGroupLeaderDao.selectHjScoreByProjIdAndGroupLeaderId(projId,groupLeaderId);
  273. }
  274. @Override
  275. public int insertHjScoreByProjIdAndExpertId(TacEvaluationGroupLeader vo){
  276. return this.tacEvaluationGroupLeaderDao.insert(vo);
  277. }
  278. @Override
  279. public List<TacEvaluationGroupLeaderVo> findEvaluationResultDetails2(String groupLeaderId,String projId){
  280. return this.tacEvaluationGroupLeaderDao.findEvaluationResultDetails2(groupLeaderId,projId);
  281. }
  282. }