Browse Source

排序调整和 同单单位派遣处理时间延续而非重置

ops-management-platform-backend-dev
gjh 1 week ago
parent
commit
428ab58dc2
  1. 11
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderDelayServiceImpl.java
  2. 84
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

11
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderDelayServiceImpl.java

@ -93,12 +93,10 @@ public class WorkOrderDelayServiceImpl implements IWorkOrderDelayService {
.collect(Collectors.toList());
bo.setContractNames(contractNames);
}
// else if (hasOwnerRole && deptName.equals("鄞州公安")){
// // TODO 鄞州公安
// }else {
// bo.setContractNames(Arrays.asList("其他"));
// }
LambdaQueryWrapper<WorkOrderDelay> lqw = buildQueryWrapper(bo);
// 按照更新时间排序
lqw.orderByDesc(WorkOrderDelay::getUpdateTime);
Page<WorkOrderDelayVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@ -143,8 +141,7 @@ public class WorkOrderDelayServiceImpl implements IWorkOrderDelayService {
lqw.in(CollectionUtil.isNotEmpty(bo.getContractNames()),
WorkOrderDelay::getContractName,
bo.getContractNames());
// 添加按创建时间降序排序
lqw.orderByDesc(WorkOrderDelay::getCreateTime);
return lqw;
}

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

@ -12,6 +12,7 @@ import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -228,7 +229,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
lqw.eq(bo.getStatus() != null, WorkOrderInfo::getStatus, bo.getStatus());
// 添加按创建时间降序排序
lqw.orderByDesc(WorkOrderInfo::getCreateTime);
// lqw.orderByDesc(WorkOrderInfo::getCreateTime);
return lqw;
}
@ -259,7 +260,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
// 设置维护单位
String contractName = bo.getContractName();
String partyB = projectInfoService.getContractPartyBNameByContractName(contractName);
add.setMaintenanceUnit(partyB);
if (partyB != null) {
add.setMaintenanceUnit(partyB);
}
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@ -311,6 +314,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
if(workOrderProcessService.insertByBo(workOrderProcess2)){
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, generatedId)
.set(BaseEntity::getUpdateTime,new Date())
.set(WorkOrderInfo::getStatus, 1);
baseMapper.update(null, updateWrapper);
log.info("修改对应的工单的状态 :待接单"); }
@ -453,12 +457,25 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
}
}
private Boolean hasDispatchHistory(String workOrderId) {
LambdaQueryWrapper<WorkOrderProcess> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(WorkOrderProcess::getWorkOrderId, workOrderId);
queryWrapper.eq(WorkOrderProcess::getStage, "故障派遣");
// 按照时间降序排,最新的记录在最前面
queryWrapper.orderByDesc(WorkOrderProcess::getCreateTime);
// 表示之前存在派遣
List<WorkOrderProcess> workOrderDispatchList = workOrderProcessMapper.selectList(queryWrapper);
if (workOrderDispatchList.size() > 0){
return true;
}else{
return false;
}
}
@Override
public TableDataInfo<WorkOrderInfoVo> dealWithList(WorkOrderInfoBo bo, PageQuery pageQuery) {
LoginUser loginUser = LoginHelper.getLoginUser();
String username = loginUser.getUsername();
//TODO 优化:查询而不是过滤
// 如果是运维角色则增加所属部门作为查询条件
List<RoleDTO> roles = loginUser.getRoles();
boolean hasUnitRole = roles.stream().anyMatch(role -> "运维人员".equals(role.getRoleName()));
if (hasUnitRole){
@ -467,6 +484,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
LambdaQueryWrapper<WorkOrderInfo> lqw = buildQueryWrapper(bo);
// 设置工单状态:1:待接单 2:处理中 7:处理中(已延期)
lqw.in(WorkOrderInfo::getStatus, Arrays.asList(1, 2, 7,9,10));
// 按照更新时间排序
lqw.orderByDesc(WorkOrderInfo::getUpdateTime);
Page<WorkOrderInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<WorkOrderInfoVo> records = result.getRecords();
@ -478,7 +497,13 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
queryWrapper.eq(WorkOrderProcess::getWorkOrderId, workOrderId);
queryWrapper.eq(WorkOrderProcess::getStage, "故障接单");
// 按照时间降序排,最新的记录在最前面
queryWrapper.orderByDesc(WorkOrderProcess::getCreateTime);
Boolean flag = hasDispatchHistory(workOrderId);
if (flag){
queryWrapper.orderByAsc(WorkOrderProcess::getCreateTime);
}else {
queryWrapper.orderByDesc(WorkOrderProcess::getCreateTime);
}
queryWrapper.last("LIMIT 1");
WorkOrderProcess target = workOrderProcessMapper.selectOne(queryWrapper);
@ -642,19 +667,18 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
// 提前判断是否有 "监理" 和 "业主" 角色
boolean hasSupervisorRole = roles.stream().anyMatch(role -> "监理".equals(role.getRoleName()));
boolean hasOwnerRole = roles.stream().anyMatch(role -> "业主".equals(role.getRoleName()));
if (hasOwnerRole){
/* if (hasOwnerRole){
// 通过合同甲方获取对应的合同乙方(运维单位)
if (deptName.equals("江北公安")){
List<String> partyBList = Arrays.asList("电信", "移动","盈力");
bo.setMaintenanceUnits(partyBList);
}else if (deptName.equals("鄞州公安")){
List<String> partyBList = Arrays.asList("时代");
bo.setMaintenanceUnits(partyBList);
}
}
}*/
LambdaQueryWrapper<WorkOrderInfo> lqw = buildQueryWrapper(bo);
lqw.in(WorkOrderInfo::getStatus, Arrays.asList(4, 5));
// 按照更新时间排序
lqw.orderByDesc(WorkOrderInfo::getUpdateTime);
if (hasSupervisorRole){
//监理初审(暂定后续可配)
@ -728,8 +752,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
//reviewResult
if (flag){
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
// 设置处理人信息
updateWrapper
.eq(WorkOrderInfo::getId, workOrderId)// 设置状态更新信息
.set(WorkOrderInfo::getStatus, 4)
.set(WorkOrderInfo::getHandleTime,date2)
.set(WorkOrderInfo::getHandler,loginUser.getNickname())
@ -1047,14 +1071,15 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
Date beforeDelayTime = DateUtils.addHours(operationTime, responseTime.intValue());
WorkOrderDelayBo delayBo = new WorkOrderDelayBo();
// 延期审核的id 设置为工单的id 关联
delayBo.setId(bo.getId());
delayBo.setBeforeDelayTime(beforeDelayTime);
delayBo.setAfterDelayTime(bo.getDelayTime());
/* delayBo.setId(bo.getId());
delayBo.setProjectName(bo.getProjectName());
delayBo.setContractName(bo.getContractName());
delayBo.setStatus(bo.getStatus());
delayBo.setHandler(bo.getRepairer());*/
BeanUtil.copyProperties(bo, delayBo);
delayBo.setDelayReason(delayDescription);
delayBo.setHandler(bo.getRepairer());
delayBo.setBeforeDelayTime(beforeDelayTime);
delayBo.setAfterDelayTime(bo.getDelayTime());
delayBo.setHandleResult("待处理");
delayBo.setApprover(loginUser.getNickname());
delayBo.setAttachment(serializedAttachment);
@ -1208,22 +1233,14 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
log.info("用户昵称:{}-->角色{}-->部门:{}",loginUser.getNickname(),loginUser.getRoles(),loginUser.getDeptName());
// 获取用户角色列表
List<RoleDTO> roles = loginUser.getRoles();
// 业主只能看到自己负责的工单
boolean hasOwnerRole = roles.stream().anyMatch(role -> "业主".equals(role.getRoleName()));
if (hasOwnerRole){
// 通过合同甲方获取对应的合同乙方(运维单位)
if (deptName.equals("江北公安")){
List<String> partyBList = Arrays.asList("电信", "移动","盈力");
bo.setMaintenanceUnits(partyBList);
}else if (deptName.equals("鄞州公安")){
List<String> partyBList = Arrays.asList("时代");
bo.setMaintenanceUnits(partyBList);
}
}
// 业主只能看到自己负责的工单(因为租户隔离这里不用再过滤了)
LambdaQueryWrapper<WorkOrderInfo> lqw = buildQueryWrapper(bo);
//status 0 待派遣 3 运维单位处理时回退至派遣
lqw.in(WorkOrderInfo::getStatus, Arrays.asList(0, 3));
// 按照更新时间排序
lqw.orderByDesc(WorkOrderInfo::getUpdateTime);
Page<WorkOrderInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@ -1276,7 +1293,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
//待接单(派遣)
.set(WorkOrderInfo::getStatus, 9);
.set(WorkOrderInfo::getStatus, 9)
.set(BaseEntity::getUpdateTime,new Date());
baseMapper.update(null, updateWrapper);
log.info("已派遣至运维单位!");
}
@ -1313,7 +1331,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
if (flag) {
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
.set(WorkOrderInfo::getStatus, 8);
.set(WorkOrderInfo::getStatus, 8)
.set(BaseEntity::getUpdateTime,new Date());
baseMapper.update(null, updateWrapper);
log.info("作废!");
}
@ -1352,7 +1371,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
//待接单(转派)
.set(WorkOrderInfo::getStatus,10)
.set(WorkOrderInfo::getMaintenanceUnit, bo.getMaintenanceUnit());
.set(WorkOrderInfo::getMaintenanceUnit, bo.getMaintenanceUnit())
.set(BaseEntity::getUpdateTime,new Date());
baseMapper.update(null, updateWrapper);
log.info("事件转派!");
}

Loading…
Cancel
Save