dee2698e21820ebe4b17706bcedca85b5933e3ea.svn-base 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. package cn.com.goldenwater.dcproj.controller.tac;
  2. import cn.com.goldenwater.core.web.BaseController;
  3. import cn.com.goldenwater.core.web.BaseResponse;
  4. import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao;
  5. import cn.com.goldenwater.dcproj.dao.TacPawpRgstrDao;
  6. import cn.com.goldenwater.dcproj.model.*;
  7. import cn.com.goldenwater.dcproj.param.TacEvaluationGroupLeaderParam;
  8. import cn.com.goldenwater.dcproj.param.TacPawpRgstrParam;
  9. import cn.com.goldenwater.dcproj.param.TacWorkerBParam;
  10. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  11. import cn.com.goldenwater.dcproj.service.TacEvaluationGroupLeaderService;
  12. import cn.com.goldenwater.dcproj.service.TacWorkerBService;
  13. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  14. import cn.com.goldenwater.dcproj.utils.StringUtils;
  15. import cn.com.goldenwater.dcproj.vo.TacEvaluationGroupLeaderVo;
  16. import cn.com.goldenwater.id.util.UuidUtil;
  17. import com.github.pagehelper.PageHelper;
  18. import com.github.pagehelper.PageInfo;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import io.swagger.annotations.ApiParam;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.web.bind.annotation.PathVariable;
  26. import org.springframework.web.bind.annotation.RequestBody;
  27. import org.springframework.web.bind.annotation.RequestMapping;
  28. import org.springframework.web.bind.annotation.RequestMethod;
  29. import org.springframework.web.bind.annotation.RestController;
  30. import javax.servlet.http.HttpServletResponse;
  31. import java.math.BigDecimal;
  32. import java.util.Date;
  33. import java.util.List;
  34. /**
  35. * 专家组长测评Controller
  36. *
  37. * @author ruoyi
  38. * @date 2023-03-06
  39. */
  40. @Api(value = "专家组长测评",tags="专家组长测评")
  41. @RestController
  42. @RequestMapping("/tac/evalation/leader")
  43. public class TacEvaluationGroupLeaderController extends BaseController
  44. {
  45. private Logger logger = LoggerFactory.getLogger(getClass());
  46. /**
  47. * 专家组长测评 服务
  48. */
  49. @Autowired
  50. private TacEvaluationGroupLeaderService tacEvaluationGroupLeaderService;
  51. /**
  52. * 机构 区域 服务
  53. */
  54. @Autowired
  55. private OlBisInspOrgService olBisInspOrgService;
  56. @Autowired
  57. private TacWorkerBService tacWorkerBService;
  58. @Autowired
  59. private BisInspAllRlationPersDao bisInspAllRlationPersDao;
  60. @Autowired
  61. TacPawpRgstrDao tacPawpRgstrDao;
  62. /**
  63. * 新增/编辑专家组长测评单表
  64. */
  65. @ApiOperation(value = "修改")
  66. @RequestMapping(value = "/", method = RequestMethod.POST)
  67. public BaseResponse insert(@ApiParam(name = "tacEvaluationGroupLeader", value = "TacEvaluationGroupLeader", required = true)
  68. @RequestBody TacEvaluationGroupLeader tacEvaluationGroupLeader) {
  69. String userId = getCurrentPersId();// 用户ID
  70. BisInspAllRlationPers user = bisInspAllRlationPersDao.get(userId);// 根据用户ID获取人员信息
  71. if("360000000000".equals(user.getProvince())){// 江西省
  72. TacWorkerBParam workerB = new TacWorkerBParam();
  73. workerB.setLoginId(userId);
  74. workerB.setName(user.getPersName());
  75. workerB.setProvince("360000000000");
  76. TacWorkerB vo = tacWorkerBService.getBy(workerB);
  77. if(null!=vo && "1".equals(vo.getIsExternal())){// 是否外聘为 1是
  78. return buildFailResponse("当前用户为外聘专家,无法评分!");
  79. }
  80. }
  81. // 校验稽查问题是否全部提交,只有全部提交(状态值为4)才可以保存打分结果
  82. // 1.前期与设计基本情况填报状态PDBST_STAT,2.建设管理基本情况表招标投标制填报状态BSTOCM_TSOPBFP_STAT,3.建设管理基本情况表合同管理制填报状态BSTOCM_CMS_STAT
  83. // 4.计划下达与执行基本情况表填报状态RAIOBIS_STAT,5.工程质量基本情况表工程实体质量与验收填报状态BITOPQ_PEQAA_STAT,6.工程安全基本情况表施工单位填报状态BIOES_RWUNIT_STAT
  84. TacPawpRgstrParam TacPawpParam = new TacPawpRgstrParam();
  85. TacPawpParam.setProvince(user.getProvince());// 省份编码
  86. TacPawpParam.setObjId(tacEvaluationGroupLeader.getProjId());// 项目ID
  87. TacPawpRgstr proInfo = tacPawpRgstrDao.getBy(TacPawpParam);// 项目信息
  88. String state = "4";
  89. if(null!=proInfo){
  90. if(!state.equals(proInfo.getPdbstStat()) || !state.equals(proInfo.getBstocmTsopbfpStat()) || !state.equals(proInfo.getBstocmCmsStat())
  91. || !state.equals(proInfo.getRaiobisStat()) || !state.equals(proInfo.getBitopqPeqaaStat()) || !state.equals(proInfo.getBioesRwunitStat())){
  92. return buildFailResponse("问题尚未全部提交,无法保存打分结果!");
  93. }
  94. }
  95. int ret = 0;
  96. if (StringUtils.isBlank(tacEvaluationGroupLeader.getId())) {
  97. logger.debug("新增 tacEvaluationGroupLeader");
  98. tacEvaluationGroupLeader.setOrgId(getCurrentOrgId());
  99. tacEvaluationGroupLeader.setPersId(userId);
  100. tacEvaluationGroupLeader.setAdCode(olBisInspOrgService.getRlProvince(getCurrentOrgId()));
  101. ret = tacEvaluationGroupLeaderService.insert(tacEvaluationGroupLeader);
  102. } else {
  103. logger.debug("修改 tacEvaluationGroupLeader");
  104. ret = tacEvaluationGroupLeaderService.update(tacEvaluationGroupLeader);
  105. }
  106. // 添加项目综合评分记录信息
  107. String projId = tacEvaluationGroupLeader.getProjId();// 项目ID
  108. String groupLeaderId = tacEvaluationGroupLeader.getGroupLeaderId();// 专家组长ID
  109. if(StringUtils.isNotBlank(projId) && StringUtils.isNotBlank(groupLeaderId)){
  110. // 先查询有没有记录,有的话,执行更新,没有的话执行新增
  111. TacEvaluationGroupLeader queryRt = tacEvaluationGroupLeaderService.selectOneDetailByProjIdAndGroupLeaderId(projId,groupLeaderId);
  112. // 获取综合评分信息
  113. TacEvaluationGroupLeader hj = tacEvaluationGroupLeaderService.selectHjScoreByProjIdAndGroupLeaderId(projId,groupLeaderId);
  114. TacEvaluationGroupLeader expert = new TacEvaluationGroupLeader();
  115. expert.setOrgLeader(hj.getOrgLeader());// 组织领导
  116. expert.setBusinessLevel(hj.getBusinessLevel());// 业务水平
  117. expert.setCphsManage(hj.getCphsManage());// 综合管理
  118. expert.setWorkStyle(hj.getWorkStyle());// 工作作风
  119. expert.setScore(hj.getScore());// 总得分
  120. expert.setEvalLevel(getEvalLevelByScore(hj.getScore()));// 等级
  121. if(StringUtils.isNotBlank(tacEvaluationGroupLeader.getNote())){
  122. expert.setNote(tacEvaluationGroupLeader.getNote());// 备注
  123. }
  124. if(null==queryRt){// 新增
  125. expert.setId(UuidUtil.uuid());
  126. expert.setProjId(projId);
  127. expert.setGroupLeaderId(groupLeaderId);
  128. expert.setGroupLeaderName(tacEvaluationGroupLeader.getGroupLeaderName());
  129. expert.setIntm(new Date());
  130. tacEvaluationGroupLeaderService.insertHjScoreByProjIdAndExpertId(expert);
  131. } else {// 修改
  132. expert.setId(queryRt.getId());
  133. expert.setUptm(new Date());
  134. tacEvaluationGroupLeaderService.update(expert);
  135. }
  136. }
  137. return buildSuccessResponse(tacEvaluationGroupLeader);
  138. }
  139. // 根据总得分计算等级 优(95-100)、良(85-94)、合格(75-84)、不合格(0-74)
  140. private String getEvalLevelByScore(Double score){
  141. // 分数向下取整(小数不要,取整)后,计算等级
  142. int sco2 = score.intValue();
  143. if(sco2>=95){
  144. return "优";
  145. } else if(85<=sco2 && sco2<=94){
  146. return "良";
  147. } else if(75<=sco2 && sco2<=84){
  148. return "合格";
  149. } else {
  150. return "不合格";
  151. }
  152. }
  153. /**
  154. * 删除专家组长测评 单表
  155. */
  156. @ApiOperation(value = "根据ID删除")
  157. @RequestMapping(value = "delete/{id}", method = RequestMethod.POST)
  158. public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  159. int ret = tacEvaluationGroupLeaderService.delete(id);
  160. return buildSuccessResponse();
  161. }
  162. /**
  163. * 查询专家组长测评单表
  164. */
  165. @ApiOperation(value = "根据ID获取单表")
  166. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  167. public BaseResponse<TacEvaluationGroupLeader> get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  168. TacEvaluationGroupLeader tacEvaluationGroupLeader = tacEvaluationGroupLeaderService.get(id);
  169. return buildSuccessResponse(tacEvaluationGroupLeader);
  170. }
  171. /**
  172. * 查询专家组长测评列表
  173. */
  174. @ApiOperation(value = "列表--分页")
  175. @RequestMapping(value = "/page", method = RequestMethod.POST)
  176. public BaseResponse<PageInfo> page(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true)
  177. @RequestBody TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) {
  178. tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId());
  179. if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){
  180. tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId())));
  181. }
  182. return buildSuccessResponse(tacEvaluationGroupLeaderService.findPageInfo(tacEvaluationGroupLeaderParam));
  183. }
  184. /**
  185. * 查询待测评的专家组长列表
  186. */
  187. @ApiOperation(value = "待测评的专家组长列表")
  188. @RequestMapping(value = "/todo/eval/list", method = RequestMethod.POST)
  189. public BaseResponse<List<TacEvaluationGroupLeaderVo>> findEavlObjList(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true)
  190. @RequestBody TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) {
  191. tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId());
  192. if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){
  193. tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId())));
  194. }
  195. // 只查询本人打分记录
  196. tacEvaluationGroupLeaderParam.setPersId(getCurrentPersId());
  197. return buildSuccessResponse(tacEvaluationGroupLeaderService.selectEavlPersListByGroupId(tacEvaluationGroupLeaderParam));
  198. }
  199. /**
  200. * 查询专家组长测评列表
  201. */
  202. @ApiOperation(value = "列表--分页")
  203. @RequestMapping(value = "/result/page", method = RequestMethod.POST)
  204. public BaseResponse<PageInfo> pageResult(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true)
  205. @RequestBody(required = false) TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) {
  206. if(null == tacEvaluationGroupLeaderParam){
  207. tacEvaluationGroupLeaderParam = new TacEvaluationGroupLeaderParam();
  208. }
  209. tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId());
  210. if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){
  211. tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId())));
  212. }
  213. return buildSuccessResponse(tacEvaluationGroupLeaderService.findEvaluationResult(tacEvaluationGroupLeaderParam));
  214. }
  215. /**
  216. * 查询专家组长测评列表
  217. */
  218. @ApiOperation(value = "列表--分页")
  219. @RequestMapping(value = "/result/details/page", method = RequestMethod.POST)
  220. public BaseResponse<PageInfo> pageResultDetails(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true)
  221. @RequestBody TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) {
  222. String groupLeaderId = tacEvaluationGroupLeaderParam.getGroupLeaderId();// 专家组长ID
  223. String projId = tacEvaluationGroupLeaderParam.getProjId();// 项目ID
  224. List<TacEvaluationGroupLeaderVo> dataList = tacEvaluationGroupLeaderService.findEvaluationResultDetails2(groupLeaderId,projId);
  225. // 1.稽查专家组长测评结果进入详情页面--数据需要特殊处理
  226. // 2.根据项目ID和专家组长ID进入详情页面--数据不需要处理
  227. if(StringUtils.isBlank(projId) && StringUtils.isNotBlank(groupLeaderId)){// 第一种情况
  228. // 处理评分修改内容并添加标记,达到前端特殊效果(修改项展示为红色)
  229. TacEvaluationGroupLeaderVo vo = null;
  230. for(int i=0;i<dataList.size();i++){
  231. vo = dataList.get(i);
  232. String back = vo.getBackUp();
  233. if(!"".equals(back) && null!=back){
  234. String rets[] = back.split(",");
  235. if(null!=vo.getOrgLeader() && checkNotEqual(vo.getOrgLeader(),rets[0])){
  236. dataList.get(i).setOrgLeaderFlag(1);// 组织领导 标记(1代表修改)
  237. }
  238. if(null!=vo.getBusinessLevel() && checkNotEqual(vo.getBusinessLevel(),rets[1])){
  239. dataList.get(i).setBusinessLevelFlag(1);// 业务水平 标记(1代表修改)
  240. }
  241. if(null!=vo.getCphsManage() && checkNotEqual(vo.getCphsManage(),rets[2])){
  242. dataList.get(i).setCphsManageFlag(1);// 综合管理 标记(1代表修改)
  243. }
  244. if(null!=vo.getWorkStyle() && checkNotEqual(vo.getWorkStyle(),rets[3])){
  245. dataList.get(i).setWorkStyleFlag(1);// 工作作风 标记(1代表修改)
  246. }
  247. if(null!=vo.getScore() && checkNotEqual(vo.getScore(),rets[4])){
  248. dataList.get(i).setScoreFlag(1);// 总得分 标记(1代表修改)
  249. }
  250. if(null!=vo.getEvalLevel() && !vo.getEvalLevel().equals(rets[5])){
  251. dataList.get(i).setEvalLevelFlag(1);// 等级 标记(1代表修改)
  252. }
  253. }
  254. }
  255. }
  256. PageHelper.startPage(tacEvaluationGroupLeaderParam);// 分页
  257. PageInfo<TacEvaluationGroupLeaderVo> pageInfo = new PageInfo(dataList);
  258. return buildSuccessResponse(pageInfo);
  259. }
  260. private boolean checkNotEqual(Double value1,String value2){
  261. BigDecimal val1 = new BigDecimal(value1.toString()).setScale(2);
  262. BigDecimal val2 = new BigDecimal(value2).setScale(2);
  263. if(val1.compareTo(val2) == 0){
  264. return false;
  265. }
  266. return true;
  267. }
  268. /**
  269. * 导出专家组长测评列表
  270. */
  271. @ApiOperation(value = "根据条件导出专家组长测评")
  272. @RequestMapping(value = "/export", method = RequestMethod.POST)
  273. public void export(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam")
  274. TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam,
  275. HttpServletResponse response) {
  276. tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId());
  277. if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){
  278. tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId())));
  279. }
  280. tacEvaluationGroupLeaderService.export(tacEvaluationGroupLeaderParam, response);
  281. }
  282. /**
  283. * 修改可恢复
  284. */
  285. @ApiOperation(value = "修改")
  286. @RequestMapping(value = "/modify", method = RequestMethod.POST)
  287. public BaseResponse modify(@ApiParam(name = "tacEvaluationGroupLeader", value = "TacEvaluationGroupLeader", required = true)
  288. @RequestBody TacEvaluationGroupLeader tacEvaluationGroupLeader) {
  289. this.tacEvaluationGroupLeaderService.updateScoreById(tacEvaluationGroupLeader);
  290. return buildSuccessResponse(tacEvaluationGroupLeader);
  291. }
  292. /**
  293. * 恢复
  294. */
  295. @ApiOperation(value = "恢复")
  296. @RequestMapping(value = "/revert/{id}", method = RequestMethod.POST)
  297. public BaseResponse revertModify(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  298. int rowNum = this.tacEvaluationGroupLeaderService.revertScoreById(id);
  299. return buildSuccessResponse(rowNum);
  300. }
  301. }