Commit a812458c authored by tianbo's avatar tianbo

修改bug

parent 06bada17
......@@ -104,7 +104,12 @@ public class PermissionInterceptor implements Interceptor {
BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql");
String sql = boundSql.getSql();
// 将权限规则拼接到原始sql
sql = processSelectSql(sql, dataAuthorization, reginParam, boundSql);
try {
sql = processSelectSql(sql, dataAuthorization, reginParam, boundSql);
} catch (Exception e) {
PermissionInterceptorContext.clean();
logger.debug(e.getMessage());
}
metaObject.setValue("delegate.boundSql.sql", sql);
PermissionInterceptorContext.clean();
return invocation.proceed();
......
......@@ -91,7 +91,7 @@ public class OrgPersonController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "更新单位数据", notes = "更新单位数据")
@ApiOperation(httpMethod = "PUT", value = "更新人员数据", notes = "更新人员数据")
public ResponseModel<?> updateByIdOrgUsr(HttpServletRequest request, @RequestBody OrgPersonDto OrgPersonVo,
@PathVariable Long id) throws Exception {
OrgPersonVo.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
......
......@@ -586,5 +586,4 @@ public class OrgUsrController extends BaseController {
public ResponseModel<Object> getOrgUserByAmosUserId(@RequestParam String amosUserId) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.getOrgUserByAmosUserId(amosUserId));
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -40,6 +11,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptorContext;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.CheckObjectDto;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyDto;
......@@ -76,6 +48,36 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 机构/部门/人员表 服务实现类
......@@ -511,8 +513,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
@Override
public OrgUsrDto saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist)
throws Exception {
public OrgUsrDto saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist) {
orgUsr.setRecDate(new Date());
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecUserName(user.getRealName());
......@@ -533,19 +534,14 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
});
// 保存动态表单数据
alertFormValueServiceImpl.saveBatch(alertFromValuelist);
OrgUsrFormDto formDto = this.selectCompanyById(orgUsrDto.getSequenceNbr());
if (OrgPersonEnum.公司.getKey().equals(orgUsrDto.getBizOrgType())) {
try {
emqKeeper.getMqttClient().publish(airportAddTopic, JSON.toJSONString(formDto).getBytes(), 2, false);
} catch (Exception e) {
e.getMessage();
}
}
return model;
}
@Override
public void updateDynamicFormInstance(Long instanceId, List<DynamicFormInstance> fromValueList) {
if (ValidationUtil.isEmpty(fromValueList)) {
return;
}
// 填充主键
fromValueList.forEach(alertFromValue -> {
alertFromValue.setInstanceId(instanceId);
......@@ -697,6 +693,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
* 同步保存ES
*/
eSOrgUsrService.saveAlertCalledToES(orgUsr);
syncCompany2Supervision(Lists.newArrayList(orgUsrDto.getSequenceNbr()));
return orgUsrDto;
}
......@@ -738,17 +736,18 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
@Transactional(rollbackFor = Exception.class)
@Override
public OrgUsrDto updateByIdOrgUsr(OrgUsrDto OrgUsrVo, Long id) throws Exception {
public OrgUsrDto updateByIdOrgUsr(OrgUsrDto orgUsrVo, Long id) throws Exception {
// 修改单位信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgUsrVo, orgUsr);
BeanUtils.copyProperties(orgUsrVo, orgUsr);
// 判断是否修改所属单位
if (!(oriOrgUsr.getParentId() != null ? oriOrgUsr.getParentId() : "").equals(OrgUsrVo.getParentId())) {
if (!(oriOrgUsr.getParentId() != null ? oriOrgUsr.getParentId() : "").equals(orgUsrVo.getParentId())) {
/* 单位编辑后 code值也应做出修改 2021-09-09 陈召 开始 */
OrgUsr parent = getById(OrgUsrVo.getParentId());
OrgUsr parent = getById(orgUsrVo.getParentId());
if (parent != null) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
......@@ -770,13 +769,15 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
// saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgUsrVo.getDynamicFormValue());
updateDynamicFormInstance(orgUsr.getSequenceNbr(), orgUsrVo.getDynamicFormValue());
/**
* 同步保存ES
*/
eSOrgUsrService.saveAlertCalledToES(orgUsr);
OrgUsrVo.setBizOrgCode(orgUsr.getBizOrgCode());
return OrgUsrVo;
orgUsrVo.setBizOrgCode(orgUsr.getBizOrgCode());
syncCompany2Supervision(Lists.newArrayList(orgUsr.getSequenceNbr()));
return orgUsrVo;
}
@Override
......@@ -888,13 +889,16 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
@Override
public void saveCompany(List<OrgUsrDto> OrgUsrVo) throws Exception {
public void saveCompany(List<OrgUsrDto> OrgUsrVo) {
List<Long> companyIdList = Lists.newArrayList();
for (int i = 0; i < OrgUsrVo.size(); i++) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgUsrVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
saveOrgUsrDynamicFormInstance(orgUsr, OrgUsrVo.get(i).getDynamicFormValue());
OrgUsrDto orgUsrDto = saveOrgUsrDynamicFormInstance(orgUsr, OrgUsrVo.get(i).getDynamicFormValue());
companyIdList.add(orgUsrDto.getSequenceNbr());
}
syncCompany2Supervision(companyIdList);
}
@Override
......@@ -2065,4 +2069,32 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
wrapper.like(StringUtils.isNotBlank(amosUserId), OrgUsr::getAmosOrgId, amosUserId);
return this.baseMapper.selectList(wrapper);
}
/**
* 同步单位信息到防火监督point表
*
* @param companyIdList
*/
protected void syncCompany2Supervision(List<Long> companyIdList) {
if (ValidationUtil.isEmpty(companyIdList)) {
return;
}
String token = RequestContext.getToken();
String appKey = RequestContext.getAppKey();
String product = RequestContext.getProduct();
new Thread(() -> companyIdList.forEach(id -> {
try {
RequestContext.setAppKey(appKey);
RequestContext.setToken(token);
RequestContext.setProduct(product);
OrgUsrFormDto formDto = this.selectCompanyById(id);
if (!ValidationUtil.isEmpty(formDto) && OrgPersonEnum.公司.getKey().equals(formDto.getBizOrgType())) {
emqKeeper.getMqttClient().publish(airportAddTopic, JSON.toJSONString(formDto).getBytes(), 2, false);
}
} catch (Exception e) {
logger.debug("syncCompany2Supervision error:", e.getMessage());
e.printStackTrace();
}
})).start();
}
}
......@@ -1268,6 +1268,20 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
return executeSubmitDto;
}
// 当隐患当前节点状态是现场确认,在执行完节点后需要将检查组长设置为下个节点执行人
if (LatentDangerState.SupervisionDangerStateEnum.现场确认.getCode().equals(latentDanger.getDangerState()) &&
!ValidationUtil.isEmpty(latentDanger.getInstanceId()) && ExecuteTypeEnum.驳回.getCode().equals(preRecord.getExecuteState())) {
// 在检查组长驳回后再现场确认需要将检查组长id设置为下个节点执行人
Object resultObj = workflowExecuteService.setTaskAssign(latentDanger.getInstanceId(), checkLeaderId);
executeSubmitDto.setCheckLeaderId(userModel.getUserId());
if (!(Boolean) resultObj) {
executeSubmitDto.setIsOk(false);
executeSubmitDto.setMsg("设置节点执行人失败");
return executeSubmitDto;
}
}
String nextState = "";
String nextStateName = "";
if (ExecuteTypeEnum.通过.getCode().equals(param.getExecuteType())) {
......@@ -1296,18 +1310,32 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
nextStateName = LatentDangerState.SupervisionDangerStateEnum.整改完毕.getName();
}
executeResultMsg = currentStateEnum.getName() + ExecuteTypeEnum.通过.getName();
} else {
} else {// 审核驳回
LatentDangerState.SupervisionDangerStateEnum nextStateEnum =
LatentDangerState.SupervisionDangerStateEnum.getEnumByCode(currentStateEnum.getRejectNext());
nextState = nextStateEnum.getCode();
nextStateName = nextStateEnum.getName();
executeResultMsg = currentStateEnum.getName() + ExecuteTypeEnum.驳回.getName();
// 驳回到提交整改资料节点需重新设置工作流节点执行人为整改责任人
if (nextStateEnum == LatentDangerState.SupervisionDangerStateEnum.提交整改资料) {
JSONObject reformJson = latentDanger.getReformJson();
AgencyUserModel checkLeader =
jcsFeignClient.getAmosIdByUserId((String) reformJson.get("reformLeaderId")).getResult();
Object result = workflowExecuteService.setTaskAssign(processInstanceId, checkLeader.getUserName());
if (!(Boolean) result) {
executeSubmitDto.setIsOk(false);
executeResultMsg = "设置节点执行人失败";
executeSubmitDto.setMsg(executeResultMsg);
return executeSubmitDto;
}
}
}
latentDanger.setDangerState(nextState);
latentDanger.setDangerStateName(nextStateName);
// 当隐患状态当前节点是整改任务分配时,在执行完节点后需要将整改分配责任人设置为下个节点执行人
// TODO 整改责任人需要保存(如果下一步审核驳回,需要能获取到这个指定的整改责任人)
// 整改责任人需要保存(如果下一步审核驳回,需要能获取到这个指定的整改责任人)
if (LatentDangerState.SupervisionDangerStateEnum.整改任务分配.getCode().equals(currentStateEnum.getCode())) {
if (ValidationUtil.isEmpty(param.getReformLeaderId())) {
executeSubmitDto.setIsOk(false);
......
......@@ -8,6 +8,7 @@ import com.yeejoin.amos.supervision.business.vo.CheckInfoVo;
import com.yeejoin.amos.supervision.business.vo.CheckVo;
import com.yeejoin.amos.supervision.core.common.response.PointCheckInfoBusinessRespone;
import com.yeejoin.amos.supervision.core.common.response.PointCheckInfoRespone;
import com.yeejoin.amos.supervision.dao.entity.Check;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
......@@ -295,4 +296,12 @@ public interface CheckMapper extends BaseMapper {
long queryPageCount(CheckPageParam param);
List<CheckVo> queryPage(CheckPageParam param);
/**
* 根据任务id获取相关检查记录
*
* @param id
* @return
*/
List<Check> getCheckListByTaskId(@Param(value = "planTaskId") long id);
}
package com.yeejoin.amos.supervision.business.feign;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.supervision.business.dto.OrgUsrFormDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
......@@ -54,4 +55,13 @@ public interface JCSFeignClient {
*/
@RequestMapping(value = "jcs/org-usr/getUnit/{id}", method = RequestMethod.GET)
FeignClientResult<Map<String, Object>> getCompanyById(@PathVariable("id") String companyId);
/**
* 根据机场单位id获取单位人员列表
*
* @param companyId 机场单位id
* @return
*/
@RequestMapping(value = "jcs/org-usr/{companyId}/person/list", method = RequestMethod.GET)
FeignClientResult<List<OrgUsrFormDto>> getPersonListByCompanyId(@PathVariable("companyId") String companyId);
}
......@@ -41,17 +41,18 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -160,36 +161,45 @@ public class CheckReportServiceImpl extends BaseService<CheckReportDto, CheckRep
// 获取隐患信息
Map<String, String> dangerParamMap = Maps.newHashMap();
// 本次隐患id
List<String> dangerIdList = Arrays.asList(checkReportDto.getDangerIds().split(","));
List<String> dangerIdList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(checkReportDto.getDangerIds())) {
dangerIdList = Arrays.asList(checkReportDto.getDangerIds().split(","));
}
// 复核隐患id
List<String> reviewDangerIdList = Arrays.asList(checkReportDto.getReviewDangerIds().split(","));
List<String> reviewDangerIdList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(checkReportDto.getReviewDangerIds())) {
reviewDangerIdList = Arrays.asList(checkReportDto.getReviewDangerIds().split(","));
}
Set<String> allDangerIdSet = Sets.newHashSet();
allDangerIdSet.addAll(dangerIdList);
allDangerIdSet.addAll(reviewDangerIdList);
dangerParamMap.put("dangerIds", Joiner.on(",").join(allDangerIdSet));
List<DangerDto> dangerDtoList = dangerFeignClient.listAll(dangerParamMap).getResult();
List<CheckReportDangerDto> dangerList = Lists.newArrayList();
List<CheckReportDangerDto> reviewDangerList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(dangerDtoList)) {
dangerDtoList.forEach(dangerDto -> {
CheckReportDangerDto checkReportDangerDto = new CheckReportDangerDto();
BeanUtils.copyProperties(dangerDto, checkReportDangerDto);
Map<String, String> bizInfo = dangerDto.getBizInfo();
checkReportDangerDto.setCompanyId(bizInfo.get("pointId"));
checkReportDangerDto.setCompanyName(bizInfo.get("pointName"));
if (dangerIdList.contains(dangerDto.getId().toString())) {
dangerList.add(checkReportDangerDto);
}
if (reviewDangerIdList.contains(dangerDto.getId().toString())) {
checkReportDangerDto.setReviewUser(dangerDto.getExecuteUserName());
reviewDangerList.add(checkReportDangerDto);
}
});
if (!ValidationUtil.isEmpty(allDangerIdSet)) {
dangerParamMap.put("dangerIds", Joiner.on(",").join(allDangerIdSet));
List<DangerDto> dangerDtoList = dangerFeignClient.listAll(dangerParamMap).getResult();
List<CheckReportDangerDto> dangerList = Lists.newArrayList();
List<CheckReportDangerDto> reviewDangerList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(dangerDtoList)) {
List<String> finalDangerIdList = dangerIdList;
List<String> finalReviewDangerIdList = reviewDangerIdList;
dangerDtoList.forEach(dangerDto -> {
CheckReportDangerDto checkReportDangerDto = new CheckReportDangerDto();
BeanUtils.copyProperties(dangerDto, checkReportDangerDto);
Map<String, String> bizInfo = dangerDto.getBizInfo();
checkReportDangerDto.setCompanyId(bizInfo.get("pointId"));
checkReportDangerDto.setCompanyName(bizInfo.get("pointName"));
if (finalDangerIdList.contains(dangerDto.getId().toString())) {
dangerList.add(checkReportDangerDto);
}
if (finalReviewDangerIdList.contains(dangerDto.getId().toString())) {
checkReportDangerDto.setReviewUser(dangerDto.getExecuteUserName());
reviewDangerList.add(checkReportDangerDto);
}
});
}
checkReportDto.setCheckDangerList(dangerList);
checkReportDto.setReviewDangerList(reviewDangerList);
}
checkReportDto.setCheckDangerList(dangerList);
checkReportDto.setReviewDangerList(reviewDangerList);
}
return checkReportDto;
}
......
......@@ -1578,7 +1578,7 @@ public class CheckServiceImpl implements ICheckService {
Plan plan = planService.queryPlanById(planTask.getPlanId());
// 计划完成,规则推送消息
if (PlanStatusEnum.COMPLETED.getValue() == plan.getStatus()){
rulePlanService.addPlanRule(plan, null, RuleTypeEnum.计划完成);
rulePlanService.addPlanRule(plan, null, RuleTypeEnum.计划完成, null);
}
// p_plan_task_detail更新隐患个数
......
......@@ -237,7 +237,7 @@ public class PlanServiceImpl implements IPlanService {
}
try {
if (ValidationUtil.isEmpty(status)){
rulePlanService.addPlanRule(plan, userIds, RuleTypeEnum.计划提交); // 计划提交
rulePlanService.addPlanRule(plan, userIds, RuleTypeEnum.计划提交, null); // 计划提交
} else {
if (PlanStatusEnum.EXAMINE_THREE.getValue() != status){
rulePlanService.addPlanAuditRule(plan, userIds, RuleTypeEnum.计划审核, ExecuteStateNameEnum.getNameByCode(excuteState)); // 计划审核
......
......@@ -536,8 +536,9 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
// 2.保存执行数据明细表
planTaskDetail.saveAndFlush(planTaskDetailInstance);
// 规则推送消息
rulePlanService.addPlanRule(plan, null, RuleTypeEnum.计划生成);
rulePlanService.addPlanRule(plan, null, RuleTypeEnum.计划生成, pointId.longValue());
}
// 定时任务监控
jobService.planTaskAddJob(planTask);
......
package com.yeejoin.amos.supervision.business.service.impl;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.gson.JsonObject;
import com.yeejoin.amos.boot.biz.common.constants.RuleConstant;
import com.yeejoin.amos.boot.biz.common.enums.RuleTypeEnum;
import com.yeejoin.amos.component.rule.RuleTrigger;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.supervision.business.dao.mapper.PointMapper;
import com.yeejoin.amos.supervision.business.dto.OrgUsrFormDto;
import com.yeejoin.amos.supervision.business.dto.PlanRo;
import com.yeejoin.amos.supervision.business.feign.JCSFeignClient;
import com.yeejoin.amos.supervision.business.util.DateUtil;
import com.yeejoin.amos.supervision.business.util.Toke;
import com.yeejoin.amos.supervision.dao.entity.Plan;
import com.yeejoin.amos.supervision.dao.entity.Point;
import com.yeejoin.amos.supervision.feign.RemoteSecurityService;
import org.bouncycastle.cert.ocsp.Req;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.Date;
......@@ -28,28 +43,47 @@ public class RulePlanService {
private final String packageId = "消息/addPlanRule";
private final String msgType = "supervision";
@Value("${supervision.person.charger.role:Person_charge_unit_fire_protection_supervision_inspection}")
private String supervisionPersonChargerRole;
@Autowired
private RuleTrigger ruleTrigger;
@Autowired
private JCSFeignClient jcsFeignClient;
public Boolean addPlanRule(Plan plan, List<String> userIds, RuleTypeEnum ruleType) throws Exception {
PlanRo planRo = buildPlanRo(plan, userIds, ruleType);
@Autowired
private RemoteSecurityService remoteSecurityService;
@Autowired
private PointServiceImpl pointService;
@Async
public Boolean addPlanRule(Plan plan, List<String> userIds, RuleTypeEnum ruleType, Long pointId) throws Exception {
PlanRo planRo = buildPlanRo(plan, userIds, ruleType, pointId);
//触发规则
ruleTrigger.publish(planRo, packageId, new String[0]);
return true;
}
@Async
public Boolean addPlanAuditRule(Plan plan, List<String> userIds, RuleTypeEnum ruleType, String excuteStateName) throws Exception {
PlanRo planRo = buildPlanRo(plan, userIds, ruleType);
PlanRo planRo = buildPlanRo(plan, userIds, ruleType, null);
planRo.setExcuteStateName(excuteStateName);
//触发规则
ruleTrigger.publish(planRo, packageId, new String[0]);
return true;
}
private PlanRo buildPlanRo(Plan plan, List<String> userIds, RuleTypeEnum ruleType) {
private PlanRo buildPlanRo(Plan plan, List<String> userIds, RuleTypeEnum ruleType, Long pointId) {
// 设置token
if (ValidationUtil.isEmpty(RequestContext.getToken())) {
Toke tokenObj = remoteSecurityService.getServerToken();
RequestContext.setProduct(tokenObj.getProduct());
RequestContext.setAppKey(tokenObj.getAppKey());
RequestContext.setToken(tokenObj.getToke());
}
PlanRo planRo = new PlanRo();
BeanUtils.copyProperties(plan, planRo);
planRo.setMsgType(msgType);
......@@ -74,11 +108,35 @@ public class RulePlanService {
}
if (ValidationUtil.isEmpty(userIds)) {
// 计划牵头责任人
String leadPeopleIds = plan.getLeadPeopleIds();
if (!ValidationUtil.isEmpty(plan.getUserId()) && !leadPeopleIds.contains(plan.getUserId())) {
leadPeopleIds += "," + plan.getUserId();
}
userIds = (List<String>) jcsFeignClient.getAmosIdListByUserIds(leadPeopleIds).getResult();
// pointId是被检查单位id
if (!ValidationUtil.isEmpty(pointId)) {
List<String> userIdList = Lists.newArrayList();
Point point = pointService.queryPointById(pointId);
List<OrgUsrFormDto> personList =
jcsFeignClient.getPersonListByCompanyId(point.getOriginalId()).getResult();
List<String> personIdList = Lists.transform(personList, OrgUsrFormDto::getAmosOrgId);
List<RoleModel> roleList =
Privilege.roleClient.queryRoleList(supervisionPersonChargerRole, null).getResult();
if (!ValidationUtil.isEmpty(roleList)) {
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByRoleId(null,
String.valueOf(roleList.get(0).getSequenceNbr())).getResult();
if (!ValidationUtil.isEmpty(agencyUserModelList)) {
List<String> finalUserIds = userIds;
agencyUserModelList.forEach(userModel -> {
if (personIdList.contains(userModel.getUserId()) && !finalUserIds.contains(userModel.getUserId())) {
finalUserIds.add(userModel.getUserId());
}
});
userIds = finalUserIds;
}
}
}
}
planRo.setSendTime(DateUtil.date2LongStr(new Date()));
planRo.setRecivers(userIds);
......
......@@ -43,10 +43,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service("jobService")
public class JobService implements IJobService {
......@@ -215,7 +217,13 @@ public class JobService implements IJobService {
private void createOmissionCheckRecord(PlanTask planTask) {
List<PlanTaskPointInputItemBo> planTaskPointInputItems = planTaskMapper
.getPlanTaskPointInputItemByPlanTaskId(planTask.getId(), PlanTaskDetailStatusEnum.OMISSION.getValue());
List<Check> checkList = checkMapper.getCheckListByTaskId(planTask.getId());
Map<Long, Check> checkMap = new HashMap<>();
if (!ValidationUtil.isEmpty(checkList)) {
checkList.stream().collect(Collectors.groupingBy(Check::getPointId)).forEach((e,v) -> {
checkMap.put(e, v.get(0));
});
}
Set<Long> checkIds = new HashSet<Long>();
//查询用户名字
for (PlanTaskPointInputItemBo arg : planTaskPointInputItems) {
......
......@@ -2043,4 +2043,7 @@
</choose>
</where>
</select>
<select id="getCheckListByTaskId" resultType="com.yeejoin.amos.supervision.dao.entity.Check">
select * from p_check where plan_task_id = #{planTaskId}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment