diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchorderinfo/DispatchOrderinfoDto.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchorderinfo/DispatchOrderinfoDto.java
index a43ccbd9..2187ed4d 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchorderinfo/DispatchOrderinfoDto.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchorderinfo/DispatchOrderinfoDto.java
@@ -67,7 +67,7 @@ public class DispatchOrderinfoDto implements Dto {
@ApiModelProperty("描述:1-一般;2-重要; 3-紧急;4-督办。")
private String orderdegree; // 描述:1-一般;2-重要; 3-紧急;4-督办。
@ApiModelProperty("描述:1-计划巡视;")
- private Integer ordertype; // 描述:1-计划巡视;
+ private String ordertype; // 描述:1-计划巡视;
@ApiModelProperty("工单内容")
private String ordercontent; // 工单内容
@ApiModelProperty("到达现场时间")
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlan.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlan.java
index 9e5d3e66..65fe4967 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlan.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlan.java
@@ -52,8 +52,10 @@ public class DispatchPatrolPlan extends BaseEntity {
@ApiModelProperty("计划名称")
private String planname; // 计划名称
- @ApiModelProperty("客户标识")
+ @ApiModelProperty("客户标识")
private String custid; // 客户标识
+ @ApiModelProperty("客户名称")
+ private String custname; // 客户标识
@ApiModelProperty("监管公司id")
private String supervisesid; // 监管公司id
@ApiModelProperty("1计划巡视、2专项巡视")
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDetailsVo.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDetailsVo.java
index 4dfae839..92378a5f 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDetailsVo.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDetailsVo.java
@@ -55,6 +55,8 @@ public class DispatchPatrolPlanDetailsVo implements Vo {
private String planname; // 计划名称
@ApiModelProperty("客户标识")
private String custid; // 客户标识
+ @ApiModelProperty("客户名称")
+ private String custname; // 客户标识
@ApiModelProperty("监管公司id")
private String supervisesid; // 监管公司id
@ApiModelProperty("1计划巡视、2专项巡视")
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDto.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDto.java
index 97ceb6d1..c93d05be 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDto.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanDto.java
@@ -58,6 +58,8 @@ public class DispatchPatrolPlanDto implements Dto {
private String planname; // 计划名称
@ApiModelProperty("客户标识")
private String custid; // 客户标识
+ @ApiModelProperty("客户名称")
+ private String custname; // 客户标识
@ApiModelProperty("监管公司id")
private String supervisesid; // 监管公司id
@ApiModelProperty("1计划巡视、2专项巡视")
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanVo.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanVo.java
index 7f81868d..7af09570 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanVo.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/dispatchpatrolplan/DispatchPatrolPlanVo.java
@@ -55,6 +55,8 @@ public class DispatchPatrolPlanVo implements Vo {
private String planname; // 计划名称
@ApiModelProperty("客户标识")
private String custid; // 客户标识
+ @ApiModelProperty("客户名称")
+ private String custname; // 客户标识
@ApiModelProperty("监管公司id")
private String supervisesid; // 监管公司id
@ApiModelProperty("1计划巡视、2专项巡视")
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/enums/CommonConstant.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/enums/CommonConstant.java
new file mode 100644
index 00000000..59a38c29
--- /dev/null
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-api/src/main/java/com/yxt/supervise/dispatchcenter/api/enums/CommonConstant.java
@@ -0,0 +1,14 @@
+package com.yxt.supervise.dispatchcenter.api.enums;
+
+public enum CommonConstant {
+ PATROLPERIOD_DAY(5),PATROLPERIOD_MONTH(2);
+ private int code;
+
+ public int getCode() {
+ return code;
+ }
+
+ CommonConstant(int code) {
+ this.code = code;
+ }
+}
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/pom.xml b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/pom.xml
index 124f5b78..b0ce13e3 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/pom.xml
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/pom.xml
@@ -15,6 +15,12 @@
0.0.1
+
+
+ com.xuxueli
+ xxl-job-core
+ 2.2.0
+
org.springframework.boot
spring-boot-starter-cache
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoService.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoService.java
index bfcd848a..c47b554f 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoService.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoService.java
@@ -160,4 +160,12 @@ public class DispatchOrderinfoService extends MybatisBaseService qw = createQueryWrapper(query);
+ return baseMapper.selectList(qw).size();
+ }
}
\ No newline at end of file
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchplanworker/DispatchPlanWorkerService.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchplanworker/DispatchPlanWorkerService.java
index f7a6926b..4cb73fcf 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchplanworker/DispatchPlanWorkerService.java
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchplanworker/DispatchPlanWorkerService.java
@@ -44,6 +44,7 @@ import com.yxt.supervise.dispatchcenter.api.dispatchplanworker.DispatchPlanWorke
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -123,4 +124,14 @@ public class DispatchPlanWorkerService extends MybatisBaseService selectByPlanSid(String sid) {
+ if(StringUtils.isBlank(sid)){
+ return new ArrayList<>();
+ }
+ DispatchPlanWorkerQuery query=new DispatchPlanWorkerQuery();
+ query.setPlanid(sid);
+ QueryWrapper qw = createQueryWrapper(query);
+ return baseMapper.selectList(qw);
+ }
}
\ No newline at end of file
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/config/XxlJobConfig.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/config/XxlJobConfig.java
new file mode 100644
index 00000000..5e2f452b
--- /dev/null
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/config/XxlJobConfig.java
@@ -0,0 +1,70 @@
+package com.yxt.supervise.dispatchcenter.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+@Slf4j
+@Configuration
+public class XxlJobConfig {
+
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+ @Value("${xxl.job.executor.address}")
+ private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+ xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+
+ /**
+ * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+ *
+ * 1、引入依赖:
+ *
+ * org.springframework.cloud
+ * spring-cloud-commons
+ * ${version}
+ *
+ *
+ * 2、配置文件,或者容器启动变量
+ * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+ *
+ * 3、获取IP
+ * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+ */
+
+}
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/scheduing/PlanScheduing.java b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/scheduing/PlanScheduing.java
new file mode 100644
index 00000000..10eef5ae
--- /dev/null
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/scheduing/PlanScheduing.java
@@ -0,0 +1,135 @@
+package com.yxt.supervise.dispatchcenter.scheduing;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.yxt.supervise.dispatchcenter.api.dispatchorderinfo.DispatchOrderinfo;
+import com.yxt.supervise.dispatchcenter.api.dispatchorderinfo.DispatchOrderinfoDto;
+import com.yxt.supervise.dispatchcenter.api.dispatchpatrolplan.DispatchPatrolPlan;
+import com.yxt.supervise.dispatchcenter.api.dispatchplanworker.DispatchPlanWorker;
+import com.yxt.supervise.dispatchcenter.api.dispatchworker.DispatchWorkerDto;
+import com.yxt.supervise.dispatchcenter.api.enums.CommonConstant;
+import com.yxt.supervise.dispatchcenter.biz.dispatchorderinfo.DispatchOrderinfoService;
+import com.yxt.supervise.dispatchcenter.biz.dispatchpatrolplan.DispatchPatrolPlanService;
+import com.yxt.supervise.dispatchcenter.biz.dispatchplanworker.DispatchPlanWorkerService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+@Slf4j
+@Component
+public class PlanScheduing {
+ @Autowired
+ private DispatchPatrolPlanService dispatchPatrolPlanService;
+ @Autowired
+ private DispatchPlanWorkerService dispatchPlanWorkerService;
+ @Autowired
+ private DispatchOrderinfoService dispatchOrderinfoService;
+ @XxlJob("planScheduing")
+ public ReturnT planScheduing(String param) throws Exception {
+ List lists = dispatchPatrolPlanService.list();
+ log.info("lists:{}", JSONObject.toJSONString(lists));
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String today= LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ //对未结束的 策略生成计划
+ lists.stream()
+ .filter(data->data.getStartdate()!=null && data.getEnddate()!=null )
+ .forEach(data->{
+
+ Date dEnd = null;
+ try {
+ dEnd = sdf.parse(data.getEnddate());
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ Calendar startDate = Calendar.getInstance();
+ //开始日期
+ try {
+ startDate.setTime(sdf.parse(data.getStartdate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ int type = Calendar.DAY_OF_MONTH;
+
+ if (CommonConstant.PATROLPERIOD_MONTH.equals(data.getCycletypekey())){
+ type = Calendar.MONTH;
+ }
+
+ while (dEnd.after(startDate.getTime())) {
+ if (today.equals(sdf.format(startDate.getTime())) ||
+ (new Date().before(startDate.getTime()))){
+ List list = dispatchPatrolPlanService
+ .list(new LambdaQueryWrapper()
+ .eq(DispatchPatrolPlan::getSid, data.getSid()));
+ if (list == null || list.size()==0)
+ newPlanOrder(data);
+ break;
+ }
+ startDate.add(type,Integer.valueOf(data.getCyclevalue()));
+ }
+ }
+ );
+
+ return ReturnT.SUCCESS;
+ }
+
+ public DispatchOrderinfoDto newPlanOrder(DispatchPatrolPlan data) {
+ DispatchOrderinfoDto iesPatrolOrder = new DispatchOrderinfoDto();
+ iesPatrolOrder.setCustid(data.getCustid()); // 客户ID
+ iesPatrolOrder.setCustname(data.getCustname()); // 客户名称
+ iesPatrolOrder.setSupervisesid(data.getSupervisesid()); // 监管公司id
+ String no_s = getNo(data);
+ iesPatrolOrder.setOrderno(no_s); // 用法说明:工单编号规则。
+ iesPatrolOrder.setOrdername(data.getCustname()); // 工单名称
+ iesPatrolOrder.setOrderdegree("一般"); // 描述:1-一般;2-重要; 3-紧急;4-督办。
+ iesPatrolOrder.setOrderdegreekey("1");
+ iesPatrolOrder.setOrdertype(data.getPatroltype()); // 描述:1-计划巡视;
+ iesPatrolOrder.setOrdertypekey(data.getPatroltypekey());
+ iesPatrolOrder.setReceiveperson(data.getContactperson()); // 现场联系人
+ iesPatrolOrder.setReceivetel(data.getContactphone()); // 现场联系人电话
+ iesPatrolOrder.setTemplatesid(data.getTemplateid()); // templatesid
+ List list = dispatchPlanWorkerService.selectByPlanSid(data.getSid());
+ List workers=new ArrayList<>();
+ list.forEach(l->{
+ DispatchWorkerDto dd=new DispatchWorkerDto();
+ BeanUtil.copyProperties(l,dd);
+ workers.add(dd);
+ });
+ iesPatrolOrder.setWorkers(workers);
+ dispatchOrderinfoService.saveOrUpdateDto(iesPatrolOrder);
+
+ return iesPatrolOrder;
+ }
+
+ private String getNo(DispatchPatrolPlan data ) {
+ SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd");
+ int no=dispatchOrderinfoService.selectByCustSidAndDate(data.getCustid(), sdf.format(new Date()));
+ String no_s="01";
+ if (no==0){
+ no_s="01";
+ }
+ if(no>0&&no<10){
+ no++;
+ no_s="0"+no;
+ }
+ if(no>10){
+ no++;
+ no_s=""+no;
+ }
+ return "GD"+sdf.format(new Date())+no_s;
+ }
+
+}
diff --git a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/resources/application.yml b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/resources/application.yml
index 159ee2cf..f5d72e8d 100644
--- a/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/resources/application.yml
+++ b/yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/resources/application.yml
@@ -56,4 +56,16 @@ hystrix:
ribbon:
ReadTimeout: 30000
ConnectTimeout: 30000
-
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl:
+ job:
+ admin:
+ addresses: http://127.0.0.1:8088/xxl-job-admin
+ accessToken: default_token
+ executor:
+ appname: supervise-dispatchcenter-executor
+ address:
+ ip:
+ port: 9679
+ logpath:
+ logretentiondays: 30