package cn.com.goldenwater.dcproj.controller.tac; import cn.com.goldenwater.core.web.BaseController; import cn.com.goldenwater.core.web.BaseResponse; import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao; import cn.com.goldenwater.dcproj.dao.TacPawpRgstrDao; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.TacEvaluationGroupLeaderParam; import cn.com.goldenwater.dcproj.param.TacPawpRgstrParam; import cn.com.goldenwater.dcproj.param.TacWorkerBParam; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.dcproj.service.TacEvaluationGroupLeaderService; import cn.com.goldenwater.dcproj.service.TacWorkerBService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.StringUtils; import cn.com.goldenwater.dcproj.vo.TacEvaluationGroupLeaderVo; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * 专家组长测评Controller * * @author ruoyi * @date 2023-03-06 */ @Api(value = "专家组长测评",tags="专家组长测评") @RestController @RequestMapping("/tac/evalation/leader") public class TacEvaluationGroupLeaderController extends BaseController { private Logger logger = LoggerFactory.getLogger(getClass()); /** * 专家组长测评 服务 */ @Autowired private TacEvaluationGroupLeaderService tacEvaluationGroupLeaderService; /** * 机构 区域 服务 */ @Autowired private OlBisInspOrgService olBisInspOrgService; @Autowired private TacWorkerBService tacWorkerBService; @Autowired private BisInspAllRlationPersDao bisInspAllRlationPersDao; @Autowired TacPawpRgstrDao tacPawpRgstrDao; /** * 新增/编辑专家组长测评单表 */ @ApiOperation(value = "修改") @RequestMapping(value = "/", method = RequestMethod.POST) public BaseResponse insert(@ApiParam(name = "tacEvaluationGroupLeader", value = "TacEvaluationGroupLeader", required = true) @RequestBody TacEvaluationGroupLeader tacEvaluationGroupLeader) { String userId = getCurrentPersId();// 用户ID BisInspAllRlationPers user = bisInspAllRlationPersDao.get(userId);// 根据用户ID获取人员信息 if("360000000000".equals(user.getProvince())){// 江西省 TacWorkerBParam workerB = new TacWorkerBParam(); workerB.setLoginId(userId); workerB.setName(user.getPersName()); workerB.setProvince("360000000000"); TacWorkerB vo = tacWorkerBService.getBy(workerB); if(null!=vo && "1".equals(vo.getIsExternal())){// 是否外聘为 1是 return buildFailResponse("当前用户为外聘专家,无法评分!"); } } // 校验稽查问题是否全部提交,只有全部提交(状态值为4)才可以保存打分结果 // 1.前期与设计基本情况填报状态PDBST_STAT,2.建设管理基本情况表招标投标制填报状态BSTOCM_TSOPBFP_STAT,3.建设管理基本情况表合同管理制填报状态BSTOCM_CMS_STAT // 4.计划下达与执行基本情况表填报状态RAIOBIS_STAT,5.工程质量基本情况表工程实体质量与验收填报状态BITOPQ_PEQAA_STAT,6.工程安全基本情况表施工单位填报状态BIOES_RWUNIT_STAT TacPawpRgstrParam TacPawpParam = new TacPawpRgstrParam(); TacPawpParam.setProvince(user.getProvince());// 省份编码 TacPawpParam.setObjId(tacEvaluationGroupLeader.getProjId());// 项目ID TacPawpRgstr proInfo = tacPawpRgstrDao.getBy(TacPawpParam);// 项目信息 String state = "4"; if(null!=proInfo){ if(!state.equals(proInfo.getPdbstStat()) || !state.equals(proInfo.getBstocmTsopbfpStat()) || !state.equals(proInfo.getBstocmCmsStat()) || !state.equals(proInfo.getRaiobisStat()) || !state.equals(proInfo.getBitopqPeqaaStat()) || !state.equals(proInfo.getBioesRwunitStat())){ return buildFailResponse("问题尚未全部提交,无法保存打分结果!"); } } int ret = 0; if (StringUtils.isBlank(tacEvaluationGroupLeader.getId())) { logger.debug("新增 tacEvaluationGroupLeader"); tacEvaluationGroupLeader.setOrgId(getCurrentOrgId()); tacEvaluationGroupLeader.setPersId(userId); tacEvaluationGroupLeader.setAdCode(olBisInspOrgService.getRlProvince(getCurrentOrgId())); ret = tacEvaluationGroupLeaderService.insert(tacEvaluationGroupLeader); } else { logger.debug("修改 tacEvaluationGroupLeader"); ret = tacEvaluationGroupLeaderService.update(tacEvaluationGroupLeader); } // 添加项目综合评分记录信息 String projId = tacEvaluationGroupLeader.getProjId();// 项目ID String groupLeaderId = tacEvaluationGroupLeader.getGroupLeaderId();// 专家组长ID if(StringUtils.isNotBlank(projId) && StringUtils.isNotBlank(groupLeaderId)){ // 先查询有没有记录,有的话,执行更新,没有的话执行新增 TacEvaluationGroupLeader queryRt = tacEvaluationGroupLeaderService.selectOneDetailByProjIdAndGroupLeaderId(projId,groupLeaderId); // 获取综合评分信息 TacEvaluationGroupLeader hj = tacEvaluationGroupLeaderService.selectHjScoreByProjIdAndGroupLeaderId(projId,groupLeaderId); TacEvaluationGroupLeader expert = new TacEvaluationGroupLeader(); expert.setOrgLeader(hj.getOrgLeader());// 组织领导 expert.setBusinessLevel(hj.getBusinessLevel());// 业务水平 expert.setCphsManage(hj.getCphsManage());// 综合管理 expert.setWorkStyle(hj.getWorkStyle());// 工作作风 expert.setScore(hj.getScore());// 总得分 expert.setEvalLevel(getEvalLevelByScore(hj.getScore()));// 等级 if(StringUtils.isNotBlank(tacEvaluationGroupLeader.getNote())){ expert.setNote(tacEvaluationGroupLeader.getNote());// 备注 } if(null==queryRt){// 新增 expert.setId(UuidUtil.uuid()); expert.setProjId(projId); expert.setGroupLeaderId(groupLeaderId); expert.setGroupLeaderName(tacEvaluationGroupLeader.getGroupLeaderName()); expert.setIntm(new Date()); tacEvaluationGroupLeaderService.insertHjScoreByProjIdAndExpertId(expert); } else {// 修改 expert.setId(queryRt.getId()); expert.setUptm(new Date()); tacEvaluationGroupLeaderService.update(expert); } } return buildSuccessResponse(tacEvaluationGroupLeader); } // 根据总得分计算等级 优(95-100)、良(85-94)、合格(75-84)、不合格(0-74) private String getEvalLevelByScore(Double score){ // 分数向下取整(小数不要,取整)后,计算等级 int sco2 = score.intValue(); if(sco2>=95){ return "优"; } else if(85<=sco2 && sco2<=94){ return "良"; } else if(75<=sco2 && sco2<=84){ return "合格"; } else { return "不合格"; } } /** * 删除专家组长测评 单表 */ @ApiOperation(value = "根据ID删除") @RequestMapping(value = "delete/{id}", method = RequestMethod.POST) public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { int ret = tacEvaluationGroupLeaderService.delete(id); return buildSuccessResponse(); } /** * 查询专家组长测评单表 */ @ApiOperation(value = "根据ID获取单表") @RequestMapping(value = "/{id}", method = RequestMethod.GET) public BaseResponse get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { TacEvaluationGroupLeader tacEvaluationGroupLeader = tacEvaluationGroupLeaderService.get(id); return buildSuccessResponse(tacEvaluationGroupLeader); } /** * 查询专家组长测评列表 */ @ApiOperation(value = "列表--分页") @RequestMapping(value = "/page", method = RequestMethod.POST) public BaseResponse page(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true) @RequestBody TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) { tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId()); if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){ tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId()))); } return buildSuccessResponse(tacEvaluationGroupLeaderService.findPageInfo(tacEvaluationGroupLeaderParam)); } /** * 查询待测评的专家组长列表 */ @ApiOperation(value = "待测评的专家组长列表") @RequestMapping(value = "/todo/eval/list", method = RequestMethod.POST) public BaseResponse> findEavlObjList(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true) @RequestBody TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) { tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId()); if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){ tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId()))); } // 只查询本人打分记录 tacEvaluationGroupLeaderParam.setPersId(getCurrentPersId()); return buildSuccessResponse(tacEvaluationGroupLeaderService.selectEavlPersListByGroupId(tacEvaluationGroupLeaderParam)); } /** * 查询专家组长测评列表 */ @ApiOperation(value = "列表--分页") @RequestMapping(value = "/result/page", method = RequestMethod.POST) public BaseResponse pageResult(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true) @RequestBody(required = false) TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) { if(null == tacEvaluationGroupLeaderParam){ tacEvaluationGroupLeaderParam = new TacEvaluationGroupLeaderParam(); } tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId()); if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){ tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId()))); } return buildSuccessResponse(tacEvaluationGroupLeaderService.findEvaluationResult(tacEvaluationGroupLeaderParam)); } /** * 查询专家组长测评列表 */ @ApiOperation(value = "列表--分页") @RequestMapping(value = "/result/details/page", method = RequestMethod.POST) public BaseResponse pageResultDetails(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam", required = true) @RequestBody TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam) { String groupLeaderId = tacEvaluationGroupLeaderParam.getGroupLeaderId();// 专家组长ID String projId = tacEvaluationGroupLeaderParam.getProjId();// 项目ID List dataList = tacEvaluationGroupLeaderService.findEvaluationResultDetails2(groupLeaderId,projId); // 1.稽查专家组长测评结果进入详情页面--数据需要特殊处理 // 2.根据项目ID和专家组长ID进入详情页面--数据不需要处理 if(StringUtils.isBlank(projId) && StringUtils.isNotBlank(groupLeaderId)){// 第一种情况 // 处理评分修改内容并添加标记,达到前端特殊效果(修改项展示为红色) TacEvaluationGroupLeaderVo vo = null; for(int i=0;i pageInfo = new PageInfo(dataList); return buildSuccessResponse(pageInfo); } private boolean checkNotEqual(Double value1,String value2){ BigDecimal val1 = new BigDecimal(value1.toString()).setScale(2); BigDecimal val2 = new BigDecimal(value2).setScale(2); if(val1.compareTo(val2) == 0){ return false; } return true; } /** * 导出专家组长测评列表 */ @ApiOperation(value = "根据条件导出专家组长测评") @RequestMapping(value = "/export", method = RequestMethod.POST) public void export(@ApiParam(name = "tacEvaluationGroupLeaderParam", value = "tacEvaluationGroupLeaderParam") TacEvaluationGroupLeaderParam tacEvaluationGroupLeaderParam, HttpServletResponse response) { tacEvaluationGroupLeaderParam.setOrgId(getCurrentOrgId()); if(StringUtils.isBlank(tacEvaluationGroupLeaderParam.getAdCode())){ tacEvaluationGroupLeaderParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId()))); } tacEvaluationGroupLeaderService.export(tacEvaluationGroupLeaderParam, response); } /** * 修改可恢复 */ @ApiOperation(value = "修改") @RequestMapping(value = "/modify", method = RequestMethod.POST) public BaseResponse modify(@ApiParam(name = "tacEvaluationGroupLeader", value = "TacEvaluationGroupLeader", required = true) @RequestBody TacEvaluationGroupLeader tacEvaluationGroupLeader) { this.tacEvaluationGroupLeaderService.updateScoreById(tacEvaluationGroupLeader); return buildSuccessResponse(tacEvaluationGroupLeader); } /** * 恢复 */ @ApiOperation(value = "恢复") @RequestMapping(value = "/revert/{id}", method = RequestMethod.POST) public BaseResponse revertModify(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { int rowNum = this.tacEvaluationGroupLeaderService.revertScoreById(id); return buildSuccessResponse(rowNum); } }