Merge remote-tracking branch 'origin/master'

master
liuqingkun 1 year ago
commit 203646760e
  1. 26
      src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java
  2. 2
      src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.java
  3. 16
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenancePersonnel.java
  4. 14
      src/main/java/org/springblade/modules/business/pojo/vo/SearchMaintenancePersonnelVO.java
  5. 2
      src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java
  6. 18
      src/main/java/org/springblade/modules/business/service/IWorkOrderService.java
  7. 3
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java
  8. 49
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java
  9. 2
      src/main/java/org/springblade/modules/system/controller/DeptController.java

@ -9,11 +9,13 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePersonnel;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrder;
import org.springblade.modules.business.pojo.vo.MaintenanceTaskVO;
import org.springblade.modules.business.pojo.vo.PieStatVO;
import org.springblade.modules.business.pojo.vo.SearchMaintenancePersonnelVO;
import org.springblade.modules.business.service.IDeviceService;
import org.springblade.modules.business.service.IMaintenancePlanService;
import org.springblade.modules.business.service.IMaintenanceTaskService;
@ -296,6 +298,30 @@ public class WorkBenchesController extends BladeController {
return R.data(map);
}
/**
* 查询维修班组中维修人员的接单数量和满意度
*
* @param
* @return
*/
@GetMapping("/maintenancePersonnel")
public R<Map<String, Object>> searchMaintenancePersonnel(@RequestParam Long id) {
List<MaintenancePersonnel> list = workOrderService.searchMaintenancePersonnel(id);
Map<String, Object> map = new HashMap<>();
List<String> xData = new ArrayList<>();
List<Long> count = new ArrayList<>();
List<Double> ratio = new ArrayList<>();
for (MaintenancePersonnel maintenancePersonnel : list) {
xData.add(maintenancePersonnel.getName());
count.add(maintenancePersonnel.getCount());
ratio.add(maintenancePersonnel.getRatio());
}
map.put("xData", xData);
map.put("repairNum", count);
map.put("percent", ratio);
return R.data(map);
}
public static Date getMonthStartAsDate(LocalDate date) {
LocalDate startOfMonth = date.with(TemporalAdjusters.firstDayOfMonth());
return Date.from(startOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());

@ -39,4 +39,6 @@ public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
List<WorkOrderExcel> exportWorkOrder(@Param("ew") Wrapper<WorkOrder> queryWrapper);
List<PieStatVO> selectDeptCount(String startTime, String endTime);
}

@ -0,0 +1,16 @@
package org.springblade.modules.business.pojo.entity.maintenance;
import lombok.Data;
@Data
public class MaintenancePersonnel {
//维修人员名称
private String name;
//接单数量
private Long count;
//满意度
private double ratio;
}

@ -0,0 +1,14 @@
package org.springblade.modules.business.pojo.vo;
import lombok.Data;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePersonnel;
import java.util.List;
@Data
public class SearchMaintenancePersonnelVO {
private List<MaintenancePersonnel> maintenancePersonnelList;
}

@ -3,8 +3,10 @@ package org.springblade.modules.business.service;
import cn.hutool.core.io.resource.InputStreamResource;
import jakarta.servlet.http.HttpServletResponse;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.vo.MaintenanceTaskVO;
import org.springblade.modules.business.pojo.vo.SearchMaintenancePersonnelVO;
import org.springframework.http.ResponseEntity;
import java.io.IOException;

@ -1,6 +1,7 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePersonnel;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrder;
import org.springblade.modules.business.pojo.vo.PieStatVO;
import org.springblade.modules.business.pojo.vo.workorder.WorkOrderVO;
@ -74,18 +75,11 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
List<PieStatVO> selectDeptCount(String startTime, String endTime);
/**
* 维修人员提交维修方案
*/
void repairPlanSubmit(WorkOrder workOrder);
public List<MaintenancePersonnel> searchMaintenancePersonnel(Long id);
/**
* 运维主管审批拒绝维修方案
*/
void repairPlanRefuse(WorkOrder workOrder);
public void repairFinish(WorkOrder workOrder);
/**
* 客户确认维修完成
*/
void repairFinish(WorkOrder workOrder);
public void repairPlanRefuse(WorkOrder workOrder);
public void repairPlanSubmit(WorkOrder workOrder);
}

@ -10,9 +10,11 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.excel.MaintenanceTaskDetailExcel;
import org.springblade.modules.business.pojo.vo.MaintenanceTaskDetailVO;
import org.springblade.modules.business.pojo.vo.MaintenanceTaskVO;
import org.springblade.modules.business.pojo.vo.SearchMaintenancePersonnelVO;
import org.springblade.modules.business.service.IMaintenanceTaskService;
import org.springblade.modules.business.mapper.MaintenanceTaskMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
@ -139,4 +141,5 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
}
}

@ -1,6 +1,8 @@
package org.springblade.modules.business.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import lombok.Synchronized;
@ -12,24 +14,30 @@ import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.modules.business.enums.WorkOrderStatusEnum;
import org.springblade.modules.business.mapper.WorkOrderMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePersonnel;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrder;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderAttach;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderRepairMaterial;
import org.springblade.modules.business.pojo.vo.PieStatVO;
import org.springblade.modules.business.pojo.vo.SearchMaintenancePersonnelVO;
import org.springblade.modules.business.pojo.vo.workorder.WorkOrderVO;
import org.springblade.modules.business.service.*;
import org.springblade.modules.system.pojo.entity.Dept;
import org.springblade.modules.system.pojo.entity.User;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@ -55,6 +63,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IWorkOrderApprovalService approvalService;
private final IDeptService deptService;
private final IDeviceService deviceService;
private final IWorkOrderFlowService flowService;
@ -349,4 +359,43 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
}
@Override
public List<MaintenancePersonnel> searchMaintenancePersonnel(Long id) {
User maintenanceSupervisor = userService.getById(id);
String deptId = maintenanceSupervisor.getDeptId();
List<Dept> deptChild = deptService.getDeptChild(Long.parseLong(deptId));
Dept requiredDept = new Dept();
for (Dept dept : deptChild) {
if (dept.getDeptCategory() == 4) {
requiredDept = dept;
break;
}
}
List<User> maintenancePersonnelList = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getDeptId, requiredDept.getId()));
List<MaintenancePersonnel> list = new ArrayList<>();
for (User user : maintenancePersonnelList) {
MaintenancePersonnel maintenancePersonnel = new MaintenancePersonnel();
maintenancePersonnel.setName(user.getName());
Long count = this.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getRepairPerson, user.getId()));
maintenancePersonnel.setCount(count);
List<WorkOrder> workOrderList = this.list(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getRepairPerson, user.getId()));
int flag = 0;
for (WorkOrder workOrder : workOrderList) {
if (workOrder.getIsOkSecure() == 1) {
flag++;
}
if (workOrder.getIsOkValidity() == 1) {
flag++;
}
if (workOrder.getIsOkQuality() == 1) {
flag++;
}
}
Integer ratio = flag * 100 / (workOrderList.size() * 3);
maintenancePersonnel.setRatio(ratio);
list.add(maintenancePersonnel);
}
return list;
}
}

@ -71,7 +71,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@NonDS
@RestController
@AllArgsConstructor
@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/dept")
@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "")
@Tag(name = "部门", description = "部门")
public class DeptController extends BladeController {

Loading…
Cancel
Save