# Conflicts: # pmapi/src/main/resources/application-dev.yml # pmapi/src/main/resources/application-prod.ymltags/24080901
@@ -0,0 +1,29 @@ | |||||
package com.ningdatech.pmapi.filemanage.controller; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.pmapi.filemanage.manage.DocumentationManage; | |||||
import com.ningdatech.pmapi.filemanage.model.param.DocumentationListParam; | |||||
import com.ningdatech.pmapi.filemanage.model.vo.DocumentationVO; | |||||
import io.swagger.annotations.Api; | |||||
import lombok.AllArgsConstructor; | |||||
import org.springframework.web.bind.annotation.*; | |||||
/** | |||||
* @Classname DocumentationController | |||||
* @Description | |||||
* @Date 2023/6/6 15:48 | |||||
* @Author PoffyZhang | |||||
*/ | |||||
@RestController | |||||
@AllArgsConstructor | |||||
@Api(tags = "档案管理-资料文档控制器") | |||||
@RequestMapping("/api/v1/file-manage/documentation") | |||||
public class DocumentationController { | |||||
private final DocumentationManage documentationManage; | |||||
@GetMapping("/list") | |||||
public PageVo<DocumentationVO> list(@ModelAttribute DocumentationListParam param){ | |||||
return documentationManage.list(param); | |||||
} | |||||
} |
@@ -0,0 +1,52 @@ | |||||
package com.ningdatech.pmapi.filemanage.manage; | |||||
import cn.hutool.core.bean.BeanUtil; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.pmapi.filemanage.model.entity.Documentation; | |||||
import com.ningdatech.pmapi.filemanage.model.param.DocumentationListParam; | |||||
import com.ningdatech.pmapi.filemanage.model.vo.DocumentationVO; | |||||
import com.ningdatech.pmapi.filemanage.service.IDocumentationService; | |||||
import lombok.AllArgsConstructor; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
import java.util.stream.Collectors; | |||||
/** | |||||
* @Classname DocumentationManage | |||||
* @Description | |||||
* @Date 2023/6/6 16:04 | |||||
* @Author PoffyZhang | |||||
*/ | |||||
@Component | |||||
@AllArgsConstructor | |||||
@Slf4j | |||||
public class DocumentationManage { | |||||
private final IDocumentationService documentationService; | |||||
/** | |||||
* 文档列表 | |||||
* @param param | |||||
* @return | |||||
*/ | |||||
public PageVo<DocumentationVO> list(DocumentationListParam param) { | |||||
Page<Documentation> page = param.page(); | |||||
documentationService.page(page, Wrappers.lambdaQuery(Documentation.class) | |||||
.eq(Objects.nonNull(param.getGroupId()), Documentation::getGroupId, param.getGroupId())); | |||||
if(0L == page.getTotal()){ | |||||
return PageVo.empty(); | |||||
} | |||||
List<DocumentationVO> vos = page.getRecords().stream() | |||||
.map(d -> BeanUtil.copyProperties(d,DocumentationVO.class)) | |||||
.collect(Collectors.toList()); | |||||
return PageVo.of(vos,page.getTotal()); | |||||
} | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package com.ningdatech.pmapi.filemanage.mapper; | |||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
import com.ningdatech.pmapi.filemanage.model.entity.Documentation; | |||||
/** | |||||
* <p> | |||||
* Mapper 接口 | |||||
* </p> | |||||
* | |||||
* @author CMM | |||||
* @since 2023-02-27 | |||||
*/ | |||||
public interface DocumentationMapper extends BaseMapper<Documentation> { | |||||
} |
@@ -0,0 +1,5 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.ningdatech.pmapi.filemanage.mapper.DocumentationMapper"> | |||||
</mapper> |
@@ -0,0 +1,44 @@ | |||||
package com.ningdatech.pmapi.filemanage.model.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* @Classname Documentation | |||||
* @Description | |||||
* @Date 2023/6/6 14:41 | |||||
* @Author PoffyZhang | |||||
*/ | |||||
@Data | |||||
@TableName("nd_documentation") | |||||
@ApiModel(value = "nd_documentation", description = "资料文档") | |||||
public class Documentation { | |||||
@ApiModelProperty("主键") | |||||
@TableId(type = IdType.AUTO) | |||||
private Long id; | |||||
@ApiModelProperty("文件名") | |||||
private String fileName; | |||||
@ApiModelProperty("上传人") | |||||
private String creatBy; | |||||
@ApiModelProperty("上传时间") | |||||
private LocalDateTime creatOn; | |||||
@ApiModelProperty("文档大小 kb") | |||||
private Long size; | |||||
@ApiModelProperty("文档分类ID") | |||||
private Long groupId; | |||||
@ApiModelProperty("排序") | |||||
private Integer sort; | |||||
} |
@@ -0,0 +1,38 @@ | |||||
package com.ningdatech.pmapi.filemanage.model.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* @Classname Documentation | |||||
* @Description | |||||
* @Date 2023/6/6 14:41 | |||||
* @Author PoffyZhang | |||||
*/ | |||||
@Data | |||||
@TableName("nd_documentation_group") | |||||
@ApiModel(value = "nd_documentation_group", description = "资料文档分组") | |||||
public class DocumentationGroup { | |||||
@ApiModelProperty("主键") | |||||
@TableId(type = IdType.AUTO) | |||||
private Long id; | |||||
@ApiModelProperty("上传人") | |||||
private String creatBy; | |||||
@ApiModelProperty("上传时间") | |||||
private LocalDateTime creatOn; | |||||
@ApiModelProperty("分组名") | |||||
private String name; | |||||
@ApiModelProperty("排序") | |||||
private Integer sort; | |||||
} |
@@ -0,0 +1,19 @@ | |||||
package com.ningdatech.pmapi.filemanage.model.param; | |||||
import com.ningdatech.basic.model.PagePo; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* @Classname DocumentationListParam | |||||
* @Description | |||||
* @Date 2023/6/6 16:06 | |||||
* @Author PoffyZhang | |||||
*/ | |||||
@Data | |||||
public class DocumentationListParam extends PagePo { | |||||
@ApiModelProperty("分组ID") | |||||
private Long groupId; | |||||
} |
@@ -0,0 +1,39 @@ | |||||
package com.ningdatech.pmapi.filemanage.model.vo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* @Classname Documentation | |||||
* @Description | |||||
* @Date 2023/6/6 14:41 | |||||
* @Author PoffyZhang | |||||
*/ | |||||
@Data | |||||
@ApiModel(value = "nd_documentation", description = "资料文档") | |||||
public class DocumentationVO { | |||||
@ApiModelProperty("主键") | |||||
private Long id; | |||||
@ApiModelProperty("文件名") | |||||
private String fileName; | |||||
@ApiModelProperty("上传人") | |||||
private String creatBy; | |||||
@ApiModelProperty("上传时间") | |||||
private LocalDateTime creatOn; | |||||
@ApiModelProperty("文档大小 kb") | |||||
private Long size; | |||||
@ApiModelProperty("文档分类ID") | |||||
private Long groupId; | |||||
@ApiModelProperty("排序") | |||||
private Integer sort; | |||||
} |
@@ -0,0 +1,9 @@ | |||||
package com.ningdatech.pmapi.filemanage.service; | |||||
import com.baomidou.mybatisplus.extension.service.IService; | |||||
import com.ningdatech.pmapi.filemanage.model.entity.Documentation; | |||||
public interface IDocumentationService extends IService<Documentation> { | |||||
} |
@@ -0,0 +1,20 @@ | |||||
package com.ningdatech.pmapi.filemanage.service.impl; | |||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import com.ningdatech.pmapi.filemanage.mapper.DocumentationMapper; | |||||
import com.ningdatech.pmapi.filemanage.model.entity.Documentation; | |||||
import com.ningdatech.pmapi.filemanage.service.IDocumentationService; | |||||
import org.springframework.stereotype.Service; | |||||
/** | |||||
* <p> | |||||
* 服务实现类 | |||||
* </p> | |||||
* | |||||
* @author Poffy | |||||
* @since 2023-02-13 | |||||
*/ | |||||
@Service | |||||
public class DocumentationServiceImpl extends ServiceImpl<DocumentationMapper, Documentation> implements IDocumentationService { | |||||
} |
@@ -204,6 +204,7 @@ public class DeclaredProjectManage { | |||||
//项目名称去重 | //项目名称去重 | ||||
if(StringUtils.isNotBlank(projectDto.getProjectName()) && | if(StringUtils.isNotBlank(projectDto.getProjectName()) && | ||||
!projectDto.getProjectName().equals(projectInfo.getProjectName())){ | !projectDto.getProjectName().equals(projectInfo.getProjectName())){ | ||||
projectDto.setProjectCode(projectInfo.getProjectCode()); | |||||
defaultDeclaredProjectManage.checkDuplication(projectDto); | defaultDeclaredProjectManage.checkDuplication(projectDto); | ||||
} | } | ||||
//判断申报金额 是否等于总的 判断年度支付金额 是否等于总金额 | //判断申报金额 是否等于总的 判断年度支付金额 是否等于总金额 | ||||
@@ -91,7 +91,7 @@ public class DefaultDeclaredProjectManage { | |||||
public void checkDuplication(ProjectDTO project){ | public void checkDuplication(ProjectDTO project){ | ||||
VUtils.isTrue(projectService.count(Wrappers.lambdaQuery(Project.class) | VUtils.isTrue(projectService.count(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getProjectName,project.getProjectName()) | .eq(Project::getProjectName,project.getProjectName()) | ||||
.ne(Objects.nonNull(project.getId()),Project::getId,project.getId())) > 0) | |||||
.ne(Objects.nonNull(project.getProjectCode()),Project::getProjectCode,project.getProjectCode())) > 0) | |||||
.throwMessage(String.format("修改失败 此项目名 【%s】 已存在!",project.getProjectName())); | .throwMessage(String.format("修改失败 此项目名 【%s】 已存在!",project.getProjectName())); | ||||
} | } | ||||
@@ -89,6 +89,7 @@ public class ProjectAdjustmentManage { | |||||
//项目名称去重 | //项目名称去重 | ||||
if(StringUtils.isNotBlank(projectDto.getProjectName()) && | if(StringUtils.isNotBlank(projectDto.getProjectName()) && | ||||
!projectDto.getProjectName().equals(projectInfo.getProjectName())){ | !projectDto.getProjectName().equals(projectInfo.getProjectName())){ | ||||
projectDto.setProjectCode(projectInfo.getProjectCode()); | |||||
defaultDeclaredProjectManage.checkDuplication(projectDto); | defaultDeclaredProjectManage.checkDuplication(projectDto); | ||||
} | } | ||||
@@ -34,6 +34,9 @@ public class ProjectDTO implements Serializable { | |||||
@ApiModelProperty("所属地区编号") | @ApiModelProperty("所属地区编号") | ||||
private String areaCode; | private String areaCode; | ||||
@ApiModelProperty("项目编号") | |||||
private String projectCode; | |||||
@ApiModelProperty("所属地区名称") | @ApiModelProperty("所属地区名称") | ||||
private String area; | private String area; | ||||
@@ -16,6 +16,7 @@ import com.ningdatech.pmapi.scheduler.contants.TaskContant; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.beans.factory.annotation.Value; | |||||
import org.springframework.scheduling.annotation.Scheduled; | import org.springframework.scheduling.annotation.Scheduled; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.net.InetAddress; | import java.net.InetAddress; | ||||
@@ -40,10 +41,13 @@ public class CheckProvincialReviewResultTask { | |||||
private final IProjectService projectService; | private final IProjectService projectService; | ||||
private final StateMachineUtils stateMachineUtils; | private final StateMachineUtils stateMachineUtils; | ||||
@Value("${hostname}") | |||||
private String HOST_NAME; | |||||
@Scheduled(cron = "0 */2 * * * ?") | @Scheduled(cron = "0 */2 * * * ?") | ||||
public void statusFlow() throws UnknownHostException { | public void statusFlow() throws UnknownHostException { | ||||
//测试暂时用自己电脑HOST | |||||
if (TaskContant.Host.HOST_207.equals(InetAddress.getLocalHost().getHostName())) { | |||||
// | |||||
if (HOST_NAME.equals(InetAddress.getLocalHost().getHostName())) { | |||||
//1. 定时取 省级部门联审中的项目 去取项目 | //1. 定时取 省级部门联审中的项目 去取项目 | ||||
List<Project> projectList = projectService.list(Wrappers.lambdaQuery(Project.class) | List<Project> projectList = projectService.list(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getStage, ProjectStatusEnum.NOT_APPROVED.getCode()) | .eq(Project::getStage, ProjectStatusEnum.NOT_APPROVED.getCode()) | ||||
@@ -0,0 +1,114 @@ | |||||
package com.ningdatech.pmapi.scheduler.task; | |||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import cn.hutool.core.io.FileUtil; | |||||
import cn.hutool.core.io.file.FileReader; | |||||
import cn.hutool.core.io.file.FileWriter; | |||||
import cn.hutool.core.lang.UUID; | |||||
import cn.hutool.json.JSONUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.ningdatech.log.mapper.OptLogMapper; | |||||
import com.ningdatech.log.model.domain.OptLog; | |||||
import com.ningdatech.pmapi.organization.mapper.DingEmployeeInfoMapper; | |||||
import com.ningdatech.pmapi.organization.model.entity.DingEmployeeInfo; | |||||
import com.ningdatech.pmapi.scheduler.task.model.CommonLog; | |||||
import com.ningdatech.pmapi.user.entity.UserInfo; | |||||
import com.ningdatech.pmapi.user.service.IUserInfoService; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.scheduling.annotation.Scheduled; | |||||
import org.springframework.stereotype.Component; | |||||
import java.time.LocalDateTime; | |||||
import java.time.format.DateTimeFormatter; | |||||
import java.util.List; | |||||
/** | |||||
* 通用日志写入任务 | |||||
* @author liushuai | |||||
*/ | |||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class CommonLogTask { | |||||
private final OptLogMapper optLogMapper; | |||||
private final IUserInfoService userInfoService; | |||||
private final DingEmployeeInfoMapper dingEmployeeInfoMapper; | |||||
/** | |||||
* 日志记录文件位置 | |||||
*/ | |||||
private final static String LOG_RECORD_ADDRESS = "/opt/log/"; | |||||
private final static String LOG_ID_FILE = "logId.txt"; | |||||
private final static String LOG_FILE = "common_log_"; | |||||
@Scheduled(fixedDelay = 120000) | |||||
public void writeLog(){ | |||||
//获取记录ID文件 | |||||
boolean idFileExist = FileUtil.exist(LOG_RECORD_ADDRESS + LOG_ID_FILE); | |||||
if (!idFileExist){ | |||||
FileUtil.touch(LOG_RECORD_ADDRESS + LOG_ID_FILE); | |||||
} | |||||
FileReader fileReader = new FileReader(LOG_RECORD_ADDRESS + LOG_ID_FILE); | |||||
String result = fileReader.readString(); | |||||
long startLogId = 0L; | |||||
if (StringUtils.isNotBlank(result)){ | |||||
startLogId = Long.parseLong(result); | |||||
} | |||||
LambdaQueryWrapper<OptLog> query = Wrappers.lambdaQuery(OptLog.class).gt(OptLog::getId,startLogId); | |||||
//查询日志 | |||||
List<OptLog> logList = optLogMapper.selectList(query); | |||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | |||||
if (CollUtil.isNotEmpty(logList)){ | |||||
logList.forEach(optLog -> { | |||||
CommonLog commonLog = new CommonLog(); | |||||
UserInfo userInfo = userInfoService.getById(optLog.getCreateBy()); | |||||
String employeeCode = userInfo.getEmployeeCode(); | |||||
if (StringUtils.isNotBlank(employeeCode)){ | |||||
DingEmployeeInfo dingEmployeeInfo = dingEmployeeInfoMapper.selectOne(new LambdaQueryWrapper<DingEmployeeInfo>() | |||||
.eq(DingEmployeeInfo::getEmployeeCode,employeeCode)); | |||||
if (dingEmployeeInfo != null){ | |||||
commonLog.setUserId(String.valueOf(dingEmployeeInfo.getAccountId())); | |||||
} | |||||
}else { | |||||
commonLog.setUserId(String.valueOf(userInfo.getId())); | |||||
} | |||||
commonLog.setUserRole("政府工作人员"); | |||||
commonLog.setAreaCode(userInfo.getRegionCode()); | |||||
String description = optLog.getDescription(); | |||||
if (description.equals("登录")){ | |||||
commonLog.setActionType(1); | |||||
}else if (description.equals("退出登录")){ | |||||
commonLog.setActionType(2); | |||||
}else { | |||||
commonLog.setActionType(3); | |||||
} | |||||
String actionId = UUID.randomUUID().toString(); | |||||
commonLog.setActionId(actionId); | |||||
commonLog.setActionTime(df.format(optLog.getStartTime())); | |||||
commonLog.setActionDuration(optLog.getConsumingTime()); | |||||
commonLog.setActionStatus(0); | |||||
commonLog.setAppCode(""); | |||||
//判断当天日志文件是否存在 | |||||
DateTimeFormatter dfNow = DateTimeFormatter.ofPattern("yyyyMMdd"); | |||||
String fileName = LOG_RECORD_ADDRESS + LOG_FILE + dfNow.format(LocalDateTime.now()) + ".log"; | |||||
boolean fileExist = FileUtil.exist(fileName); | |||||
if (!fileExist){ | |||||
//不存在则创建当天日志文件 | |||||
FileUtil.touch(fileName); | |||||
} | |||||
//写入通用规则 | |||||
FileWriter writer = new FileWriter(LOG_RECORD_ADDRESS + LOG_FILE); | |||||
writer.append(JSONUtil.toJsonStr(commonLog)); | |||||
if (commonLog.getActionType() == 3){ | |||||
CommonLog commonLogEnd = new CommonLog(); | |||||
BeanUtil.copyProperties(commonLog,commonLogEnd); | |||||
commonLogEnd.setActionType(4); | |||||
writer.append(JSONUtil.toJsonStr(commonLogEnd)); | |||||
} | |||||
}); | |||||
//记录最后一个节点位置 | |||||
FileWriter writer = new FileWriter(LOG_RECORD_ADDRESS + LOG_ID_FILE); | |||||
writer.write(String.valueOf(logList.get(logList.size() - 1).getId())); | |||||
} | |||||
} | |||||
} |
@@ -22,6 +22,7 @@ import com.wflow.workflow.service.WflowFormsService; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.beans.factory.annotation.Value; | |||||
import org.springframework.scheduling.annotation.Scheduled; | import org.springframework.scheduling.annotation.Scheduled; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -48,9 +49,12 @@ public class InitProcessTask { | |||||
private final RegionCacheHelper regionCacheHelper; | private final RegionCacheHelper regionCacheHelper; | ||||
@Value("${hostname}") | |||||
private String HOST_NAME; | |||||
@Scheduled(cron = "0 14 16 07 3 ?") | @Scheduled(cron = "0 14 16 07 3 ?") | ||||
public void doTask() throws UnknownHostException { | public void doTask() throws UnknownHostException { | ||||
if (TaskContant.Host.HOST_ZPF.equals(InetAddress.getLocalHost().getHostName())) { | |||||
if (HOST_NAME.equals(InetAddress.getLocalHost().getHostName())) { | |||||
log.info("=========== 初始化丽水二期 系统表单和流程配置 ======== 任务开始"); | log.info("=========== 初始化丽水二期 系统表单和流程配置 ======== 任务开始"); | ||||
StopWatch stopWatch = new StopWatch(); | StopWatch stopWatch = new StopWatch(); | ||||
stopWatch.start(); | stopWatch.start(); | ||||
@@ -12,6 +12,7 @@ import com.ningdatech.pmapi.staging.service.IProjectStagingService; | |||||
import com.ningdatech.pmapi.staging.utils.ProjectStatusFlowMapUtil; | import com.ningdatech.pmapi.staging.utils.ProjectStatusFlowMapUtil; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.beans.factory.annotation.Value; | |||||
import org.springframework.scheduling.annotation.Scheduled; | import org.springframework.scheduling.annotation.Scheduled; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -40,10 +41,13 @@ public class ProjectStatusFlowTask { | |||||
private final ProjectStatusFlowMapUtil projectStatusFlowMapUtil; | private final ProjectStatusFlowMapUtil projectStatusFlowMapUtil; | ||||
@Value("${hostname}") | |||||
private String HOST_NAME; | |||||
@Scheduled(cron = "0 */1 * * * ?") | @Scheduled(cron = "0 */1 * * * ?") | ||||
public void statusFlow() throws UnknownHostException { | public void statusFlow() throws UnknownHostException { | ||||
//测试暂时用自己207 | |||||
if (TaskContant.Host.HOST_207.equals(InetAddress.getLocalHost().getHostName())) { | |||||
// | |||||
if (HOST_NAME.equals(InetAddress.getLocalHost().getHostName())) { | |||||
//1. 定时取 项目暂存表的数据 去进行状态继续流转 | //1. 定时取 项目暂存表的数据 去进行状态继续流转 | ||||
List<ProjectStaging> stagingList = projectStagingService.list(Wrappers.lambdaQuery(ProjectStaging.class) | List<ProjectStaging> stagingList = projectStagingService.list(Wrappers.lambdaQuery(ProjectStaging.class) | ||||
.eq(ProjectStaging::getDead,Boolean.FALSE) | .eq(ProjectStaging::getDead,Boolean.FALSE) | ||||
@@ -10,6 +10,7 @@ import com.ningdatech.pmapi.staging.service.INdWorkNoticeStagingService; | |||||
import com.ningdatech.pmapi.todocenter.bean.entity.WorkNoticeInfo; | import com.ningdatech.pmapi.todocenter.bean.entity.WorkNoticeInfo; | ||||
import com.ningdatech.zwdd.client.ZwddClient; | import com.ningdatech.zwdd.client.ZwddClient; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.beans.factory.annotation.Value; | |||||
import org.springframework.scheduling.annotation.Scheduled; | import org.springframework.scheduling.annotation.Scheduled; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -36,10 +37,13 @@ public class WorkNoticeFlowTask { | |||||
private final INdWorkNoticeStagingService workNoticeStagingService; | private final INdWorkNoticeStagingService workNoticeStagingService; | ||||
private final ZwddClient zwddClient; | private final ZwddClient zwddClient; | ||||
@Value("${hostname}") | |||||
private String HOST_NAME; | |||||
@Scheduled(cron = "0 */1 * * * ?") | @Scheduled(cron = "0 */1 * * * ?") | ||||
public void statusFlow() throws UnknownHostException { | public void statusFlow() throws UnknownHostException { | ||||
//测试暂时用自己电脑HOST | //测试暂时用自己电脑HOST | ||||
if (TaskContant.Host.HOST_207.equals(InetAddress.getLocalHost().getHostName())) { | |||||
if (HOST_NAME.equals(InetAddress.getLocalHost().getHostName())) { | |||||
//1. 定时取 工作通知暂存表的数据进行发送 | //1. 定时取 工作通知暂存表的数据进行发送 | ||||
List<WorkNoticeStaging> stagingList = workNoticeStagingService.list(Wrappers.lambdaQuery(WorkNoticeStaging.class) | List<WorkNoticeStaging> stagingList = workNoticeStagingService.list(Wrappers.lambdaQuery(WorkNoticeStaging.class) | ||||
.eq(WorkNoticeStaging::getDead, Boolean.FALSE) | .eq(WorkNoticeStaging::getDead, Boolean.FALSE) | ||||
@@ -0,0 +1,43 @@ | |||||
package com.ningdatech.pmapi.scheduler.task.model; | |||||
import lombok.Data; | |||||
@Data | |||||
public class CommonLog { | |||||
/** | |||||
* 用户id | |||||
*/ | |||||
private String userId; | |||||
/** | |||||
* 用户角色(群众、企业、政府工作人员、第三方) | |||||
*/ | |||||
private String userRole; | |||||
/** | |||||
* 地区编码 | |||||
*/ | |||||
private String areaCode; | |||||
/** | |||||
* 操作类型(1-登录 2-离开 3-办事开始 4-办事结束) | |||||
*/ | |||||
private Integer actionType; | |||||
/** | |||||
* 操作标识 | |||||
*/ | |||||
private String actionId; | |||||
/** | |||||
* 操作时间 | |||||
*/ | |||||
private String actionTime; | |||||
/** | |||||
* 操作时长 | |||||
*/ | |||||
private Long actionDuration; | |||||
/** | |||||
* 操作状态(0-成功 1-失败) | |||||
*/ | |||||
private Integer actionStatus; | |||||
/** | |||||
* 应用编码 | |||||
*/ | |||||
private String appCode; | |||||
} |
@@ -393,7 +393,7 @@ public class TodoCenterManage { | |||||
} | } | ||||
nodeId = task.getTaskDefinitionKey(); | nodeId = task.getTaskDefinitionKey(); | ||||
// 退回该任务 | // 退回该任务 | ||||
processTaskService.handleTask(param, employeeCode); | |||||
processTaskService.handleTaskLs(param, employeeCode); | |||||
//退回审核后 所处理的逻辑 | //退回审核后 所处理的逻辑 | ||||
handlerManage.afterBackTodo(declaredProject,instance); | handlerManage.afterBackTodo(declaredProject,instance); | ||||
break; | break; | ||||
@@ -954,7 +954,12 @@ public class TodoCenterManage { | |||||
VUtils.isTrue(Objects.isNull(projectInfo)).throwMessage("调整失败 此项目不存在!"); | VUtils.isTrue(Objects.isNull(projectInfo)).throwMessage("调整失败 此项目不存在!"); | ||||
//项目名称去重 | //项目名称去重 | ||||
defaultDeclaredProjectManage.checkDuplication(projectDto); | |||||
//项目名称去重 | |||||
if(StringUtils.isNotBlank(projectDto.getProjectName()) && | |||||
!projectDto.getProjectName().equals(projectInfo.getProjectName())){ | |||||
projectDto.setProjectCode(projectInfo.getProjectCode()); | |||||
defaultDeclaredProjectManage.checkDuplication(projectDto); | |||||
} | |||||
defaultDeclaredProjectManage.checkAmount(projectDto); | defaultDeclaredProjectManage.checkAmount(projectDto); | ||||
//修改项目内容 | //修改项目内容 | ||||
@@ -209,6 +209,8 @@ irs: | |||||
secret-key: 4 | secret-key: 4 | ||||
api-url: https://ibcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf | api-url: https://ibcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf | ||||
hostname: iZbp13nwyvib53j4j1p2xoZ | |||||
login: | login: | ||||
phone-verify-code: | phone-verify-code: | ||||
skip: true | skip: true | ||||
@@ -182,12 +182,7 @@ organization: | |||||
- GO_c1a6f8d5338e4a468337b08da76e2e31 | - GO_c1a6f8d5338e4a468337b08da76e2e31 | ||||
yxt: | yxt: | ||||
#wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl | |||||
wsdl-url: file:///data/nd-project-management/wsdl.xml | |||||
# #账号 | |||||
# user-code: hzndkj | |||||
# #密码 | |||||
# password: hzndkj@2021 | |||||
wsdl-url: classpath:wsdl-prod.xml | |||||
#账号 | #账号 | ||||
user-code: Lssdsjj | user-code: Lssdsjj | ||||
#密码 | #密码 | ||||
@@ -214,6 +209,7 @@ irs: | |||||
secret-key: 4 | secret-key: 4 | ||||
api-url: https://ibcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf | api-url: https://ibcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf | ||||
hostname: iZ6mx01gyeodd80imxd2gbZ | |||||
login: | login: | ||||
phone-verify-code: | phone-verify-code: | ||||
skip: true | skip: true | ||||
@@ -0,0 +1,120 @@ | |||||
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://impl.v1.ws.api.service.yxt.gooben.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://v1.ws.api.service.yxt.gooben.com/" name="WsItfTask" targetNamespace="http://impl.v1.ws.api.service.yxt.gooben.com/"> | |||||
<wsdl:import location="http://60.188.225.145:9501/ws/v1?wsdl=WsItfTask.wsdl" namespace="http://v1.ws.api.service.yxt.gooben.com/"> | |||||
</wsdl:import> | |||||
<wsdl:binding name="WsItfTaskSoapBinding" type="ns1:WsItfTask"> | |||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> | |||||
<wsdl:operation name="getSentResultCall"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="getSentResultCall"> | |||||
<soap:header message="ns1:getSentResultCall" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="getSentResultCallResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="getSubmitResult"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="getSubmitResult"> | |||||
<soap:header message="ns1:getSubmitResult" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="getSubmitResultResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="addFile"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="addFile"> | |||||
<soap:header message="ns1:addFile" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="addFileResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="submitMCLZTask"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="submitMCLZTask"> | |||||
<soap:header message="ns1:submitMCLZTask" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="submitMCLZTaskResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="getSentTaskResultCall"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="getSentTaskResultCall"> | |||||
<soap:header message="ns1:getSentTaskResultCall" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="getSentTaskResultCallResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="getSentTaskResultSms"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="getSentTaskResultSms"> | |||||
<soap:header message="ns1:getSentTaskResultSms" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="getSentTaskResultSmsResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="submitTask"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="submitTask"> | |||||
<soap:header message="ns1:submitTask" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="submitTaskResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="getSentResultSms"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="getSentResultSms"> | |||||
<soap:header message="ns1:getSentResultSms" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="getSentResultSmsResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="authorization"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="authorization"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="authorizationResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
<wsdl:operation name="getSmsReceive"> | |||||
<soap:operation soapAction="" style="document"/> | |||||
<wsdl:input name="getSmsReceive"> | |||||
<soap:header message="ns1:getSmsReceive" part="token" use="literal"> | |||||
</soap:header> | |||||
<soap:body parts="parameters" use="literal"/> | |||||
</wsdl:input> | |||||
<wsdl:output name="getSmsReceiveResponse"> | |||||
<soap:body use="literal"/> | |||||
</wsdl:output> | |||||
</wsdl:operation> | |||||
</wsdl:binding> | |||||
<wsdl:service name="WsItfTask"> | |||||
<wsdl:port binding="tns:WsItfTaskSoapBinding" name="WsItfTaskImplPort"> | |||||
<soap:address location="http://60.188.225.145:9501/ws/v1"/> | |||||
</wsdl:port> | |||||
</wsdl:service> | |||||
</wsdl:definitions> |