|
|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|