Commit 20954846 authored by chenzhao's avatar chenzhao

Merge remote-tracking branch 'origin/developer' into developer

parents 4eec9180 53ed0d81
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
hygf_peasant_household.project_address_detail, hygf_peasant_household.project_address_detail,
b.stamp_status, b.stamp_status,
b.status b.status
from hygf_power_station LEFT JOIN ( select peasant_household_id,initiate_status, contract_lock_id,stamp_status,status from hygf_household_contract where hygf_household_contract.status !='已作废' from hygf_power_station LEFT JOIN ( select peasant_household_id,initiate_status, contract_lock_id,stamp_status,status from hygf_household_contract
) b on b.peasant_household_id=hygf_power_station.peasant_household_id ) b on b.peasant_household_id=hygf_power_station.peasant_household_id
LEFT JOIN hygf_peasant_household on hygf_peasant_household.sequence_nbr=hygf_power_station.peasant_household_id LEFT JOIN hygf_peasant_household on hygf_peasant_household.sequence_nbr=hygf_power_station.peasant_household_id
where hygf_power_station.is_delete=0 where hygf_power_station.is_delete=0
......
...@@ -30,11 +30,13 @@ import com.yeejoin.amos.boot.module.hygf.api.entity.FinancingRectificationOrder; ...@@ -30,11 +30,13 @@ import com.yeejoin.amos.boot.module.hygf.api.entity.FinancingRectificationOrder;
import com.yeejoin.amos.boot.module.hygf.api.entity.StdUserEmpower; import com.yeejoin.amos.boot.module.hygf.api.entity.StdUserEmpower;
import com.yeejoin.amos.boot.module.hygf.api.mapper.FinancingInfoMapper; import com.yeejoin.amos.boot.module.hygf.api.mapper.FinancingInfoMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IFinancingInfoService; import com.yeejoin.amos.boot.module.hygf.api.service.IFinancingInfoService;
import com.yeejoin.amos.boot.module.hygf.api.util.RedisLockUtil;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO; import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO; import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import io.seata.spring.annotation.GlobalTransactional; import io.seata.spring.annotation.GlobalTransactional;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -42,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -42,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource;
import java.util.*; import java.util.*;
/** /**
...@@ -71,6 +74,9 @@ public class FinancingInfoServiceImpl extends BaseService<FinancingInfoDto, Fina ...@@ -71,6 +74,9 @@ public class FinancingInfoServiceImpl extends BaseService<FinancingInfoDto, Fina
@Autowired @Autowired
private CommonServiceImpl commonService; private CommonServiceImpl commonService;
@Resource(type = RedisLockUtil.class)
private RedisLockUtil redisLockUtil;
@UserLimits @UserLimits
public Page<Map<String, Object>> queryForFinancingInfoPage(Page<Map<String, Object>> page, String type, String status, String regionalCompaniesCode, String ownersName) { public Page<Map<String, Object>> queryForFinancingInfoPage(Page<Map<String, Object>> page, String type, String status, String regionalCompaniesCode, String ownersName) {
StdUserEmpower orgCode = (StdUserEmpower) redisUtils.get("Emp_" + RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())); StdUserEmpower orgCode = (StdUserEmpower) redisUtils.get("Emp_" + RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken()));
...@@ -115,76 +121,83 @@ public class FinancingInfoServiceImpl extends BaseService<FinancingInfoDto, Fina ...@@ -115,76 +121,83 @@ public class FinancingInfoServiceImpl extends BaseService<FinancingInfoDto, Fina
} }
public FinancingInfoDto saveModel(FinancingInfoDto model) { public FinancingInfoDto saveModel(FinancingInfoDto model) {
List<String> ids; String lockName = String.format("LockName:powerStationExamine");
if (model.getPeasantHouseholdIds().contains(",")) { try{
ids = Arrays.asList(model.getPeasantHouseholdIds().split(",")); Boolean isLocked = redisLockUtil.tryLock(lockName, lockName, 10, 1);
} else { if (BooleanUtils.isNotTrue(isLocked)) {
ids = Arrays.asList(new String[]{model.getPeasantHouseholdIds()}); throw new com.yeejoin.amos.component.robot.BadRequest("其他用户正在操作,请刷新后再试!");
}
Map<String, Object> orgInfo = this.getBaseMapper().selectRZOrgInfo(model.getFinancingCompaniesSeq());
model.setFinancingCompaniesCode(orgInfo.getOrDefault("ORG_CODE", "").toString());
model.setFinancingCompaniesName(orgInfo.getOrDefault("COMPANY_NAME", "").toString());
ids.stream().forEach(e -> {
LambdaQueryWrapper<FinancingInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(FinancingInfo::getPeasantHouseholdId, Long.valueOf(e));
FinancingInfo financingInfos = this.getBaseMapper().selectOne(queryWrapper);
if (ObjectUtils.isEmpty(financingInfos)) {
model.setStatus(FinancingAuditEnum.待融资审核.getName());
model.setPeasantHouseholdId(Long.valueOf(e));
FinancingInfoDto financingInfoDto = new FinancingInfoDto();
BeanUtils.copyProperties(model, financingInfoDto);
financingInfoDto.setSequenceNbr(null);
this.createWithModel(financingInfoDto);
//开启工作流 并执行一步
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESSKEY);
Date date = new Date();
dto.setBusinessKey(String.valueOf(date.getTime()));
dto.setCompleteFirstTask(true);
//工作流程图第一步执行后存在互斥网关 isFlag为表达式 默认为1执行到融资审核
HashMap<String, Object> map = new HashMap<>();
map.put("isFlag", "0");
dto.setVariables(map);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = workFlowService.startBatch(actWorkflowBatchDTO);
List<WorkflowResultDto> workflowResultDtos = workFlowService.buildWorkFlowInfo(processTaskDTOS);
WorkflowResultDto workflowResultDto = workflowResultDtos.get(0);
FinancingAuditingDto financingAuditingDto = new FinancingAuditingDto();
BeanUtils.copyProperties(workflowResultDto, financingAuditingDto);
financingAuditingDto.setPeasantHouseholdId(Long.valueOf(e));
financingAuditingDto.setPromoter(RequestContext.getExeUserId());
financingAuditingService.createWithModel(financingAuditingDto);
} }
//批量 兼容审核不通过及整改待推送
else if (financingInfos.getStatus().equals(FinancingAuditEnum.审核不通过.getName()) || financingInfos.getStatus().equals(FinancingAuditEnum.整改待推送.getName()) ){
financingInfos.setStatus(FinancingAuditEnum.待融资审核.getName());
Map<String, Object> orgInfo1 = this.getBaseMapper().selectRZOrgInfo(model.getFinancingCompaniesSeq());
//业务表中无工作流id 需要补充
LambdaQueryWrapper<FinancingAuditing> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(FinancingAuditing::getPeasantHouseholdId, Long.valueOf(e));
queryWrapper1.orderByDesc(BaseEntity::getRecDate);
queryWrapper1.last("limit 1");
FinancingAuditing financingInfos1 = financingAuditingService.getBaseMapper().selectOne(queryWrapper1);
financingInfos.setFinancingCompaniesCode(orgInfo1.getOrDefault("ORG_CODE", "").toString()); List<String> ids;
financingInfos.setFinancingCompaniesName(orgInfo1.getOrDefault("COMPANY_NAME", "").toString()); if (model.getPeasantHouseholdIds().contains(",")) {
this.updateById(financingInfos); ids = Arrays.asList(model.getPeasantHouseholdIds().split(","));
Map<String, Object> map = BeanUtil.beanToMap(financingInfos); } else {
map.put("isFlag","0"); ids = Arrays.asList(new String[]{model.getPeasantHouseholdIds()});
map.put("instanceId",financingInfos1.getInstanceId());
this.execueFlow(map);
} }
Map<String, Object> orgInfo = this.getBaseMapper().selectRZOrgInfo(model.getFinancingCompaniesSeq());
//发起待办 model.setFinancingCompaniesCode(orgInfo.getOrDefault("ORG_CODE", "").toString());
model.setFinancingCompaniesName(orgInfo.getOrDefault("COMPANY_NAME", "").toString());
ids.stream().forEach(e -> {
LambdaQueryWrapper<FinancingInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(FinancingInfo::getPeasantHouseholdId, Long.valueOf(e));
FinancingInfo financingInfos = this.getBaseMapper().selectOne(queryWrapper);
if (ObjectUtils.isEmpty(financingInfos)) {
model.setStatus(FinancingAuditEnum.待融资审核.getName());
model.setPeasantHouseholdId(Long.valueOf(e));
FinancingInfoDto financingInfoDto = new FinancingInfoDto();
BeanUtils.copyProperties(model, financingInfoDto);
financingInfoDto.setSequenceNbr(null);
this.createWithModel(financingInfoDto);
//开启工作流 并执行一步
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESSKEY);
Date date = new Date();
dto.setBusinessKey(String.valueOf(date.getTime()));
dto.setCompleteFirstTask(true);
//工作流程图第一步执行后存在互斥网关 isFlag为表达式 默认为1执行到融资审核
HashMap<String, Object> map = new HashMap<>();
map.put("isFlag", "0");
dto.setVariables(map);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = workFlowService.startBatch(actWorkflowBatchDTO);
List<WorkflowResultDto> workflowResultDtos = workFlowService.buildWorkFlowInfo(processTaskDTOS);
WorkflowResultDto workflowResultDto = workflowResultDtos.get(0);
FinancingAuditingDto financingAuditingDto = new FinancingAuditingDto();
BeanUtils.copyProperties(workflowResultDto, financingAuditingDto);
financingAuditingDto.setPeasantHouseholdId(Long.valueOf(e));
financingAuditingDto.setPromoter(RequestContext.getExeUserId());
financingAuditingService.createWithModel(financingAuditingDto);
}
//批量 兼容审核不通过及整改待推送
else if (financingInfos.getStatus().equals(FinancingAuditEnum.审核不通过.getName()) || financingInfos.getStatus().equals(FinancingAuditEnum.整改待推送.getName()) ){
financingInfos.setStatus(FinancingAuditEnum.待融资审核.getName());
Map<String, Object> orgInfo1 = this.getBaseMapper().selectRZOrgInfo(model.getFinancingCompaniesSeq());
//业务表中无工作流id 需要补充
LambdaQueryWrapper<FinancingAuditing> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(FinancingAuditing::getPeasantHouseholdId, Long.valueOf(e));
queryWrapper1.orderByDesc(BaseEntity::getRecDate);
queryWrapper1.last("limit 1");
FinancingAuditing financingInfos1 = financingAuditingService.getBaseMapper().selectOne(queryWrapper1);
financingInfos.setFinancingCompaniesCode(orgInfo1.getOrDefault("ORG_CODE", "").toString());
financingInfos.setFinancingCompaniesName(orgInfo1.getOrDefault("COMPANY_NAME", "").toString());
this.updateById(financingInfos);
Map<String, Object> map = BeanUtil.beanToMap(financingInfos);
map.put("isFlag","0");
map.put("instanceId",financingInfos1.getInstanceId());
this.execueFlow(map);
}
//发起待办
// commonService.buildTaskModel(buildDZTRZTaskModel(model, workflowResultDto, date)); // commonService.buildTaskModel(buildDZTRZTaskModel(model, workflowResultDto, date));
}); });
}finally {
redisLockUtil.releaseLock(lockName);
}
return model; return model;
} }
......
...@@ -126,7 +126,7 @@ public class WorkOrderServiceImpl extends BaseService<WorkOrderDto, WorkOrder, W ...@@ -126,7 +126,7 @@ public class WorkOrderServiceImpl extends BaseService<WorkOrderDto, WorkOrder, W
} }
if (!workorderPeasant.isEmpty()) { if (!workorderPeasant.isEmpty()) {
String names = workorderPeasant.stream().map(i -> i.getOwnersName()).collect(Collectors.joining(",")); String names = workorderPeasant.stream().map(i -> i.getOwnersName()).collect(Collectors.joining(","));
throw new Exception("电站" + names + ",已被工单关联"); throw new Exception("电站" + names + ",已被工单关联,请重新选择电站");
} }
// 保存派工单 // 保存派工单
...@@ -270,7 +270,7 @@ public class WorkOrderServiceImpl extends BaseService<WorkOrderDto, WorkOrder, W ...@@ -270,7 +270,7 @@ public class WorkOrderServiceImpl extends BaseService<WorkOrderDto, WorkOrder, W
} }
@Transactional @Transactional
public PowerStationConstructionData addOrUpdate(PowerStationConstructionData powerStationConstructionData) { public synchronized PowerStationConstructionData addOrUpdate(PowerStationConstructionData powerStationConstructionData) {
// 如果不是提交进行单独保存 // 如果不是提交进行单独保存
if (powerStationConstructionData.isCommitFlow()) { if (powerStationConstructionData.isCommitFlow()) {
// if(powerStationConstructionData.getSequenceNbr()!=null){ // if(powerStationConstructionData.getSequenceNbr()!=null){
...@@ -334,8 +334,8 @@ public class WorkOrderServiceImpl extends BaseService<WorkOrderDto, WorkOrder, W ...@@ -334,8 +334,8 @@ public class WorkOrderServiceImpl extends BaseService<WorkOrderDto, WorkOrder, W
// 新增施工信息 // 新增施工信息
// 防止重复添加 // 防止重复添加
LambdaUpdateWrapper<PowerStationConstructionData> psc = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PowerStationConstructionData> psc = new LambdaUpdateWrapper<>();
// psc.eq(PowerStationConstructionData::getWorkOrderPowerStationId, psc.eq(PowerStationConstructionData::getWorkOrderPowerStationId,
// powerStationConstructionData.getWorkOrderPowerStationId()); powerStationConstructionData.getWorkOrderPowerStationId());
psc.eq(PowerStationConstructionData::getWorkOrderId, powerStationConstructionData.getWorkOrderId()); psc.eq(PowerStationConstructionData::getWorkOrderId, powerStationConstructionData.getWorkOrderId());
powerStationConstructionDataService.saveOrUpdate(powerStationConstructionData, psc); powerStationConstructionDataService.saveOrUpdate(powerStationConstructionData, psc);
// powerStationConstructionDataService.saveOrUpdate(powerStationConstructionData); // powerStationConstructionDataService.saveOrUpdate(powerStationConstructionData);
......
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