Commit 8ec76077 authored by wujiang's avatar wujiang

添加安全域控工程

parent c2954ebb
package com.yeejoin.amos.boot.module.common.api.dto;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/**
* @Description: 根据考试模板生成考试
* @Date: 2021/1/28 9:51
* @Version: 1.0
*/
@Data
public class CreatExamDto implements Serializable {
/**
* 考试模板ID
*/
private Long id;
/**
* 考试模板ID
*/
private String userIds;
/**
* 是否再考一次
*/
private Integer isAgain;
/**
* 业务KEY
*/
private String businessKey;
/**
* 是否小程序端业务
*/
private Boolean isMiniApp;
/**
* 考试ID
*/
private Long examinationId;
private Date endTime;
}
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-api</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-precontrol-api</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-common-biz</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<!--权限校验框架 -->
<dependency>
<groupId>com.github.liangbaika</groupId>
<artifactId>validate-spring-boot-starter</artifactId>
<version>0.9.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.9</version>
</dependency>
<!-- html转换word -->
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>6.0.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.docx4j/docx4j-ImportXHTML -->
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>6.0.0</version>
</dependency>
<!-- html转换word结束 -->
<dependency>
<groupId>com.hikvision.ga</groupId>
<artifactId>artemis-http-client</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
<!-- 添加commons-lang依赖包 -->
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.26.6</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
package com.yeejoin.precontrol.common.action;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.precontrol.common.entity.BadManagementPerson;
import com.yeejoin.precontrol.common.entity.Retribution;
import com.yeejoin.precontrol.common.entity.Reward;
import com.yeejoin.precontrol.common.entity.Task;
import com.yeejoin.precontrol.common.enums.RetributionEum;
import com.yeejoin.precontrol.common.enums.RewardEum;
import com.yeejoin.precontrol.common.service.IBadManagementPersonService;
import com.yeejoin.precontrol.common.service.IRetributionService;
import com.yeejoin.precontrol.common.service.IRewardService;
import com.yeejoin.precontrol.common.service.IStatisticsService;
import com.yeejoin.precontrol.common.service.ITaskService;
import com.yeejoin.precontrol.common.vo.TaskVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yeejoin.amos.component.rule.MethodParam;
import com.yeejoin.amos.component.rule.RuleActionBean;
import com.yeejoin.amos.component.rule.RuleMethod;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.dto.SingBadManagementDto;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
@Slf4j
@Service(value = "TaskAction")
@RuleActionBean(beanLabel = "任务")
public class TaskAction {
@Autowired
private IRewardService rewardService;
@Autowired
private IRetributionService retributionService;
@Autowired
private ITaskService taskService;
@Autowired
private IBadManagementPersonService badManagementPersonService;
@Autowired
IStatisticsService statisticsService;
@RuleMethod(methodLabel = "处理奖惩", project = "施工安全预控")
@Transactional
public void handleBad(@MethodParam(paramLabel = "违章dto") SingBadManagementDto dto) {
log.error("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
System.out.println("========================" + JSONObject.toJSONString(dto));
Date nowDate = new Date();
if (dto != null && dto.getId() != null) {
Task task = taskService.getById(dto.getId());
if (task != null) {
// ========================奖励========================
Reward list = (Reward) rewardService.getOne(new LambdaQueryWrapper<Reward>()
.eq(Reward::getTaskId, task.getId()));
// 防止重复添加数据
if (null == list) {
// 奖励
Reward reward = new Reward();
reward.setPersonId(task.getCreatePersonId());
reward.setTaskId(dto.getId());
reward.setMoney(dto.getRewardMoney());
reward.setStatus(RewardEum.NOT_REDEEMED.getValue());
reward.setCreateDate(nowDate);
// 判断是否已经该任务是否已处理
if (rewardService.getOne(new LambdaQueryWrapper<Reward>().eq(Reward::getPersonId, task.getCreatePersonId()).eq(Reward::getTaskId, task.getId())) == null) {
rewardService.save(reward);
}
}
// ========================惩罚========================
Map<String, Object> map = new HashMap<String, Object>();
map.put("task_id", dto.getId());
//List<BadManagementPerson> listIds = (List<BadManagementPerson>) badManagementPersonService.listByMap(map);
List<Long> listIds = dto.getBadManagementId();
log.error("========================" + JSONObject.toJSONString(listIds));
if (listIds != null && listIds.size() > 0) {
List<Retribution> listRe = new ArrayList<Retribution>();
for (Long personId : listIds) {
Retribution retribution = new Retribution();
retribution.setCompanyId(dto.getCompanyId());
retribution.setPersonId(personId);
retribution.setTaskId(dto.getId());
retribution.setMoney(dto.getPunishMoney());
retribution.setStatus(RetributionEum.UNPAID_FINE.getValue());
retribution.setCreateDate(nowDate);
// 判断是否已经该任务是否已处理
Retribution retribution1 = retributionService.getOne(new LambdaQueryWrapper<Retribution>().eq(Retribution::getPersonId, task.getCreatePersonId()).eq(Retribution::getTaskId, task.getId()));
if ( retribution1 == null) {
log.error("========================" + JSONObject.toJSONString(retribution1));
listRe.add(retribution);
}
}
// // 过滤重复数据
// List<Retribution> listDb = (List<Retribution>) retributionService.list(new LambdaQueryWrapper<Retribution>()
// .eq(Retribution::getTaskId, task.getId()));
// if (null != listDb && listDb.size() > 0) {
// personIds = processRereibution(listDb, personIds,task.getId());
// }
// 惩罚
// personIds.forEach(personId -> {
//
// });
retributionService.saveBatch(listRe);
}
//更新推送
String orgCode= task.getOrgCode();
statisticsService.initWs(orgCode, Constant.WS_VIOLATIONRANK);
statisticsService.initWs(orgCode, Constant.WS_FBSVIOLATIONRANK);
statisticsService.initWs(orgCode, Constant.WS_DAYVIOLATION);
statisticsService.initWs(orgCode, Constant.WS_REDORGREENCODE);
}
} else {
log.info("处理奖惩 dto is null");
}
}
// 处理重复数据
public static List<Long> processRereibution(List<Retribution> listDb, List<Long> personIds, Long taskId) {
List<Long> retPersonIds = new ArrayList<>();
for (Long personId : personIds) {
if(duplication(listDb,personId, taskId)){
retPersonIds.add(personId);
}
}
return retPersonIds;
}
// 去重
public static boolean duplication(List<Retribution> retributionList, Long personId, Long taskId) {
for (Retribution retribution : retributionList) {
if(personId.equals(retribution.getPersonId()) && taskId.equals(retribution.getTaskId())){
// 有重复数据
return false;
}
}
// 没有重复数
return true;
}
}
package com.yeejoin.precontrol.common.after.runner;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* @Description: TODO
* @Author: Wanglulu
* @Date: 2021/4/30 17:32
* @Version 0.0.1
*/
@Component
@Slf4j
public class ApplicationRunnerImpl implements ApplicationRunner {
@Autowired
CompanyAndPersonTask companyAndPersonTask;
@Override
public void run(ApplicationArguments args) throws Exception {
// log.info("=========项目启动完成同步数据开始==========");
//companyAndPersonTask.run();
// log.info("=========项目启动完成同步数据完成==========");
}
}
package com.yeejoin.precontrol.common.after.runner;
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.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.utils.DesUtil;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Component
@EnableScheduling
@Slf4j
public class CompanyAndPersonTask {
/**
* 产品号
*/
@Value("${admin.product}")
String product;
/**
* 产品密钥
*/
@Value("${admin.appkey}")
String appkey;
/**
* 账户
*/
@Value("${admin.user}")
String user;
/**
* 密码
*/
@Value("${admin.password}")
String password;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
RedisUtil redisUtil;
@Autowired
ICompanyService companyService;
/**
* 启动完成后 执行 企业 角色 人员 数据rides缓存
*/
/**
* 每天凌晨2点
*/
@Scheduled(cron = "0 0 2 * * ?")
public void run() {
log.info("启动完成后执行rides缓存数据任务开始--------------->");
try {
setPlatFormAccess();
company();
role();
violationNature();
} catch (Exception e) {
e.printStackTrace();
}
log.info("启动完成后执行rides缓存数据任务结束--------------->");
}
public void setPlatFormAccess() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appkey);
RequestContext.setToken("token");
IdPasswordAuthModel authModel = new IdPasswordAuthModel();
authModel.setLoginId(user);
authModel.setPassword(DesUtil.encode(password, secretKey));
FeignClientResult<Map<String, String>> authResult = Privilege.authClient.idpassword(authModel);
String token = authResult.getResult().get("token");
RequestContext.setToken(token);
}
// 公司
public void company() {
try {
List<Company> list = companyService.list();
if (list != null && list.size() > 0) {
// 缓存新数据
for (Company company : list) {
Long companyId = company.getId();
// 根据id 查询公司下人员
// FeignClientResult<List<AgencyUserModel>> companyList = Privilege.agencyUserClient.queryByCompanyId(companyId, null, null, false);
// if (companyList != null && companyList.getResult() != null) {
// redisUtil.set(Constant.COMPANY_LIST + companyId, companyList.getResult());
// log.info(" companyId:{} 执行完成。。。", companyId);
// }
//根据公司id 查询子部门和人员
FeignClientResult<CompanyModel> companyChildres = Privilege.departmentClient.queryByCompanyChilds(companyId);
if (companyChildres != null && companyChildres.getResult() != null) {
redisUtil.set(Constant.COMPANY_CHILDRES_LIST + companyId, companyChildres.getResult());
log.info(" companyId children:{} 执行完成。。。", companyId);
}
}
}
} catch (Exception e) {
log.error("company redis fail");
}
}
// 角色
public void role() {
try {
//根据所有角色
FeignClientResult<List<RoleModel>> roles = Privilege.roleClient.queryRoleList(null, null);
if (roles != null && roles.getResult() != null) {
redisUtil.set(Constant.ROLE_LIST, roles.getResult());
}
} catch (Exception e) {
log.error("role redis fail");
}
}
// 违章类型 VIOLATION_NATURE 平台数据字典
public void violationNature() {
try {
//违章类型
FeignClientResult<List<DictionarieValueModel>> feignClientResult = Systemctl.dictionarieClient.dictValues("VIOLATION_NATURE");
if (feignClientResult != null && feignClientResult.getResult() != null) {
List<DictionarieValueModel> dicts = feignClientResult.getResult();
List<String> valList = dicts.stream().map(DictionarieValueModel::getDictDataValue).collect(Collectors.toList());
redisUtil.set(Constant.VIOLATION_NATURE, valList);
}
} catch (Exception e) {
log.error("role redis fail");
}
}
}
package com.yeejoin.precontrol.common.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* @description:
* @author: duanwei
* @create: 2020-07-19 15:00
**/
@Target(METHOD)
@Retention(RUNTIME)
@Documented
public @interface AfterInsert {
}
package com.yeejoin.precontrol.common.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* @description:
* @author: duanwei
* @create: 2020-07-19 15:00
**/
@Target(METHOD)
@Retention(RUNTIME)
@Documented
public @interface BeforeInsert {
}
package com.yeejoin.precontrol.common.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* @Description: Image注解 实现文件的追加
* @Author: duanwei
* @Date: 2020/7/17
*/
@Target(FIELD)
@Retention(RUNTIME)
@Documented
public @interface ImagePrefix {
}
package com.yeejoin.precontrol.common.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* @Description: 对应实体与属性的Format全局处理 目前仅支持单个
* @Author: duanwei
* @Date: 2020/7/17
*/
@Target(METHOD)
@Retention(RUNTIME)
@Documented
public @interface OpsLog {
OpsLogEnum value() default OpsLogEnum.NULL;
}
package com.yeejoin.precontrol.common.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* @Description: 对应实体与属性的Format全局处理 目前仅支持单个
* @Author: duanwei
* @Date: 2020/7/17
*/
@Target(FIELD)
@Retention(RUNTIME)
@Documented
public @interface TableFormat {
String entityName();
String fieldName() default "";
String operFieldName();
}
package com.yeejoin.precontrol.common.aop;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.utils.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @description:
* @author: duanwei
* @date: 2020-08-03 13:56
**/
@Aspect
@Component("controllerAopPrecontrol")
@Order(4)
@Slf4j
public class ControllerAop {
@Autowired
protected HttpServletRequest request;
@Autowired
RedisUtil redisUtil;
@Autowired
PlatformUtils platformUtils;
List<String> whiteUrl = new ArrayList<>();
//白名单
{
whiteUrl.add("/precontrol/safe/mobile/login");
whiteUrl.add("/precontrol/safe/mobile/register");
whiteUrl.add("/precontrol/safe/mobile/register/history");
whiteUrl.add("/precontrol/safe/getAuthCode");
whiteUrl.add("/precontrol/project-qrcode/getPrCodeInfo");
whiteUrl.add("/precontrol/safe/checkToken");
whiteUrl.add("/precontrol/echo");
whiteUrl.add("/precontrol/project/save");
}
/**
* 获取线程副本
*/
ThreadLocal<Long> startTime = new ThreadLocal<>();
@Pointcut("execution(public * com.yeejoin.precontrol.controller.*.*(..))")
public void weblog() {
}
@Before("weblog()")
public void doBefore(JoinPoint joinPoint) throws IllegalAccessException {
// 获取请求报文头部元数据
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
// 获取请求对象
HttpServletRequest request = requestAttributes.getRequest();
String requestUri = request.getRequestURI();
Boolean isAopCheck = true;
for (String url : whiteUrl) {
if (url.contains(requestUri)) {
isAopCheck = false;
}
}
if (isAopCheck && platformUtils.isAutoSetOrgCode()) {
// 填充项目部id
setOrgCode(joinPoint);
}
// 记录控制器执行前的时间毫秒数
startTime.set(System.currentTimeMillis());
log.info("");
log.info("==================前置通知执行开始==================");
log.info("url:" + request.getRequestURL());
log.info("method:" + request.getMethod());
log.info("ip:" + request.getRemoteAddr());
log.info("class_method:" + joinPoint.getSignature().getDeclaringTypeName() + "."
+ joinPoint.getSignature().getName());
log.info("args:" + Arrays.toString(joinPoint.getArgs()));
log.info("==================前置通知执行结束==================");
}
@AfterReturning(returning = "ret", pointcut = "weblog()")
public void doAfter(Object ret) {
log.info("=================后置通知执行开始===================");
if (ret != null) {
log.info("响应结果:" + ret.toString());
}
log.info("方法请求时间:" + (System.currentTimeMillis() - startTime.get()));
log.info("=================后置通知执行结束===================");
log.info("");
startTime.remove();
}
/**
* 填充前置属性值
*
* @param joinPoint
* @throws IllegalAccessException
*/
private void setOrgCode(JoinPoint joinPoint) throws IllegalAccessException {
Object[] args = joinPoint.getArgs();
if (StringUtil.isNotEmpty(args)) {
// 尝试获取项目部id
String orgCode = platformUtils.getOrgCode();
if (StringUtil.isNotEmpty(orgCode)) {
for (Object arg : args) {
// 判断类型
if (arg != null) {
Class<?> aClass = arg.getClass();
if (aClass instanceof Object) {
// 反射父类属性
Field[] allFields = FieldUtils.getAllFields(aClass);
for (Field allField : allFields) {
if ("orgCode".equals(allField.getName())) {
if (allField != null) {
allField.setAccessible(true);
allField.set(arg, orgCode);
}
}
}
}
}
}
}
}
}
}
package com.yeejoin.precontrol.common.aop;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.JoinPoint.StaticPart;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.HazardousWork;
import com.yeejoin.precontrol.common.entity.OpsLog;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.RiskWork;
import com.yeejoin.precontrol.common.entity.TaskRiskControl;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IHazardousWorkService;
import com.yeejoin.precontrol.common.service.IOpsLogService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.IRiskWorkService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlService;
import com.yeejoin.precontrol.common.utils.IpUtils;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
//import io.undertow.servlet.spec.HttpServletRequestImpl;
@Aspect
@Component
public class ControllerLogAop {
@Autowired
IOpsLogService iOpsLogService;
@Autowired
IPersonService iPersonService;
@Autowired
ICompanyService iCompanyService;
@Autowired
IProjectService iProjectService;
@Autowired
IHazardousWorkService iHazardousWorkService;
@Autowired
IRiskWorkService iRiskWorkService;
@Autowired
ITaskRiskControlService iTaskRiskControlService;
@Autowired
PlatformUtils platformUtils;
@Pointcut("@annotation(com.yeejoin.precontrol.common.annotations.OpsLog)")
public void point() throws Throwable {
}
static Long opsId;
// 目标方法执行完后执行
@Before("point()")
public void doBefore(JoinPoint joinPoint) {
opsId = null;
// 保存日志
OpsLog sysLog = new OpsLog();
// 从切面织入点处通过反射机制获取织入点处的方法
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
joinPoint.getKind();
StaticPart StaticPart = joinPoint.getStaticPart();
// 获取切入点所在的方法
Method method = signature.getMethod();
// 获取操作
com.yeejoin.precontrol.common.annotations.OpsLog myLog = method
.getAnnotation(com.yeejoin.precontrol.common.annotations.OpsLog.class);
OpsLogEnum value = myLog.value();
sysLog.setOpsOperation(value.getValue());// 保存获取的操作
// 获取请求的类名
String className = joinPoint.getTarget().getClass().getName();
sysLog.setClazzName(className);
// 获取请求的方法名
String methodName = method.getName();
sysLog.setMethodName(methodName);
// 请求的参数
Object[] args = joinPoint.getArgs();
List<Object> list = new ArrayList<Object>();
for (Object object : args) {
if (object instanceof HttpServletRequest) {
continue;
}
list.add(object);
}
//String params = JSONObject.toJSONString(list);
String params = "";
List<String> names = new ArrayList<String>();
if (OpsLogEnum.getDeleteGroup().contains(value)) {
Object obj = list.get(0);
if (value.getLabel().contains("person")) {
List<Long> ids = (List<Long>) obj;
List<Person> persons = iPersonService.list(new LambdaQueryWrapper<Person>().in(Person::getId, ids));
names = persons.stream().map(i -> i.getName()).collect(Collectors.toList());
} else if (value.getLabel().contains("company")) {
String[] ids = obj.toString().split(",");
List<Company> companys = iCompanyService
.list(new LambdaQueryWrapper<Company>().in(Company::getId, Arrays.asList(ids)));
names = companys.stream().map(i -> i.getName()).collect(Collectors.toList());
} else if (value.getLabel().contains("project")) {
List<Long> ids = (List<Long>) obj;
List<Project> projects = iProjectService
.list(new LambdaQueryWrapper<Project>().in(Project::getId, ids));
names = projects.stream().map(i -> i.getName()).collect(Collectors.toList());
} else if (value.getLabel().contains("hazardousWork")) {
List<Long> ids = (List<Long>) obj;
List<HazardousWork> hazardousWorks = iHazardousWorkService
.list(new LambdaQueryWrapper<HazardousWork>().in(HazardousWork::getId, ids));
names = hazardousWorks.stream().map(i -> i.getName()).collect(Collectors.toList());
} else if (value.getLabel().contains("riskWork")) {
String[] ids = obj.toString().split(",");
List<RiskWork> riskworks = iRiskWorkService
.list(new LambdaQueryWrapper<RiskWork>().in(RiskWork::getId, Arrays.asList(ids)));
names = riskworks.stream().map(i -> i.getName()).collect(Collectors.toList());
} else if (value.getLabel().contains("riskControl")) {
String[] ids = obj.toString().split(",");
List<TaskRiskControl> taskRiskControls = iTaskRiskControlService
.list(new LambdaQueryWrapper<TaskRiskControl>().in(TaskRiskControl::getId, Arrays.asList(ids)));
names = taskRiskControls.stream().map(i -> i.getName()).collect(Collectors.toList());
}
params = params + "," + JSONObject.toJSONString(names);
}
sysLog.setArgs(params);
Person person = platformUtils.getPerson();
sysLog.setPersonId(person.getId());
sysLog.setRealName(person.getName());
sysLog.setMobile(person.getPhone());
// 获取用户ip地址
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
sysLog.setIpAddr(IpUtils.getRealIp(request));
// 调用service保存SysLog实体类到数据库
sysLog.setId((long) joinPoint.hashCode());
iOpsLogService.save(sysLog);
// opsId = sysLog.getId();
// joinPoint.hashCode();
System.out.println("将日志记录到数据库");
}
@AfterThrowing(value = "point()", throwing = "ex")
public void doThrow(JoinPoint joinPoint, Exception ex) {
// if (opsId != null) {
iOpsLogService.removeById(joinPoint.hashCode());
String methodName = joinPoint.getSignature().getName();
System.out.println(methodName + "方法异常,异常信息为:" + ex.getMessage());
// }
}
}
package com.yeejoin.precontrol.common.aop;
import com.yeejoin.precontrol.common.annotations.AfterInsert;
import com.yeejoin.precontrol.common.annotations.BeforeInsert;
import com.yeejoin.precontrol.common.utils.SpringUtils;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* @program: 实体插入拦截AOP 由AOP转交数据给对应Listener
* @description:
* @author: duanwei
* @create: 2020-07-19 15:05
**/
@Aspect
@Component
@Slf4j
public class EntityInsertAop {
@Pointcut("execution(public * com.yeejoin.precontrol.common.service..*.add(..))" +
"||execution(public * com.yeejoin.precontrol.common.service..*.save(..))")
public void insert() {
}
@Before("insert()")
public void doBefore(JoinPoint joinPoint) {
//方法名称 例如add insert
String name = joinPoint.getSignature().getName();
Object[] objs = joinPoint.getArgs();
Object obj;
if ("add".equals(name) || "insert".equals(name)) {
obj = objs[0];
//数据对象的名字 例如task
String simpleName = obj.getClass().getSimpleName();
//根据数据对象找到listener监听器对象
String listenerName = transformName(simpleName) + "EntityListener";
Object listenerBean = SpringUtils.getBean(listenerName);
if (listenerBean != null) {
//进行数据invoke调用
Method[] methods = listenerBean.getClass().getDeclaredMethods();
for (Method method : methods) {
Annotation annotation = method.getAnnotation(BeforeInsert.class);
if (annotation != null) {
//当前method就是我需要操作的method
try {
method.setAccessible(true);
method.invoke(listenerBean, obj);
} catch (IllegalAccessException e) {
log.error("方法AOP前置处理权限不足");
} catch (InvocationTargetException e) {
log.error("方法AOP前置处理失败");
}
}
}
}
}
}
//目标方法执行完后执行
@After("insert()")
public void doAfter(JoinPoint joinPoint) {
//方法名称 例如add insert
String name = joinPoint.getSignature().getName();
Object[] objs = joinPoint.getArgs();
Object obj;
if ("add".equals(name) || "insert".equals(name)) {
obj = objs[0];
//数据对象的名字 例如task
String simpleName = obj.getClass().getSimpleName();
//根据数据对象找到listener监听器对象
String listenerName = transformName(simpleName) + "EntityListener";
Object listenerBean = SpringUtils.getBean(listenerName);
if (listenerBean != null) {
//进行数据invoke调用
Method[] methods = listenerBean.getClass().getDeclaredMethods();
for (Method method : methods) {
Annotation annotation = method.getAnnotation(AfterInsert.class);
if (annotation != null) {
//当前method就是我需要操作的method
try {
method.setAccessible(true);
method.invoke(listenerBean, obj);
} catch (IllegalAccessException e) {
log.error("方法AOP前置处理权限不足");
} catch (InvocationTargetException e) {
log.error("方法AOP前置处理失败");
}
}
}
}
}
}
// 前后一起插入的完整逻辑
@Around("insert()")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
long time = System.currentTimeMillis();
Object retVal = pjp.proceed();
time = System.currentTimeMillis() - time;
log.info("业务执行时间" + time + "毫秒");
return retVal;
}
//获取目标方法返回数据后执行
// @AfterReturning(returning = "object", pointcut = "insert()")
// public void doAfterReturn(Object object) {
// System.out.println(object.toString());
// }
private static String transformName(String originName) {
if (originName != null && originName.length() > 0) {
return originName.substring(0, 1).toLowerCase() + originName.substring(1);
}
return originName;
}
}
package com.yeejoin.precontrol.common.component;
import com.yeejoin.precontrol.common.entity.hk.model.po.MediaConfig;
import com.yeejoin.precontrol.common.entity.hk.model.po.MediaHkApiConfig;
import com.yeejoin.precontrol.common.service.hk.IMediaConfigService;
import com.yeejoin.precontrol.common.service.hk.IMediaHkApiConfigService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author: songLei
* @Description: 初始化资源配置
* @Date: 2021/4/29 10:42
* @Version: 1.0
*/
@Slf4j
@Component
@AllArgsConstructor
public class InitContext {
public static Map<String, String> memoryDataMap = new HashMap<>();
@Autowired
private IMediaConfigService mediaConfigService;
@Autowired
private IMediaHkApiConfigService mediaHkApiConfigService;
@PostConstruct
private void init() {
log.info("正在初始化数据......");
this.initMediaConfig();
this.initMediaHkApiConfig();
log.info("初始化数据完成");
}
/**
* @Author songLei
* @Version 1.0
* @Description 初始化流媒体服务配置数据
* @Date 2021/4/29 11:23
*/
private void initMediaConfig(){
List<MediaConfig> mediaConfigs = mediaConfigService.findAll();
if(CollectionUtils.isNotEmpty(mediaConfigs)){
mediaConfigs.stream().forEach(item ->{
memoryDataMap.put(item.getConfigKey(),item.getConfigValue());
});
}
}
/**
* @Author songLei
* @Version 1.0
* @Description 初始化海康平台接口配置数据
* @Date 2021/4/29 11:23
*/
private void initMediaHkApiConfig(){
List<MediaHkApiConfig> mediaHkApiConfigs = mediaHkApiConfigService.findAll();
if(CollectionUtils.isNotEmpty(mediaHkApiConfigs)){
mediaHkApiConfigs.stream().forEach(item ->{
log.info("key:{},api:{}",item.getApiKey(),item.getApiUrl());
memoryDataMap.put(item.getApiKey(),item.getApiUrl());
});
}
}
}
package com.yeejoin.precontrol.common.component;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* <p>
* Spring 工具类
* </p>
*
* @author songLei
* @since 2020-10-30
*/
@Slf4j
@Component
@Lazy(false)
public class SpringContextHolder implements ApplicationContextAware, DisposableBean {
private static ApplicationContext applicationContext = null;
/**
* 取得存储在静态变量中的ApplicationContext.
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 实现ApplicationContextAware接口, 注入Context到静态变量中.
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextHolder.applicationContext = applicationContext;
}
public <T> Map<String, T> getBeansOfType(Class<T> clazz) {
return applicationContext.getBeansOfType(clazz);
}
/**
* 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型.
*/
public static <T> T getBean(String name) {
return (T) applicationContext.getBean(name);
}
/**
* 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型.
*/
public static <T> T getBean(Class<T> requiredType) {
return applicationContext.getBean(requiredType);
}
/**
* 清除SpringContextHolder中的ApplicationContext为Null.
*/
public static void clearHolder() {
if (log.isDebugEnabled()) {
log.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext);
}
applicationContext = null;
}
/**
* 发布事件
*
* @param event event
*/
public static void publishEvent(ApplicationEvent event) {
if (applicationContext == null) {
return;
}
applicationContext.publishEvent(event);
}
/**
* 实现DisposableBean接口, 在Context关闭时清理静态变量.
*/
@Override
public void destroy() {
SpringContextHolder.clearHolder();
}
}
package com.yeejoin.precontrol.common.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @author 瑾年
* @className ExecutorConfig
* @date 2020/8/26 10:31
*/
@Slf4j
@Configuration
@EnableAsync
public class ExecutorConfig {
/**
* 配置队列大小
* */
@Value("${executor.queueCapacity}")
private int queueCapacity;
/***
* 配置线程池中的线程的名称前缀
* */
@Value("${executor.namePrefix}")
private String namePrefix;
/**
* 线程池维护线程所允许的空闲时间
* */
@Value("${executor.keepAliveSeconds}")
private int keepAliveSeconds;
@Bean(name = "asyncServiceExecutor")
public Executor asyncServiceExecutor() {
log.info("初始化异步线程池");
//获取cpu核心数,最大线程数和核心线程数为cpu核心数的2倍
int curSystemThreads = Runtime.getRuntime().availableProcessors() * 2;
log.info("系统可用线程池个数:{}",curSystemThreads);
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//配置核心线程数
executor.setCorePoolSize(curSystemThreads);
//配置最大线程数
executor.setMaxPoolSize(curSystemThreads);
//配置队列大小
executor.setQueueCapacity(queueCapacity);
//配置线程池中的线程的名称前缀
executor.setThreadNamePrefix(namePrefix);
//线程池维护线程所允许的空闲时间
executor.setKeepAliveSeconds(keepAliveSeconds);
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行--拒绝策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//执行初始化
executor.initialize();
//等待所有任务结束后再关闭线程池
executor.setWaitForTasksToCompleteOnShutdown(true);
return executor;
}
}
package com.yeejoin.precontrol.common.config;
import java.util.HashMap;
import java.util.Map;
/**
* @Description: 全局单机缓存
* @Author: duanwei
* @Date: 2020/6/30
*/
public class GlobalCache {
/**
* 全局请求头
*/
public static Map<String, String> header = new HashMap<>();
/**
* 依赖参数容器
*/
public static Map<String, String> paramMap = new HashMap<>(1000);
}
package com.yeejoin.precontrol.common.config;
import com.yeejoin.precontrol.common.entity.*;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import com.yeejoin.precontrol.common.service.IBaseService;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.utils.TranslateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* @description: 字典缓存 本类禁止注释 否则影响整个系统
* @author: duanwei
* @date: 2020-07-17 08:55
**/
@Slf4j
public class GlobalFormat implements InitializingBean {
List<BaseEntity> transObject = new ArrayList<>();
{
transObject.add(new Person());
transObject.add(new Company());
transObject.add(new Project());
transObject.add(new Task());
transObject.add(new TechDocument());
}
@Autowired
IBaseService iBaseService;
@Autowired
RedisUtil redisUtil;
@Override
public void afterPropertiesSet() throws Exception {
transObject.forEach(transObject -> {
List list = iBaseService.list(transObject, true, "id", "name");
TranslateUtil.setDictionary(list, "name", redisUtil);
});
log.info("字典缓存加载完成!!!!!!!!!!");
}
}
package com.yeejoin.precontrol.common.config;
import com.yeejoin.precontrol.common.annotations.TableFormat;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.utils.SpringUtils;
import java.lang.reflect.Field;
public class GlobalUtils {
public static void setFormateByOne(Object body) throws IllegalAccessException {
Field[] declaredFields = body.getClass().getDeclaredFields();
for (Field declaredField : declaredFields) {
TableFormat tableFormat = declaredField.getAnnotation(TableFormat.class);
if (tableFormat != null) {
declaredField.setAccessible(true);
Long idValue = (Long) declaredField.get(body);
if (idValue != null) {
//表对象名称
String entity = tableFormat.entityName();
//表对象的属性名
String fieldName = tableFormat.fieldName();
//要修改属性名
String operFieldName = tableFormat.operFieldName();
RedisUtil redisUtil = (RedisUtil) SpringUtils.getBean("redisUtil");
if (redisUtil.hasKey(entity + "_" + fieldName + "_" + idValue)) {
String redisValue = redisUtil.get(entity + "_" + fieldName + "_" + idValue).toString();
for (Field operField : declaredFields) {
String name = operField.getName();
if (name.equals(operFieldName)) {
operField.setAccessible(true);
operField.set(body, redisValue);
} else {
continue;
}
}
}
}
}
}
}
}
package com.yeejoin.precontrol.common.constant;
/**
* @Author: songLei
* @Description: 公共常量
* @Date: 2021/4/28 11:22
* @Version: 1.0
*/
public class Const {
public Const(){}
public static String CONTENT_TYPE = "application/json";
public static String CODE_ZERO = "0";
}
package com.yeejoin.precontrol.common.constant;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.format.DateTimeFormatter;
/**
* @Description: 常量类
* @Author: duanwei
* @Date: 2019/7/29
*/
public interface Constant {
String SMALL_PRO_PRCODE = "SMALL_PRO_PRCODE_";
String SMALL_PRO_COMPANY_PRCODE = "SMALL_";
String RESULT_SUCCESS = "SUCCESS";
String RESULT_FAILURE = "FAILURE";
/**
* 任务-作业交底
*/
Long JOB_TYPE = 0L;
/**
* 任务-三交三查
*/
Long HAND_QUERY = 1L;
/**
* 违规管理
*/
Long BAD_MANAGEMENT = 2L;
Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
String FILE_SEPARATOR = System.getProperty("file.separator");
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String PAGE_NUM = "0";
String SIZE_NUM = "20";
String PAGE = "page";
String SIZE = "size";
String ZERO = "0";
String ONE = "1";
String TWO = "2";
String THREE = "3";
String FOUR = "4";
String FIVE = "5";
String NULL = "";
String JSON_NULL = "[]";
/**
* 请求成功
*/
String SUCCESS = "200";
/**
* 请求错误
*/
String ERROR = "300";
/**
* 无权限
*/
String PERMISSION = "401";
/**
* 请求成功,其他错误
*/
String DATA_NULL = "402";
/**
* 请求失败
*/
String FAILED = "999";
/**
* 最大值
*/
Integer MAX = 32767;
/**
* 数据请求返回码
*/
public static final int RESCODE_SUCCESS = 1000; //成功
public static final int RESCODE_SUCCESS_MSG = 1001; //成功(有返回信息)
public static final int RESCODE_EXCEPTION = 1002; //请求抛出异常
public static final int RESCODE_NOLOGIN = 1003; //未登陆状态
public static final int RESCODE_NOEXIST = 1004; //查询结果为空
public static final int RESCODE_NOAUTH = 1005; //无操作权限
public static final int RESCODE_LOGINEXPIRE = 1006; //登录过期
/**
* token
*/
public static final int JWT_ERRCODE_EXPIRE = 1007;//Token过期
public static final int JWT_ERRCODE_FAIL = 1008;//验证不通过
/**
* jwt
*/
public static final String JWT_ID = "jwt-black";//jwt签发者
public static final String JWT_SECRET = "Isi5Ob9OfvJt+4IHoMJlHkS1ttg=";//密匙
public static final int JWT_TTL = 60 * 60 * 1000; // 60*60*1000; //millisecond
public static final int JWT_REFRESH_INTERVAL = 18 * 1000; //55*60*1000; //millisecond
public static final int JWT_REFRESH_TTL = 60 * 1000; // 12*60*60*1000; //millisecond
public static final String EXAM_TYPE = "EXAM_TYPE";//考试类型枚举
/**
* 在建项目状态组
*/
public static final String[] BUILD_PROJECT_STATUS_GROUP = {"开发", "在建", "策划"};
/**
* 安全员角色key(role_key)
*/
public static final String SECURITY = "security";
/**
* 技术员角色key(role_key)
*/
public static final String TECHNICINA = "technician";
/**
* 危险作业
*/
Long RISK_WORK = 3L;
/**
* 企业
*/
public static final String COMPANY_LIST = "companyList_";
/**
* 企业下的子部门
*/
public static final String COMPANY_CHILDRES_LIST = "companyChildrensList_";
/**
* 角色
*/
public static final String ROLE_LIST = "roleList";
/**
* 违章类型
*/
public static final String VIOLATION_NATURE = "violationNatureList";
// websocket 推送 数据类型标志
// 所有
public static final String WS_ALL = "all";
//1反违章统计
public static final String WS_VIOLATIONSUM = "violationSum";
//2综合统计
public static final String WS_COMPOSITESUM = "compositeSum";
//3违章排名
public static final String WS_VIOLATIONRANK = "violationRank";
//4分包商违章排名
public static final String WS_FBSVIOLATIONRANK = "fbsViolationRank";
//5风险作业
public static final String WS_RISKSUM = "riskSum";
//6红绿码
public static final String WS_REDORGREENCODE = "redOrGreenCode";
//7地图 项目点
public static final String WS_MAPPROJECTSUM = "mapProjectSum";
//风险管控屏幕 风险作业信息统计 进行中 已完成
public static final String WS_RISKSTATUS = "riskStatus";
//9违章管理 屏幕 今日违章
public static final String WS_DAYVIOLATION = "dayViolation";
public static final String WS_ZERO = "0";
}
package com.yeejoin.precontrol.common.controller;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import com.yeejoin.precontrol.common.entity.publics.CommonResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.precontrol.common.service.IAppMenuConfigService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.entity.AppMenuConfig;
import com.yeejoin.precontrol.common.utils.NameUtils;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Map;
/**
* 用户app菜单配置表
*
* @author duanwei
* @date 2021-02-22
*/
@RestController
@Api(tags = "用户app菜单配置表Api")
@RequestMapping(value = "/app-menu-config", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class AppMenuConfigController {
@Autowired
IAppMenuConfigService iAppMenuConfigService;
/**
* 新增用户app菜单配置表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增用户app菜单配置表", notes = "新增用户app菜单配置表")
public boolean saveAppMenuConfig(HttpServletRequest request, @RequestBody AppMenuConfig appMenuConfig) {
return iAppMenuConfigService.save(appMenuConfig);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iAppMenuConfigService.removeById(id);
}
/**
* 修改用户app菜单配置表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改用户app菜单配置表", notes = "修改用户app菜单配置表")
public boolean updateByIdAppMenuConfig(HttpServletRequest request, @RequestBody AppMenuConfig appMenuConfig) {
return iAppMenuConfigService.updateById(appMenuConfig);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public AppMenuConfig selectById(HttpServletRequest request, @PathVariable Long id) {
return iAppMenuConfigService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<AppMenuConfig> listPage(String pageNum, String pageSize, AppMenuConfig appMenuConfig) {
Page<AppMenuConfig> pageBean;
QueryWrapper<AppMenuConfig> appMenuConfigQueryWrapper = new QueryWrapper<>();
Class<? extends AppMenuConfig> aClass = appMenuConfig.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(appMenuConfig);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(appMenuConfig);
appMenuConfigQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(appMenuConfig);
appMenuConfigQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(appMenuConfig);
appMenuConfigQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(appMenuConfig);
appMenuConfigQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<AppMenuConfig> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iAppMenuConfigService.page(pageBean, appMenuConfigQueryWrapper);
return page;
}
@GetMapping("/syncUserAppMenu")
public Map<String, Boolean> syncUserAppMenu() {
return iAppMenuConfigService.syncUserAppMenu();
}
@GetMapping("/updateUserAppMenu")
public Map<String, Boolean> updateUserAppMenu(Long id) {
return iAppMenuConfigService.updateUserAppMenu(id);
}
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 用户app菜单配置表
*
* @author duanwei
* @date 2021-02-22
*/
@Data
@ApiModel(value = "AppMenuConfigDto", description = "用户app菜单配置表")
public class AppMenuConfigDto {
private Long id;
@ApiModelProperty(value = "创建时间")
private Date createDate;
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "菜单key")
private String menuKey;
@ApiModelProperty(value = "菜单描述")
private String menuLabel;
@ApiModelProperty(value = "图标")
private String menuIcon;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "是否必须", notes = "初始化的前4个不可删除,子定义的可删除")
private Boolean isMust;
}
package com.yeejoin.precontrol.common.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
/**
* 违规人员表
*
* @author duanwei
* @date 2020-11-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("rpm_bad_management_person")
@ApiModel(value="BadManagementPersonDto", description="违规人员表")
public class BadManagementPersonDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "人员id")
private Long personId;
private Long companyId;
private String companyName;
@ApiModelProperty(value = "人名")
private String personName;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: duanwei
* @date: 2020-07-03 17:00
**/
@Data
public class BadManangerDto extends BaseDto {
@ApiModelProperty(value = "违规内容")
private String badText;
@ApiModelProperty(value = "违规企业")
private Long companyId;
@ApiModelProperty(value = "违规名称")
private String companyName;
@ApiModelProperty(value = "分包商负责人")
private Long personLiable;
@ApiModelProperty(value = "分包商负责人名称")
private String personLiableName;
@ApiModelProperty(value = "人员类型")
private List<TaskPersonDto> taskPerson;
@ApiModelProperty(value = "违章性质")
private String nature;
@ApiModelProperty(value = "违规类型")
private String type;
@ApiModelProperty(value = "奖励金额")
private String rewardMoney;
@ApiModelProperty(value = "惩罚金额")
private String punishMoney;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 今日违章员Dto
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class BadPersonDto extends BaseDto {
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "项目id")
private String projectId;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "分包商")
private String companyName;
@ApiModelProperty(value = "违章类型")
private String badType;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 公共DTO
* @author: duanwei
* @date: 2020-07-03 17:00
**/
@Data
public class BaseDto {
@ApiModelProperty(value = "机构ID")
protected String orgCode;
}
package com.yeejoin.precontrol.common.dto;
import lombok.Data;
/**
* @Description: 分页传输dto
* @Author: duanwei
* @Date: 2020/7/3
*/
@Data
public class CommonPageableDto extends BaseDto {
/**
* 页号(大于等于0)
*/
protected Integer pageNumber;
/**
* 每页大小(大于等于0)
*/
protected Integer pageSize;
/**
* 查询全部
*/
private Integer isAll = 0;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 分包商银行账户
*
* @author duanwei
* @date 2020-09-26
*/
@Data
public class CompanyAcountDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "开户银行名称")
private String bankName;
@ApiModelProperty(value = "银行卡号")
private String acountNumber;
@ApiModelProperty(value = "备注")
private String remark;
}
package com.yeejoin.precontrol.common.dto;
import java.io.Serializable;
import java.util.List;
import com.yeejoin.precontrol.common.vo.PersonVo;
import lombok.Data;
/**
* 部门信息Dto
*
* @author duanwei
* @date 2021-09-07
*/
@Data
public class CompanyDepartmentDto implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Long key;
/**
*
*/
private String name;
/**
*
*/
private String description;
/**
*
*/
private Long companyId;
/**
*
*/
private Long parentId;
/**
*
*/
private String level;
private String levelText;
/**
*
*/
private Integer deptOrgCode;
/**
*
*/
private String orgCode;
private List<CompanyDepartmentDto> children;
private List<PersonVo> personList;
}
package com.yeejoin.precontrol.common.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.github.liangbaika.validate.annations.AbcValidate;
import com.github.liangbaika.validate.enums.Check;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import com.yeejoin.precontrol.common.entity.CompanyBusiness;
import com.yeejoin.precontrol.common.entity.CompanyQualifications;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class CompanyDto {
private static final long serialVersionUID = -501555223089135642L;
private Long id;
private Date createDate;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "联系人")
private String contact;
@ApiModelProperty(value = "手机号码")
@AbcValidate(fun = Check.le, express = "20")
private String phone;
@ApiModelProperty(value = "固定电话")
@AbcValidate( fun = Check.le, express = "20")
private String tel;
@ApiModelProperty(value = "客服电话")
@AbcValidate(fun = Check.le, express = "20")
private String servicePhone;
@ApiModelProperty(value = "网址")
private String website;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "地区key")
private String region;
@TableField(exist = false)
private String regionLabel;
@ApiModelProperty(value = "简介")
private String introduction;
@ApiModelProperty(value = "logo")
@ImagePrefix
private String logo;
@ApiModelProperty(value = "综合评分")
private Float compositeScore;
@ApiModelProperty(value = "项目类型(0-分包商,1-非分包商)")
private String typeKey;
@ApiModelProperty(value = "状态id")
private Integer status;
@ApiModelProperty(value = "企业二维码")
private String qrcode;
@ApiModelProperty(value = "操作业务类型")
private Integer bizType;
@ApiModelProperty(value = "提交日期")
private Date approveData;
@ApiModelProperty(value = "是否已读")
private Integer isRead;
@ApiModelProperty(value = "审查人id")
private String operatorId;
@ApiModelProperty(value = "企业性质")
private String enterpriseNature;
@ApiModelProperty(value = "国家")
private String country;
@ApiModelProperty(value = "固定总资产")
private String totalFixedAssets;
@ApiModelProperty(value = "总人数")
private Integer total;
@ApiModelProperty(value = "技术人员总数")
private Integer techniciansNum;
@ApiModelProperty(value = "销售电话")
private String salesPhone;
@ApiModelProperty(value = "拟制技术标准")
private String preparationTechnology;
@ApiModelProperty(value = "主要产品类型")
private String mainProductsType;
@ApiModelProperty(value = "历史沿革")
private String history;
@ApiModelProperty(value = "主要检测设备")
private String detectionEquipment;
@ApiModelProperty(value = "重大研制记录")
private String developmentRecord;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "资质描述")
private String qualification;
@ApiModelProperty(value = "是否删除")
private Integer isDelete;
@ApiModelProperty(value = "删除日期")
private Date deleteDate;
@ApiModelProperty(value = "删除人id")
private String deleteUserId;
@ApiModelProperty(value = "删除原因")
private String deleteCase;
@ApiModelProperty(value = "删除人名称")
private String deleteUserName;
@ApiModelProperty(value = "移除人id")
private String removeUserId;
@ApiModelProperty(value = "移除人姓名")
private String removeUserName;
@ApiModelProperty(value = "移除日期")
private Date removeDate;
@ApiModelProperty(value = "是否在黑名单(0-否,1-是)")
private Boolean inBlackList;
@ImagePrefix
private CompanyBusiness companyBusiness;
@ImagePrefix
private List<CompanyQualifications> companyQualifications;
@ApiModelProperty(value = "队伍银行卡信息")
private List<TeamDto> teamData;
}
package com.yeejoin.precontrol.common.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
/**
* 分包商评价记录表
*
* @author duanwei
* @date 2021-01-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("rpm_company_evaluation_log")
@ApiModel(value="CompanyEvaluationLogDto", description="分包商评价记录表")
public class CompanyEvaluationLogDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "分包商id")
private Long companyId;
@ApiModelProperty(value = "评价人id")
private Long evaluationUserId;
@ApiModelProperty(value = "评价人名称")
private String evaluationUserName;
@ApiModelProperty(value = "评价内容")
private String content;
@ApiModelProperty(value = "评价等级")
private String rate;
}
package com.yeejoin.precontrol.common.dto;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
@Data
public class CompanyImportDto extends BaseDto {
private Long id;
@Excel(name = "企业名称")
private String name;
@Excel(name = "联系人")
private String contact;
@Excel(name = "手机号码")
private String phone;
@Excel(name = "固定电话")
private String tel;
@Excel(name = "客服电话")
private String servicePhone;
@Excel(name = "网址")
private String website;
@Excel(name = "邮箱")
private String email;
@Excel(name = "企业类型", replace = {"分包商 _0", "非分包商_1", "_null"})
private String typeKey;
private String region;
@Excel(name = "企业地址")
private String regionName;
@Excel(name = "企业简介")
private String introduction;
@Excel(name = "综合评分")
private Float compositeScore;
@Excel(name = "统一社会信用代码")
private String creditCode;
@Excel(name = "编号")
private String code;
@Excel(name = "工商类型")
private String type;
@Excel(name = "法定代表人")
private String legalRepresentative;
@Excel(name = "注册资本")
private Integer registerCapital;
@Excel(name = "注册资本单位", replace = {"人民币_0", "美元_1", "_null"})
private String registerCapitalUnitKey;
@Excel(name = "成立日期", importFormat = "yyyy-MM-dd")
private Date establishDate;
@Excel(name = "营业期限是否永久", replace = {"否_0", "是_1"})
private Integer permanent;
@Excel(name = "营业开始时间", importFormat = "yyyy-MM-dd")
private Date businessStartDate;
@Excel(name = "营业结束时间", importFormat = "yyyy-MM-dd")
private Date businessEndDate;
@Excel(name = "发证日期", importFormat = "yyyy-MM-dd")
private Date athDate;
@Excel(name = "登记机关")
private String registerAuthority;
@Excel(name = "住所")
private String companyAddress;
@Excel(name = "经营范围")
private String businessScope;
@Excel(name = "证书名称")
private String certificateName;
@Excel(name = "证书编号")
private String certificateNumber;
@Excel(name = "有效期至", importFormat = "yyyy-MM-dd")
private Date expireToDate;
@Excel(name = "发证机关")
private String issuingAuthority;
private Date createDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 今日入场分包商人员
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class CompanyPersonAdmissionDto extends BaseDto {
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "分包商名称")
private String companyName;
@ApiModelProperty(value = "安全态势 0红 1黄 2绿")
private String color;
@ApiModelProperty(value = "是否交底 0否 1是")
private String isJob;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 今日分包商人员
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class CompanyPersonDto extends BaseDto {
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "分包商名称")
private String companyName;
@ApiModelProperty(value = "安全态势 0红 1黄 2绿")
private String color;
@ApiModelProperty(value = "分包商类型")
private Long typeKey;
@ApiModelProperty(value = "是否上岗")
private Boolean isOnDuty;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class CompanyblackDto extends BaseDto implements Serializable {
/**
*
*/
private static final long serialVersionUID = 4586738716898407201L;
@ApiModelProperty(value = "是否在黑名单")
private Boolean inBlackList;
@ApiModelProperty(value = "公司id")
private Long id;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 技术文库Dto
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class DocumentDto extends BaseDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "人员id")
private Long personId;
@ApiModelProperty(value = "人员类型")
private String personType;
@ApiModelProperty(value = "文档ID")
private Long documentId;
@ApiModelProperty(value = "附件路径")
@ImagePrefix
private String filePath;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "文档名称")
private String name;
@ApiModelProperty(value = "文档类型")
private String type;
@ApiModelProperty(value = "文档二维码")
private String qrCode;
@ApiModelProperty(value = "文档数量")
private String number;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 企业轨迹查询
*
* @author sqy
*/
@Data
public class EnterpriseLocusDto extends BaseDto implements Serializable {
/**
*
*/
private static final long serialVersionUID = -3471088928914089521L;
@ApiModelProperty(value = "用户id")
private String personId;
@ApiModelProperty(value = "起始时间")
private String timeStart;
@ApiModelProperty(value = "终止时间")
private String timeEnd;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 文件Dto
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class FileDto extends BaseDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "人员id")
private Long personId;
@ApiModelProperty(value = "人员类型")
private String personType;
@ApiModelProperty(value = "文件名称")
private String fileName;
@ApiModelProperty(value = "文件路径")
@ImagePrefix
private String filePath;
@ApiModelProperty(value = "创建时间")
private Date createDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 危险作业表Dto
*
* @author duanwei
* @date 2020-08-24
*/
@Data
@ApiModel(value = "HazardousWork对象", description = "危险作业表")
public class HazardousWorkDto {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "危险作业名称")
private String name;
@ApiModelProperty(value = "作业条件_输入项")
private String conditions;
@ApiModelProperty(value = "描述")
private String remark;
@ApiModelProperty(value = "编号")
private String orderNo;
@ApiModelProperty(value = "检查措施")
private List<InputItemDto> inputItemDtos;
private Date createDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 危险作业表Dto
*
* @author duanwei
* @date 2020-08-24
*/
@Data
@ApiModel(value = "HazardousWork对象", description = "危险作业表")
public class HazardousWorkPageDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "危险作业名称")
private String name;
@ApiModelProperty(value = "作业条件_输入项")
private String conditions;
@ApiModelProperty(value = "描述")
private String remark;
@ApiModelProperty(value = "编号")
private String orderNo;
@ApiModelProperty(value = "id集合", position = 99)
private List<Long> ids;
@ApiModelProperty(value = "搜索条件")
private String search;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 入职Dto
*/
@Data
public class InOccupationDto extends BaseDto {
@ApiModelProperty(value = "平台用户Id")
private Long userId;
@ApiModelProperty(value = "角色Id")
private List<Long> roleIdList;
@ApiModelProperty(value = "部门Id")
private Long platformDepartmentId;
private Long companyId;
private Long departmentId;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 检查项Dto
*
* @author duanwei
* @date 2020-08-24
*/
@Data
@ApiModel(value = "InputItem对象", description = "检查项")
public class InputItemDto extends BaseDto {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "作业类型")
private String itemType;
@ApiModelProperty(value = "检查项名称")
private String name;
@ApiModelProperty(value = "是否必填")
private String isMust;
@ApiModelProperty(value = "是否有分数")
private String isScore;
@ApiModelProperty(value = "是否允许多行")
private String isMultiline;
@ApiModelProperty(value = "默认值")
private String defaultValue;
@ApiModelProperty(value = "选项数据")
private String inputJson;
@ApiModelProperty(value = "图片数据")
private String pictureJson;
@ApiModelProperty(value = "描述")
private String remark;
@ApiModelProperty(value = "key-前台删除使用,勿传递")
private Long key;
private Date createDate;
}
package com.yeejoin.precontrol.common.dto;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: duanwei
* @date: 2020-07-01 12:46
**/
@Data
public class IsClockOkDto extends BaseDto {
/**
* 类型
*/
String type;
/**
* 工程id
*/
Long projectId;
/**
* 经度
*/
Double longitude;
/**
* 纬度
*/
Double latitude;
/**
* 打开时间
*/
Date clockTime;
/**
* 打卡项目名称
*/
String projectName;
/**
* 打卡位置
*/
String clockAddress;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 作业活动
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class JobDisclosureDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "方案名称")
private String name;
@ApiModelProperty(value = "方案代号")
private String code;
@ApiModelProperty(value = "方案编号")
private String number;
@ApiModelProperty(value = "人员类型")
private List<TaskPersonDto> taskPerson;
@ApiModelProperty(value = "技术交底文件")
@ImagePrefix
private List<DocumentDto> document;
}
package com.yeejoin.precontrol.common.dto;
import java.util.List;
import com.yeejoin.precontrol.common.entity.TaskPerson;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 知识分享
* @author: wujiang
* @date: 2020-07-17 15:48
**/
@Data
public class KnowledgeShareDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long id;
@ApiModelProperty(value = "所属项目id")
private Long projectId;
@ApiModelProperty(value = "所属项目名称")
private String projectName;
@ApiModelProperty(value = "方案名称")
private String name;
@ApiModelProperty(value = "方案代号")
private String code;
@ApiModelProperty(value = "方案编号")
private String number;
@ApiModelProperty(value = "技术交底文件Id")
private Long documentId;
@ApiModelProperty(value = "技术交底文件名称")
private String documentName;
@ApiModelProperty(value = "发起人")
private Long createPersonId;
@ApiModelProperty(value = "参与学习人id")
private List<Long> studyPersonIds;
@ApiModelProperty(value = "参与学习人")
private List<TaskPerson> studyPersonList;
@ApiModelProperty(value = "参与学习人姓名")
private List<String> studyPersonNames;
@ApiModelProperty(value = "公司id")
private Long companyId;
@ApiModelProperty(value = "行业")
private String industryType;
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "阅读状态(1:已读,0:未读)")
private Long readStatus;
}
package com.yeejoin.precontrol.common.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @Author: songLei
* @Description:
* @Date: 2021/10/18 16:14
* @Version: 1.0
*/
@Data
public class MessageDto implements Serializable {
private Long personId;
private String message;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 分包商未交底查询DTO
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class NoJobCompanyDto extends BaseDto {
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "分包商名称")
private String companyName;
@ApiModelProperty(value = "班组")
private String teamName;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 项目信息Dto
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class NoJobDto extends BaseDto {
@ApiModelProperty(value = "项目id")
private Long projectId;
@ApiModelProperty(value = "项目名称")
private String name;
@ApiModelProperty(value = "数量范围开始")
private Long numStart;
@ApiModelProperty(value = "数量范围结束")
private Long numEnd;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 项目信息Dto
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class NoJobPersonDto extends BaseDto {
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "项目ID")
private String projectName;
@ApiModelProperty(value = "分包商")
private String companyName;
@ApiModelProperty(value = "安全态势")
private String color;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 离职Dto
*/
@Data
public class OutOccupationDto extends BaseDto {
@ApiModelProperty(value = "平台用户Id")
private Long userId;
}
package com.yeejoin.precontrol.common.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import com.yeejoin.precontrol.common.entity.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description: 人员dto
* @Author: sqy
* @Date: 2020/11/11
*/
@Data
public class PersonDto extends BaseDto implements Serializable {
private static final long serialVersionUID = -9128405513441879127L;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "性别( 0-男 1-女 )")
private Long sex;
@TableField(exist = false)
private String sexLabel;
@ApiModelProperty(value = "生日")
private Date birthday;
@ApiModelProperty(value = "年龄")
private Long age;
@ApiModelProperty(value = "名族")
private String folkKey;
@ApiModelProperty(value = "身高")
private Long height;
@ApiModelProperty(value = "体重")
private Long weight;
@ApiModelProperty(value = "电话")
private String phone;
@ApiModelProperty(value = "应急电话")
private String emergencyPhone;
@ApiModelProperty(value = "政治面貌")
private String politicCountenance;
@ApiModelProperty(value = "证件编号")
@TableField("ID_number")
private String idNumber;
@ApiModelProperty(value = "证件类型")
@TableField("ID_type")
private Long idType;
@TableField(exist = false)
private String idTypeLabel;
@ApiModelProperty(value = "籍贯")
private String nativePlace;
@TableField(exist = false)
private String nativePlaceLabel;
@ApiModelProperty(value = "用工来源所在地")
private String employPlace;
@TableField(exist = false)
private String employPlaceLabel;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "现住址")
private String presentAddress;
@ApiModelProperty(value = "参加工作时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date workTime;
@ApiModelProperty(value = "头像照片")
@ImagePrefix
private String headPhoto;
@ApiModelProperty(value = "证件照片正面")
@ImagePrefix
private String frontCertificatePhoto;
@ApiModelProperty(value = "证件照片反面")
@ImagePrefix
private String backCertificatePhoto;
@ApiModelProperty(value = "考核成绩")
private Long examineScore;
@ApiModelProperty(value = "是否合格")
private Boolean qualified;
@ApiModelProperty(value = "综合评分")
private Float compositeScore;
@ApiModelProperty(value = "是否可用")
private Long isEnabled;
@ApiModelProperty(value = "平台账号userId")
private String userId;
@ApiModelProperty(value = "平台账号名称")
private String accountName;
@ApiModelProperty(value = "二维码颜色0红 1黄 2绿")
private Long color;
@ApiModelProperty(value = "积分")
private Double integral;
@ImagePrefix
private Company company;
private Project project;
private PersonAscription personAscription;// 人员归属信息
@ImagePrefix
private PersonSkillEducation personSkillEducation;// 人员技能和学历
@ImagePrefix
private List<PersonQualifications> personQualifications;// 人员资质信息
@ImagePrefix
private PersonContract personContract;// 人员合同信息
@ImagePrefix
private PersonExamination personExamination;// 人员体检信息
@ImagePrefix
private PersonInsurance personInsurance;// 人员保险信息
private List<PersonClock> personClock;// 人员履历信息
private List<PersonWorkingHours> personWorkingHours;// 工时信息
private List<PersonExam> personExams;// 人员考试信息
@ApiModelProperty(value = "用户角色名称")
private String roleName;
private Long id;
/**
* 创建时间
*/
private Date createDate;
private boolean isJxdj;
@ApiModelProperty(value = "工号")
private String jobNumber;
@ApiModelProperty(value = "激活状态,用于出入场")
private Long activeStatus;
@ApiModelProperty(value = "激活状态,用于出入场描述")
private String activeStatusLabel;
@ApiModelProperty(value = "合格阶段")
private Integer qualifiedStage;
@ApiModelProperty(value = "账户信息")
private PersonAccount personAccount;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 项目坐标信息
*
* @author wangqian
* @date 2021-01-04
*/
@Data
@ApiModel(value = "ProjectCoordinateDto", description = "项目坐标信息")
public class ProjectCoordinateDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "项目id")
private Long projectId;
@ApiModelProperty(value = "坐标地点位置")
private String location;
@ApiModelProperty(value = "考勤范围(米)")
private Double clockScope;
@ApiModelProperty(value = "经度")
private Double longitude;
@ApiModelProperty(value = "纬度")
private Double latitude;
@ApiModelProperty(value = "是否主坐标")
private Boolean isMain;
@ApiModelProperty(value = "备用字段")
private String remark;
}
package com.yeejoin.precontrol.common.dto;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.precontrol.common.entity.ProjectCamera;
import com.yeejoin.precontrol.common.entity.ProjectCompany;
import com.yeejoin.precontrol.common.entity.ProjectCoordinate;
import com.yeejoin.precontrol.common.entity.ProjectDevice;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 项目信息Dto
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class ProjectDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "项目名称")
private String name;
@ApiModelProperty(value = "手机号码")
private Long phone;
@ApiModelProperty(value = "项目经理")
private String manager;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "建设单位")
private String company;
@ApiModelProperty(value = "地区")
private String region;
@ApiModelProperty(value = "经度")
private Double longitude;
@ApiModelProperty(value = "纬度")
private Double latitude;
@ApiModelProperty(value = "打卡半径")
private Double clockScope;
@ApiModelProperty(value = "项目地址")
private String address;
@ApiModelProperty(value = "简介")
private String introduction;
@ApiModelProperty(value = "状态 0在建 1完工")
private String status;
@ApiModelProperty(value = "项目开始时间")
private Date startTime;
@ApiModelProperty(value = "项目编号")
private String projectNum;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "企业id")
private Long companyId;
@ApiModelProperty(value = "项目ids")
private List<Long> projectIds;
@ApiModelProperty(value = "0违章")
private Boolean isNoBad;
@ApiModelProperty(value = "项目id")
private Long projectId;
@ApiModelProperty(value = "地图点类型")
private String pointType;
@ApiModelProperty(value = "地图数据")
private String lineJson;
@ApiModelProperty(value = "未交底次数")
private Long jobNum;
@ApiModelProperty(value = "机构ID")
private String orgCode;
@ApiModelProperty(value = "项目坐标信息")
private List<ProjectCoordinate> projectCoordinateList;
@ApiModelProperty(value = "项目分包商")
private List<ProjectCompany> projectCompanyList;
@ApiModelProperty(value = "项目设备")
private List<ProjectDevice> projectDeviceList;
private List<ProjectCamera> cameraList;
private String projectRegion;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 作业活动Vo
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class ProjectHistroyDto extends BaseDto{
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startDate;
@ApiModelProperty(value = "结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endDate;
@ApiModelProperty(value = "人员ID")
private Long personId;
/**
* 项目id集合
*/
private List<Long> ids;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 项目视频表
*
* @author duanwei
* @date 2020-08-06
*/
@Data
public class ProjectVideoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "责任公司")
private Long projectId;
private Long id;
/**
* 创建时间
*/
private Date createDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 惩罚表Dto
*
* @author duanwei
* @date 2021-04-06
*/
@Data
public class RetributionDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "惩罚人id")
/**
* 惩罚人id
*/
private Long personId;
@ApiModelProperty(value = "任务id")
/**
* id
*/
private Long taskId;
@ApiModelProperty(value = "惩罚金额")
/**
* 惩罚金额
*/
private BigDecimal money;
@ApiModelProperty(value = "状态(0-未交罚款,1-已交罚款)")
/**
* 状态(0-未交罚款,1-已交罚款)
*/
private Integer status;
@ApiModelProperty(value = "交罚款日期")
/**
* 交罚款日期
*/
private Date exchangeDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 奖励惩罚配置表Dto
*
* @author duanwei
* @date 2021-04-06
*/
@Data
public class RewardConfigDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "项目id")
/**
* 项目id
*/
private Long projectId;
@ApiModelProperty(value = "违规类型,关联字典表code")
/**
* 违规类型,关联字典表code
*/
private String code;
@ApiModelProperty(value = "惩罚金额")
/**
* 惩罚金额
*/
private BigDecimal retributionMoney;
@ApiModelProperty(value = "奖励金额")
/**
* 奖励金额
*/
private BigDecimal rewardMoney;
@ApiModelProperty(value = "更新时间")
/**
* 更新时间
*/
private Date updateDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 奖励表Dto
*
* @author duanwei
* @date 2021-04-06
*/
@Data
public class RewardDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "奖励人id")
/**
* 奖励人id
*/
private Long personId;
@ApiModelProperty(value = "任务id")
/**
* 任务id
*/
private Long taskId;
@ApiModelProperty(value = "奖励金额")
/**
* 奖励金额
*/
private BigDecimal money;
@ApiModelProperty(value = "状态(0-未兑换,1-已兑换)")
/**
* 状态(0-未兑换,1-已兑换)
*/
private Integer status;
@ApiModelProperty(value = "兑换日期")
/**
* 兑换日期
*/
private Date exchangeDate;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 风险作业管理表
*
* @author duanwei
* @date 2021-01-28
*/
@Data
@ApiModel(value = "RiskWorkDto", description = "风险作业管理表")
public class RiskWorkDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "风险作业名称")
private String name;
@ApiModelProperty(value = "风险等级")
private String level;
@ApiModelProperty(value = "名称(冗余字段)")
private String levelName;
@ApiModelProperty(value = "创建者")
private String createId;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 风险作业关联危险作业表
*
* @author duanwei
* @date 2021-01-28
*/
@Data
@ApiModel(value = "RiskWorkHazadousWorkDto", description = "风险作业关联危险作业表")
public class RiskWorkHazadousWorkDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "风险作业id")
private Long riskWorkId;
@ApiModelProperty(value = "危险作业id")
private Long harzadousWorkId;
@ApiModelProperty(value = "危险作业名称")
private Long harzadousWorkName;
@ApiModelProperty(value = "作业条件")
private String workCondition;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 管控措施
*
* @author duanwei
* @date 2021-01-28
*/
@Data
@ApiModel(value = "RiskWorkMeasureDto", description = "管控措施")
public class RiskWorkMeasureDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "管控措施名称")
private String name;
@ApiModelProperty(value = "编号(暂未使用)")
private String code;
@ApiModelProperty(value = "风险作业id")
private Long riskWorkId;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 风险作业人员要求表
*
* @author duanwei
* @date 2021-01-28
*/
@Data
@ApiModel(value = "RiskWorkPersonRequirementDto", description = "风险作业人员要求表")
public class RiskWorkPersonRequirementDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "风险作业id")
private Long riskWorkId;
@ApiModelProperty(value = "人员类型")
private String personType;
@ApiModelProperty(value = "工种")
private String workType;
@ApiModelProperty(value = "资质要求")
private String qualification;
@ApiModelProperty(value = "三级安全考试")
private String secExam;
@ApiModelProperty(value = "专业技能考试")
private String proSkillExam;
@ApiModelProperty(value = "知识")
private String knowledge;
@ApiModelProperty(value = "考试题库类型(对应字典行业)")
private String examSubjectType;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 安全施工任务列表Vo
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class SafeConstructionDto extends BaseDto{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "安全施工状态 0进行中[距离目前8小时以内] 1超时[超出目前8小时] 2未完成[超出目前12小时]")
private Long currentStatus;
@ApiModelProperty(value = "项目id")
private Long projectId;
}
package com.yeejoin.precontrol.common.dto;
import lombok.Data;
@Data
public class SafeOperationStatisticsDto extends BaseDto{
String projectName;
String taskNo;
String name;
String startDate;
String endDate;
String companyName;
String badTypeName;
String workTicketName;
String riskType;
}
package com.yeejoin.precontrol.common.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import com.yeejoin.amos.component.rule.Label;
import com.yeejoin.amos.component.rule.RuleFact;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 违规管理
* @author: duanwei
* @date: 2020-07-17 15:48
**/
@Data
@RuleFact(project = "施工安全预控", value = "违章对象")
public class SingBadManagementDto extends BaseDto implements Serializable{
// 人员类型 0主持人 1交底人 2施工负责人 3安全员 4记录人 5交底人员 6技术员 7工程人员 8施工人员 9违章人员 10分包商负责人 99 发布人
private static final long serialVersionUID = -4597159693050351L;
@ApiModelProperty(value = "任务ID")
@Label(value = "任务ID")
private Long id;
@ApiModelProperty(value = "项目ID")
@Label(value = "项目ID")
private Long projectId;
@ApiModelProperty(value = "发起人ID")
@Label(value = "发起人ID")
private Long createId;
@ApiModelProperty(value = "违规内容")
@Label(value = "违规内容")
private String body;
@ApiModelProperty(value = "文件路径")
@Label(value = "文件路径")
@ImagePrefix
private List<String> filePath;
@ApiModelProperty(value = "分包商企业ID")
@Label(value = "分包商企业ID")
private Long companyId;
@ApiModelProperty(value = "分包商负责人")
@Label(value = "分包商负责人")
private Long personLiableId;
@ApiModelProperty(value = "违规人ID")
@Label(value = "违规人ID")
private List<Long> badManagementId;
@ApiModelProperty(value = "违规类型")
@Label(value = "违规类型")
private String type;
@ApiModelProperty(value = "审核人ID")
@Label(value = "审核人ID")
private Long auditPersonId;
@ApiModelProperty(value = "违章性质")
@Label(value = "违章性质")
private String nature;
@ApiModelProperty(value = "奖励金额")
@Label(value = "奖励金额")
private BigDecimal rewardMoney;
@ApiModelProperty(value = "惩罚金额")
@Label(value = "惩罚金额")
private BigDecimal punishMoney;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description: 技术交底
* @author: duanwei
* @date: 2020-07-17 15:48
**/
@Data
public class SingJobDisclosureDto extends BaseDto{
//人员类型(0主持人,1交底人,2施工负责人,3安全员,4交底人员,5记录人,6技术员,7工程人员,8施工人员,9违章人员 99 发布人)
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long id;
@ApiModelProperty(value = "所属项目id")
private Long projectId;
@ApiModelProperty(value = "方案名称")
private String name;
@ApiModelProperty(value = "方案代号")
private String code;
@ApiModelProperty(value = "方案编号")
private String number;
@ApiModelProperty(value = "技术交底文件Id")
private Long documentId;
@ApiModelProperty(value = "技术交底文件名称")
private String documentName;
@ApiModelProperty(value = "附件")
@ImagePrefix
private List<FileDto> attachment;
@ApiModelProperty(value = "主持人")
private List<Long> hostPersonId;
@ApiModelProperty(value = "交底人")
private List<Long> disclosurePersonId;
@ApiModelProperty(value = "施工负责人")
private List<Long> constructionDirectorId;
@ApiModelProperty(value = "安全员")
private List<Long> safetyOfficerId;
@ApiModelProperty(value = "记录员")
private List<Long> noteTakerId;
@ApiModelProperty(value = "交底人员")
private List<Long> participateDisclosureId;
@ApiModelProperty(value = "项目部安全员")
private List<Long> platformSafetyOfficerId;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import com.yeejoin.precontrol.common.entity.HazardousWorkResult;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description: 三交三查
* @author: duanwei
* @date: 2020-07-17 15:48
**/
@Data
public class SingTaskPayCheckDto extends BaseDto{
//人员类型(0主持人,1交底人,2施工负责人,3安全员,4交底人员,5记录人,6技术员,7工程人员,8施工人员,9违章人员 99 发布人)
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long id;
@ApiModelProperty(value = "所属项目id")
private Long projectId;
@ApiModelProperty(value = "天气")
private String weather;
@ApiModelProperty(value = "施工任务")
private Long constructionTask;
@ApiModelProperty(value = "技术要求")
private Long technicalRequire;
@ApiModelProperty(value = "安全环保措施")
private Long environmentProtect;
@ApiModelProperty(value = "是否风险作业")
private Long riskOperation;
@ApiModelProperty(value = "风险作业类型Id")
private Long riskTypeId;
@ApiModelProperty(value = "风险作业类型")
private String riskType;
@ApiModelProperty(value = "平台安全员")
private Long platformSafetyOfficerId;
@ApiModelProperty(value = "安全员")
private Long safetyOfficerId;
@ApiModelProperty(value = "技术员")
private List<Long> technicianId;
@ApiModelProperty(value = "工程人员")
private List<Long> engineeringStaffId;
@ApiModelProperty(value = "施工人员")
private List<Long> builderId;
@ApiModelProperty(value = "着装")
private Long dress;
@ApiModelProperty(value = "三宝(安全帽、安全带、安全鞋)")
private Long saftTreasure;
@ApiModelProperty(value = "精神状态")
private Long mentalState;
@ApiModelProperty(value = "作业票id")
private Long workTicketId;
@ApiModelProperty(value = "作业票名称")
private String workTicketName;
@ApiModelProperty(value = "图片")
@ImagePrefix
private List<String> filePath;
@ApiModelProperty(value = "作业票图片")
@ImagePrefix
private List<String> workTicketFilePath;
@ApiModelProperty(value = "检查项")
private List<HazardousWorkResult> hazardousWorkResultList;
@ApiModelProperty(value = "平台检查项")
private List<HazardousWorkResult> platformHazardousWorkResultList;
@ApiModelProperty(value = "附件")
@ImagePrefix
private List<String> attachment;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: duanwei
* @date: 2020-08-03 09:15
**/
@Data
public class SmallProDto {
@ApiModelProperty(value = "接收者(用户)的 openid")
private String touser;
@ApiModelProperty(value = "所需下发的订阅模板id")
private String template_id;
@ApiModelProperty(value = "点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。")
private String page;
@ApiModelProperty(value = "模板内容,格式形如 { \"key1\": { \"value\": any }, \"key2\": { \"value\": any } }")
private String data;
@ApiModelProperty(value = "跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版")
private String miniprogram_state;
@ApiModelProperty(value = "进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN")
private String lang;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 短信流水表
*
* @author duanwei
* @date 2021-01-27
*/
@Data
@ApiModel(value = "SmsLogDto", description = "短信流水表")
public class SmsLogDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "接收者")
private String receiver;
@ApiModelProperty(value = "验证码")
private String authCode;
@ApiModelProperty(value = "短信内容")
private String body;
@ApiModelProperty(value = "模板id")
private String templateId;
@ApiModelProperty(value = "1-未使用;2-已使用(暂时不用,放到redis)")
private Integer status;
@ApiModelProperty(value = "到期时间(暂时不用,放到redis)")
private Date expireDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StatisticsDto extends BaseDto {
@ApiModelProperty(value = "项目id")
private Long projectId;
@ApiModelProperty(value = "公司id")
private Long companyId;
@ApiModelProperty(value = "人员id")
private Long personId;
@ApiModelProperty(value = "平台用户id")
private Long userId;
public StatisticsDto() {
}
public StatisticsDto(String orgCode, Long projectId, Long companyId) {
this.orgCode = orgCode;
this.projectId = projectId;
this.companyId = companyId;
}
public StatisticsDto(String orgCode, Long projectId) {
this.orgCode = orgCode;
this.projectId = projectId;
}
}
package com.yeejoin.precontrol.common.dto;
import lombok.Data;
/**
* @Description: Studio分页传输dto
* @Author: duanwei
* @Date: 2020/7/3
*/
@Data
public class StudioPageableDto {
/**
* 页号(大于等于0)
*/
protected Integer current;
/**
* 每页大小(大于等于0)
*/
protected Integer size;
/**
* 查询全部
*/
private Integer isAll = 1;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 作业活动
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class TaskDto extends BaseDto{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long id;
@ApiModelProperty(value = "所属项目id")
private Long projectId;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "作业类型")
private Long type;
@ApiModelProperty(value = "发起人id")
private Long createPersonId;
@ApiModelProperty(value = "任务状态")
private Long status;
@ApiModelProperty(value = "任务单号")
private Long taskNo;
@ApiModelProperty(value = "文件")
@ImagePrefix
private List<FileDto> file;
@ApiModelProperty(value = "作业交底")
private JobDisclosureDto jobDisclosure;
@ImagePrefix
@ApiModelProperty(value = "三交三查数据")
private TaskPaycheckDto taskPaycheck;
@ApiModelProperty(value = "违规管理")
private BadManangerDto badMananger;
@ApiModelProperty(value = "未完成任务的当前状态")
private Long currentStatus;
@ApiModelProperty(value = "风险作业确认状态")
private Long riskStatus;
@ApiModelProperty(value = "检查项确认状态")
private Long builderStatus;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 作业活动Vo
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class TaskPageDto extends BaseDto {
private static final long serialVersionUID = 1L;
private Long id;
/**
* 任务id集合
*/
@ApiModelProperty(value = "任务id集合", position = 99)
private List<Long> ids;
@ApiModelProperty(value = "作业类型")
private Long type;
@ApiModelProperty(value = "方案名称")
private String name;
@ApiModelProperty(value = "代号")
private String code;
@ApiModelProperty(value = "编号")
private String number;
@ApiModelProperty(value = "天气")
private String weather;
@ApiModelProperty(value = "发起人id")
private Long createPersonId;
@ApiModelProperty(value = "所属项目id")
private Long projectId;
@ApiModelProperty(value = "所属项目ids")
private List<Long> projectIds;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "任务状态")
private List<Long> status;
@ApiModelProperty(value = "超时状态")
private Long currentStatus;
@ApiModelProperty(value = "任务单号")
private Long taskNo;
@ApiModelProperty(value = "项目开始时间", position = 1)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startDate;
@ApiModelProperty(value = "项目结束时间", position = 2)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endDate;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "App搜索条件")
private String search;
@ApiModelProperty(value = "任务开始时间", position = 3)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date taskStartDate;
@ApiModelProperty(value = "任务结束时间", position = 4)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date taskEndDate;
@ApiModelProperty(value = "是否风险作业")
private String isRiskType;
@ApiModelProperty(value = "预留参数,请勿传递")
private Long userId;
@ApiModelProperty(value = "预留参数,请勿传递")
private Long companyId;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import com.yeejoin.precontrol.common.entity.HazardousWorkResult;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 三交三查
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class TaskPaycheckDto extends BaseDto{
@ApiModelProperty(value = "施工任务")
private Long constructionTask;
@ApiModelProperty(value = "技术要求")
private Long technicalRequire;
@ApiModelProperty(value = "安全环保措施")
private Long environmentProtect;
@ApiModelProperty(value = "着装")
private Long dress;
@ApiModelProperty(value = "三宝(安全帽、安全带、安全鞋)")
private Long saftTreasure;
@ApiModelProperty(value = "精神状态")
private Long mentalState;
@ApiModelProperty(value = "是否风险作业")
private Long riskOperation;
@ApiModelProperty(value = "风险作业类型ID")
private Long riskTypeId;
@ApiModelProperty(value = "风险作业类型")
private String riskType;
@ApiModelProperty(value = "人员类型")
private List<TaskPersonDto> taskPerson;
@ApiModelProperty(value = "天气")
private String weatherName;
@ApiModelProperty(value = "作业票名称")
private String workTicketName;
@ApiModelProperty(value = "作业票图片")
@ImagePrefix
private List<String> workTicketFilePath;
@ApiModelProperty(value = "检查项目")
private List<HazardousWorkResult> hazardousWorkResultList;
@ApiModelProperty(value = "附件图片")
@ImagePrefix
private List<String> attachment;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Description 施工人员类型Dto
* @Author: duanwei
* @Date: 2020/7/3
*/
@Data
public class TaskPersonDto extends BaseDto{
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "人员id")
private Long personId;
@ApiModelProperty(value = "人员名称")
private String personName;
@ApiModelProperty(value = "人员类型 0主持人 1交底人 2施工负责人 3安全员 4记录人 5交底人员 6技术员 7工程人员 8施工人员 9违章人员 10分包商负责人 99 发布人")
private Long type;
@ApiModelProperty(value = "阅读状态 0未读 1已读")
private Long readStatus;
@ApiModelProperty(value = "阅读时间")
private Date readTime;
@ApiModelProperty(value = "企业id")
private Long companyId;
@ApiModelProperty(value = "任务人员id")
private Long id;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: duanwei
* @date: 2020-07-07 11:11
**/
@Data
public class TaskPersonFileDto extends BaseDto{
@ApiModelProperty(value = "任务id")
private Long taskId;
@ApiModelProperty(value = "人员id")
private Long personId;
@ApiModelProperty(value = "人员类型")
private String personType;
@ApiModelProperty(value = "文件名称")
private String fileName;
@ApiModelProperty(value = "文件路径")
@ImagePrefix
private String filePath;
@ApiModelProperty(value = "数据更新时间")
private Date updateDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 任务阅读
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class TaskReadDto extends BaseDto{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
private Long taskId;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @author tb
* @date 2021-01-28
*/
@Data
public class TaskRiskControlDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "风险作业计划名称")
private String name;
@ApiModelProperty(value = "安全负责人员")
private Long personId;
private String secPersonName;
private String techPersonName;
@ApiModelProperty(value = "项目id")
private Long projectId;
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "计划开始时间")
private Date startTime;
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "计划结束时间")
private Date endTime;
/**
* 风险计划任务状态
*/
private String statusCode;
/**
* 阶段列表
*/
private List<String> stageList;
/**
* 组织机构代码
*/
private String orgCode;
@ApiModelProperty(value = "待开始")
private Boolean toStart;
@ApiModelProperty(value = "任务状态")
private List<Long> status;
@ApiModelProperty(value = "超时状态")
private Long currentStatus;
@ApiModelProperty(value = "阶段")
private Integer stage;
@ApiModelProperty(value = "等级")
private Integer level;
private Long companyId;
}
package com.yeejoin.precontrol.common.dto;
import java.util.Date;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author tb
* @date 2021-01-28
*/
@Data
public class TaskRiskControlTechDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "风险作业计划名称")
private String name;
@ApiModelProperty(value = "安全负责人员")
private Long personId;
/**
* 安全人员名称
*/
private String techPersonName;
@ApiModelProperty(value = "项目id")
private Long projectId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "计划开始时间")
private Date startTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "计划结束时间")
private Date endTime;
/**
* 风险计划任务状态
*/
private String statusCode;
/**
* 阶段列表
*/
private List<String> stageList;
/**
* 组织机构代码
*/
private String orgCode;
@ApiModelProperty(value = "待开始")
private Boolean toStart;
@ApiModelProperty(value = "任务状态")
private List<Long> status;
@ApiModelProperty(value = "超时状态")
private Long currentStatus;
@ApiModelProperty(value = "阶段")
private Integer stage;
@ApiModelProperty(value = "等级")
private Integer level;
private Integer type;
private String projectName;
private String search;
private long isJxdj;
private Long companyId;
}
package com.yeejoin.precontrol.common.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.precontrol.common.annotations.ImagePrefix;
import com.yeejoin.precontrol.common.entity.TaskSalaryConfirmAttachment;
import com.yeejoin.precontrol.common.vo.PersonSalaryExcelVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 薪资确认任务表Dto
*
* @author duanwei
* @date 2020-12-08
*/
@Data
public class TaskSalaryConfirmDto extends BaseDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "任务id")
/**
* 任务id
*/
private Long taskId;
@ApiModelProperty(value = "项目id")
/**
* 项目id
*/
private Long projectId;
@ApiModelProperty(value = "项目名称")
/**
* 项目名称
*/
private String projectName;
@ApiModelProperty(value = "分包商id")
/**
* 分包商id
*/
private Long companyId;
@ApiModelProperty(value = "分包商名称")
/**
* 分包商名称
*/
private String companyName;
@ApiModelProperty(value = "合同工资总额")
/**
* 合同工资总额
*/
private BigDecimal contractTotalSalary;
@ApiModelProperty(value = "本次发放金额")
/**
* 本次发放金额
*/
private BigDecimal currentPaySalary;
@ApiModelProperty(value = "付款批次")
/**
* 付款批次
*/
private String payBatch;
@ApiModelProperty(value = "银行账户")
/**
* 银行账户
*/
private String bankAccount;
@ApiModelProperty(value = "付款开始时间")
/**
* 付款开始时间
*/
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date payStartTime;
@ApiModelProperty(value = "付款结束时间")
/**
* 付款结束时间
*/
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date payEndTime;
@ApiModelProperty(value = "发放类型")
/**
* 发放类型
*/
private String payType;
@ApiModelProperty(value = "发放日期")
/**
* 发放日期
*/
@JsonFormat(pattern="yyyy-MM-dd")
private Date payDate;
@ApiModelProperty(value = "本次发放比例")
/**
* 本次发放比例
*/
private Integer payRatio;
@ApiModelProperty(value = "状态")
/**
* 本次发放比例
*/
private Integer status;
/**
* 附件列表
*/
@ApiModelProperty(value = "附件")
@ImagePrefix
private List<TaskSalaryConfirmAttachment> attachment;
/**
* 人员列表
*/
private List<PersonSalaryExcelVo> taskPersonList;
@ApiModelProperty(value = "创建时间")
private String createDate;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class TeamDto extends BaseDto{
@ApiModelProperty(value = "部门id")
private Long departmentId;
@ApiModelProperty(value = "开户银行名称")
private String name;
@ApiModelProperty(value = "开户银行名称")
private String bankName;
@ApiModelProperty(value = "银行卡号")
private String acountNumber;
@ApiModelProperty(value = "备注")
private String remark;
}
package com.yeejoin.precontrol.common.dto;
import lombok.Data;
@Data
public class TeamPersonSearchDto extends BaseDto{
String userName;
String projectId;
String companyId;
String roleName;
}
package com.yeejoin.precontrol.common.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 技术文库
*
* @author duanwei
* @date 2020-07-01
*/
@Data
public class TechDocumentDto extends BaseDto{
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "编号")
private String number;
@ApiModelProperty(value = "分类")
private String type;
@ApiModelProperty(value = "条件")
private String search;
private List<Long> ids;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户评价记录表
*
* @author tb
* @date 2021-01-28
*/
@Data
public class UserEvaluationLogDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private Long personId;
@ApiModelProperty(value = "评价人id")
private Long evaluationUserId;
@ApiModelProperty(value = "评价人名称")
private String evaluationUserName;
@ApiModelProperty(value = "评价内容")
private String content;
@ApiModelProperty(value = "评价等级")
private String rate;
}
package com.yeejoin.precontrol.common.dto;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author tb
* @date 2021-01-25
*/
@Data
public class UserRegistrationDto extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户姓名")
private String realName;
@ApiModelProperty(value = "证件类型")
private String idType;
@ApiModelProperty(value = "证件号码")
private String idNumber;
@ApiModelProperty(value = "个人头像")
private String profile;
@ApiModelProperty(value = "岗位key")
private String postNameKey;
@ApiModelProperty(value = "岗位")
private String postName;
@ApiModelProperty(value = "状态")
private Integer verifyStatus;
@ApiModelProperty(value = "userId")
private Long userId;
}
package com.yeejoin.precontrol.common.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 微信公众号用户关联Dto
*
* @author duanwei
* @date 2021-07-28
*/
@Data
public class WechatRelationDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "小程序openId")
/**
* 小程序openId
*/
private String smallOpenId;
@ApiModelProperty(value = "公众号openId")
/**
* 公众号openId
*/
private String publicOpenId;
@ApiModelProperty(value = "unionId")
/**
* unionId
*/
private String unionId;
@ApiModelProperty(value = "用户id")
/**
* 用户id
*/
private String personId;
}
package com.yeejoin.precontrol.common.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 微信消息 推送记录Dto
*
* @author duanwei
* @date 2021-07-28
*/
@Data
public class WechatSendMessageDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "openId")
/**
* openId
*/
private String openId;
@ApiModelProperty(value = "内容")
/**
* 内容
*/
private String message;
@ApiModelProperty(value = "状态 : 成功 ,失败")
/**
* 状态 : 成功 ,失败
*/
private String status;
@ApiModelProperty(value = "失败原因")
/**
* 失败原因
*/
private String failMessage;
@ApiModelProperty(value = "模板ID")
/**
* 模板ID
*/
private String templateId;
@ApiModelProperty(value = "发送消息微信返回结果")
/**
* 发送消息微信返回结果
*/
private String result;
}
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