Browse Source

根据巡检计划模拟生成工单

ops-management-platform-backend-dev
gjh 4 weeks ago
parent
commit
7e156b37c1
  1. 10
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java
  2. 8
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java
  3. 10
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java
  4. 32
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java
  5. 11
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/CreatePlanVo.java
  6. 9
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ioCompanySelectVo.java
  7. 8
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IInspectionPlanInfoService.java
  8. 7
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java
  9. 4
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java
  10. 23
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/InspectionPlanInfoServiceImpl.java
  11. 19
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java
  12. 32
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

10
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java

@ -1,12 +1,14 @@
package org.dromara.platform.controller;
import java.util.List;
import java.util.Set;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.vo.ioCompanySelectVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -114,4 +116,12 @@ public class InspectionPlanInfoController extends BaseController {
return R.ok("创建巡检计划成功!");
}
@SaCheckPermission("platform:inspectPlanInfo:getIoCompanyNames")
@GetMapping("/getIoCompanyNames")
public R<Set<String>> getIoCompanyNames() {
Set<String> rs = inspectionPlanInfoService.getIoCompanyNames();
return R.ok(rs);
}
}

8
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java

@ -170,4 +170,12 @@ public class ServiceCatalogCategoryController extends BaseController {
return toAjax( serviceCatalogCategoryService.saveByBo(bo));
}
@SaCheckPermission("platform:catalogCategory:queryOutCategoryName")
@GetMapping("/queryOutCategoryName")
public R<List<ServiceCatalogSelectVo>> queryOutCategoryName() {
List<ServiceCatalogSelectVo> rs = serviceCatalogCategoryService.queryOutCategoryName();
return R.ok(rs);
}
}

10
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java

@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.InspectionPlanInfo;
import org.dromara.platform.domain.WorkOrderInfo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -102,4 +105,11 @@ public class WorkOrderInfoController extends BaseController {
@PathVariable String[] ids) {
return toAjax(workOrderInfoService.deleteWithValidByIds(List.of(ids), true));
}
@SaCheckPermission("platform:workOrder:createOrders")
@PostMapping("/createOrders")
public R<List<WorkOrderInfo>> createOrders(@RequestBody InspectionPlanInfo inspectionPlanInfo) {
List<WorkOrderInfo> rs = workOrderInfoService.createOrders(inspectionPlanInfo);
return R.ok(rs);
}
}

32
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java

@ -1,5 +1,6 @@
package org.dromara.platform.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@ -8,6 +9,7 @@ import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
/**
* 工单信息对象 work_order_info
@ -34,6 +36,36 @@ public class WorkOrderInfo extends TenantEntity {
*/
private String projectName;
/**
* 所属合同
*/
@TableField(exist = false)
private String contractName;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date ScheduleStartDate;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date ScheduleEndDate;
/**
* 巡检点位
*/
@TableField(exist = false)
private String inspectionPoint;
/**
* 工单类型
*/
@TableField(exist = false)
private String type;
/**
* 运维单位
*/
@TableField(exist = false)
private String ioCompany;
/**
* 报修人员
*/

11
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/CreatePlanVo.java

@ -0,0 +1,11 @@
package org.dromara.platform.domain.vo;
import lombok.Data;
import org.dromara.common.tenant.core.TenantEntity;
@Data
public class CreatePlanVo extends TenantEntity {
private String contractName;
private String projectName;
private String ioCompany;
}

9
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ioCompanySelectVo.java

@ -0,0 +1,9 @@
package org.dromara.platform.domain.vo;
import lombok.Data;
@Data
public class ioCompanySelectVo {
private String id;
private String companyName;
}

8
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IInspectionPlanInfoService.java

@ -4,9 +4,11 @@ import org.dromara.platform.domain.vo.InspectionPlanInfoVo;
import org.dromara.platform.domain.bo.InspectionPlanInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.platform.domain.vo.ioCompanySelectVo;
import java.util.Collection;
import java.util.List;
import java.util.Set;
/**
* 巡检计划Service接口
@ -67,4 +69,10 @@ public interface IInspectionPlanInfoService {
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
void createPlans(String contractId, String categoryId);
/**
* 获取运维单位名称 (下拉框)
* @return
*/
Set<String> getIoCompanyNames();
}

7
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java

@ -88,4 +88,11 @@ public interface IServiceCatalogCategoryService {
List<AgreementInfoDto> findLeafNodeIds(String rootId);
/**
* 获取服务目录最外层节点
* @return
*/
List<ServiceCatalogSelectVo> queryOutCategoryName();
}

4
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java

@ -1,5 +1,7 @@
package org.dromara.platform.service;
import org.dromara.platform.domain.InspectionPlanInfo;
import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -65,4 +67,6 @@ public interface IWorkOrderInfoService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
List<WorkOrderInfo> createOrders(InspectionPlanInfo inspectionPlanInfo);
}

23
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/InspectionPlanInfoServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.platform.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.MapstructUtils;
@ -11,10 +12,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.platform.domain.AgreementInfo;
import org.dromara.platform.domain.ContractInfo;
import org.dromara.platform.domain.dto.AgreementInfoDto;
import org.dromara.platform.domain.vo.AgreementInfoVo;
import org.dromara.platform.domain.vo.ContractInfoVo;
import org.dromara.platform.domain.vo.ioCompanySelectVo;
import org.dromara.platform.mapper.AgreementInfoMapper;
import org.dromara.platform.mapper.ContractInfoMapper;
import org.dromara.platform.service.IAgreementInfoService;
import org.dromara.platform.service.IContractInfoService;
import org.dromara.platform.service.IServiceCatalogCategoryService;
@ -44,6 +48,9 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService
@Resource
private IContractInfoService contractInfoService;
@Resource
private ContractInfoMapper contractInfoMapper;
@Resource
private IServiceCatalogCategoryService serviceCatalogCategoryService;
@ -166,6 +173,7 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService
String projectName = contractInfoVo.getProjectName();
Date startDate = contractInfoVo.getStartDate();
Date endDate = contractInfoVo.getEndDate();
String partyB = contractInfoVo.getPartyB();
// 初始化待新增的协议信息集合
List<AgreementInfo> agreementInfos = new ArrayList<>();
@ -192,7 +200,7 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService
inspectionPlanInfo.setEndDate(endDate);
inspectionPlanInfo.setDescription(agreementInfo.getServiceContent());
inspectionPlanInfo.setFrequency(agreementInfo.getFrequency());
inspectionPlanInfo.setIoCompany("测试运维单位1");
inspectionPlanInfo.setIoCompany(partyB);
// 0未开始 1进行中 2已完成
inspectionPlanInfo.setStatus(0L);
baseMapper.insert(inspectionPlanInfo);
@ -200,4 +208,17 @@ public class InspectionPlanInfoServiceImpl implements IInspectionPlanInfoService
}
}
@Override
public Set<String> getIoCompanyNames() {
LambdaQueryWrapper<ContractInfo> queryWrapper = new LambdaQueryWrapper<>();
List<ContractInfo> contractInfos = contractInfoMapper.selectList(queryWrapper);
if (CollectionUtil.isNotEmpty(contractInfos)){
Set<String> partyBSet = contractInfos.stream()
.map(item -> item.getPartyB())
.collect(Collectors.toSet());
return partyBSet;
}
return new HashSet<>();
}
}

19
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.platform.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -264,4 +265,22 @@ public class ServiceCatalogCategoryServiceImpl implements IServiceCatalogCategor
List<AgreementInfoDto> leafNodeIds = baseMapper.findLeafNodeIds(rootId);
return leafNodeIds;
}
@Override
public List<ServiceCatalogSelectVo> queryOutCategoryName() {
List<ServiceCatalogSelectVo> selectVoList = new ArrayList<>();
LambdaQueryWrapper<ServiceCatalogCategory> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ServiceCatalogCategory::getIsChildren, false);
queryWrapper.eq(ServiceCatalogCategory::getDescription, "目录");
List<ServiceCatalogCategory> categoryList = this.baseMapper.selectList(queryWrapper);
if (CollectionUtil.isNotEmpty(categoryList)){
categoryList.forEach(category -> {
ServiceCatalogSelectVo selectVo = new ServiceCatalogSelectVo();
selectVo.setId(category.getId());
selectVo.setCategoryName(category.getCategoryName());
selectVoList.add(selectVo);
});
}
return selectVoList;
}
}

32
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

@ -1,5 +1,7 @@
package org.dromara.platform.service.impl;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -8,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.platform.domain.InspectionPlanInfo;
import org.springframework.stereotype.Service;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
@ -15,9 +18,7 @@ import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.platform.mapper.WorkOrderInfoMapper;
import org.dromara.platform.service.IWorkOrderInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
/**
* 工单信息Service业务层处理
@ -27,6 +28,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
private final WorkOrderInfoMapper baseMapper;
@ -143,4 +145,28 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public List<WorkOrderInfo> createOrders(InspectionPlanInfo inspectionPlanInfo) {
Date startDate = inspectionPlanInfo.getStartDate();
Date endDate = inspectionPlanInfo.getEndDate();
long daysBetween = DateUtil.betweenDay(startDate, endDate, false);
// 默认1日1次
List<WorkOrderInfo> workOrderInfos = new ArrayList<>();
for (long i = 0; i < daysBetween; i++) {
WorkOrderInfo workOrderInfo = new WorkOrderInfo();
workOrderInfo.setProjectName(inspectionPlanInfo.getProjectName());
workOrderInfo.setContractName(inspectionPlanInfo.getContractName());
workOrderInfo.setStatus(0L);
workOrderInfo.setScheduleStartDate(DateUtil.offsetDay(startDate, (int) i));
workOrderInfo.setScheduleEndDate(DateUtil.offsetDay(startDate, (int) i));
workOrderInfo.setIoCompany(inspectionPlanInfo.getIoCompany());
workOrderInfo.setInspectionPoint("测试巡检点位");
workOrderInfo.setType("巡检计划");
workOrderInfos.add(workOrderInfo);
log.info("开始日期{} ---> 结束日期{}-->运维单位{}",workOrderInfo.getScheduleStartDate(),workOrderInfo.getScheduleEndDate(),workOrderInfo.getIoCompany());
}
return workOrderInfos;
}
}

Loading…
Cancel
Save