Compare commits

..

No commits in common. '3d22d94f396f192da60a1ae73786d7d9cfc60ab2' and '3c9b701f760a4a7b1f3ab51d3a8a7476cc7915b7' have entirely different histories.

  1. 917
      src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java
  2. 3
      src/main/java/org/springblade/modules/business/pojo/entity/MaintenanceTaskDetailGoods.java
  3. 3
      src/main/java/org/springblade/modules/business/pojo/entity/Message.java
  4. 2
      src/main/java/org/springblade/modules/business/service/IMessageService.java
  5. 7
      src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java
  6. 12
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java

@ -22,13 +22,10 @@ import org.springblade.modules.business.pojo.dto.workorder.WorkOrderDTO;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrder; 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.WorkOrderApproval;
import org.springblade.modules.business.pojo.vo.workorder.WorkOrderVO; import org.springblade.modules.business.pojo.vo.workorder.WorkOrderVO;
import org.springblade.modules.business.service.IMessageService;
import org.springblade.modules.business.service.IWorkOrderApprovalService; import org.springblade.modules.business.service.IWorkOrderApprovalService;
import org.springblade.modules.business.service.IWorkOrderFlowService; import org.springblade.modules.business.service.IWorkOrderFlowService;
import org.springblade.modules.business.service.IWorkOrderService; import org.springblade.modules.business.service.IWorkOrderService;
import org.springblade.modules.system.pojo.entity.Dept; import org.springblade.modules.system.pojo.entity.Dept;
import org.springblade.modules.system.pojo.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.BufferedReader; import java.io.BufferedReader;
@ -53,467 +50,455 @@ import java.util.Map;
@RequestMapping(CommonConstant.APPLICATION_PROJECT + "/work-order") @RequestMapping(CommonConstant.APPLICATION_PROJECT + "/work-order")
public class WorkOrderController extends BladeController { public class WorkOrderController extends BladeController {
private final IWorkOrderService workOrderService; private final IWorkOrderService workOrderService;
private final IWorkOrderApprovalService approvalService; private final IWorkOrderApprovalService approvalService;
private final IWorkOrderFlowService flowService; private final IWorkOrderFlowService flowService;
private final IUserService userService; /**
* 查询工作订单列表
private final IMessageService messageService; *
* @param workOrderDTO 工作订单DTO包含查询条件
* @param query 分页查询对象
/** * @return 返回工作订单列表的响应对象
* 查询工作订单列表 */
* @GetMapping("/page")
* @param workOrderDTO 工作订单DTO包含查询条件 public R<IPage<WorkOrder>> page(WorkOrderDTO workOrderDTO, Query query) {
* @param query 分页查询对象 // 创建工作订单的查询条件包装器
* @return 返回工作订单列表的响应对象 LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery(WorkOrder.class);
*/
@GetMapping("/page") // 数据权限
public R<IPage<WorkOrder>> page(WorkOrderDTO workOrderDTO, Query query) { if (StringUtils.isNotBlank(workOrderDTO.getDataType())) {
// 创建工作订单的查询条件包装器 switch (workOrderDTO.getDataType()) {
LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery(WorkOrder.class); case "1":
// 客户
// 数据权限 wrapper.and(wrp -> wrp.eq(WorkOrder::getCreateUser, AuthUtil.getUserId()).or().eq(WorkOrder::getReportUnit, AuthUtil.getDeptId()));
if (StringUtils.isNotBlank(workOrderDTO.getDataType())) { break;
switch (workOrderDTO.getDataType()) { case "2":
case "1": // 客服
// 客户 // eq.in(WorkOrder::getCreateDept, Func.toLongList(AuthUtil.getDeptId()));
wrapper.and(wrp -> wrp.eq(WorkOrder::getCreateUser, AuthUtil.getUserId()).or().eq(WorkOrder::getReportUnit, AuthUtil.getDeptId())); wrapper.ne(WorkOrder::getStatus, WorkOrderStatusEnum.KH_ORDER_DRAFT.getValue());
break; break;
case "2": case "3":
// 客服 // 维修负责人
// eq.in(WorkOrder::getCreateDept, Func.toLongList(AuthUtil.getDeptId())); wrapper.ge(WorkOrder::getStatus, WorkOrderStatusEnum.WX_ORDER_ACCEPT.getValue());
wrapper.ne(WorkOrder::getStatus, WorkOrderStatusEnum.KH_ORDER_DRAFT.getValue()); break;
break; case "4":
case "3": // 维修人员
// 维修负责人 wrapper.eq(WorkOrder::getRepairPerson, AuthUtil.getUserId());
wrapper.ge(WorkOrder::getStatus, WorkOrderStatusEnum.WX_ORDER_ACCEPT.getValue()); break;
break; default:
case "4": log.error("数据权限设置失败");
// 维修人员 return R.fail("数据权限设置失败");
wrapper.eq(WorkOrder::getRepairPerson, AuthUtil.getUserId()); }
break; }
default:
log.error("数据权限设置失败"); // 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序
return R.fail("数据权限设置失败"); wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation());
} wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType());
} if (StringUtils.isNotBlank(workOrderDTO.getStatusSearch())) {
wrapper.in(WorkOrder::getStatus, workOrderDTO.getStatusSearch().split(","));
// 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序 }
wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation()); wrapper.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode());
wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType()); wrapper.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime());
if (StringUtils.isNotBlank(workOrderDTO.getStatusSearch())) { wrapper.orderByDesc(WorkOrder::getCreateTime);
wrapper.in(WorkOrder::getStatus, workOrderDTO.getStatusSearch().split(","));
} // 执行分页查询
wrapper.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode()); IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), wrapper);
wrapper.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime());
wrapper.orderByDesc(WorkOrder::getCreateTime);
pages.getRecords().forEach(order -> {
// 执行分页查询 Dept dept = DeptCache.getDept(order.getReportUnit());
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), wrapper); if (Func.isNotEmpty(dept)) {
order.setReportUnitName(dept.getDeptName());
}
pages.getRecords().forEach(order -> { });
Dept dept = DeptCache.getDept(order.getReportUnit());
if (Func.isNotEmpty(dept)) { // 返回查询结果
order.setReportUnitName(dept.getDeptName()); return R.data(pages);
} }
});
/**
// 返回查询结果 * 客服查询自己提报的订单列表
return R.data(pages); *
} * @param workOrderDTO 工作订单DTO包含查询条件
* @param query 分页查询对象
/** * @return 返回工作订单列表的响应对象
* 客服查询自己提报的订单列表 */
* @GetMapping("/service-page")
* @param workOrderDTO 工作订单DTO包含查询条件 public R<IPage<WorkOrder>> servicePage(WorkOrderDTO workOrderDTO, Query query) {
* @param query 分页查询对象 // 创建工作订单的查询条件包装器
* @return 返回工作订单列表的响应对象 LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery(WorkOrder.class);
*/ wrapper.eq(WorkOrder::getCreateUser, AuthUtil.getUserId());
@GetMapping("/service-page") // 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序
public R<IPage<WorkOrder>> servicePage(WorkOrderDTO workOrderDTO, Query query) { wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation());
// 创建工作订单的查询条件包装器 wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType());
LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery(WorkOrder.class); if (StringUtils.isNotBlank(workOrderDTO.getStatusSearch())) {
wrapper.eq(WorkOrder::getCreateUser, AuthUtil.getUserId()); wrapper.in(WorkOrder::getStatus, workOrderDTO.getStatusSearch().split(","));
// 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序 }
wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation()); wrapper.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode());
wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType()); wrapper.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime());
if (StringUtils.isNotBlank(workOrderDTO.getStatusSearch())) { wrapper.orderByDesc(WorkOrder::getCreateTime);
wrapper.in(WorkOrder::getStatus, workOrderDTO.getStatusSearch().split(","));
} // 执行分页查询
wrapper.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode()); IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), wrapper);
wrapper.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime());
wrapper.orderByDesc(WorkOrder::getCreateTime); pages.getRecords().forEach(order -> {
Dept dept = DeptCache.getDept(order.getReportUnit());
// 执行分页查询 if (Func.isNotEmpty(dept)) {
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), wrapper); order.setReportUnitName(dept.getDeptName());
}
pages.getRecords().forEach(order -> { });
Dept dept = DeptCache.getDept(order.getReportUnit());
if (Func.isNotEmpty(dept)) { // 返回查询结果
order.setReportUnitName(dept.getDeptName()); return R.data(pages);
} }
});
/**
// 返回查询结果 * 工单表 详情
return R.data(pages); */
} @GetMapping("/detail")
public R<WorkOrderVO> detail(WorkOrder workOrder) {
/** WorkOrderVO detail = workOrderService.detail(workOrder);
* 工单表 详情 return R.data(detail);
*/ }
@GetMapping("/detail")
public R<WorkOrderVO> detail(WorkOrder workOrder) { /**
WorkOrderVO detail = workOrderService.detail(workOrder); * 保存工单并提交
return R.data(detail); */
} @ApiLog(value = "提报管理-保存工单并提交")
@PostMapping("/customer-save")
/** public R customerSave(@RequestBody List<WorkOrderVO> workOrder) {
* 保存工单并提交 return R.status(workOrderService.saveAndSubmit(workOrder));
*/ }
@ApiLog(value = "提报管理-保存工单并提交")
@PostMapping("/customer-save") /**
public R customerSave(@RequestBody List<WorkOrderVO> workOrder) { * 保存工单为草稿
return R.status(workOrderService.saveAndSubmit(workOrder)); */
} @ApiLog(value = "提报管理-保存工单为草稿")
@PostMapping("/customer-draft")
/** public R customerDraft(@RequestBody List<WorkOrderVO> workOrder) {
* 保存工单为草稿 return R.status(workOrderService.saveDraft(workOrder));
*/ }
@ApiLog(value = "提报管理-保存工单为草稿")
@PostMapping("/customer-draft") /**
public R customerDraft(@RequestBody List<WorkOrderVO> workOrder) { * 客服保存工单并提交
return R.status(workOrderService.saveDraft(workOrder)); */
} @ApiLog(value = "提报管理-客服保存工单并提交")
@PostMapping("/service-save")
/** public R serviceSave(@RequestBody List<WorkOrderVO> workOrder) {
* 客服保存工单并提交 return R.status(workOrderService.serviceSaveAndSubmit(workOrder));
*/ }
@ApiLog(value = "提报管理-客服保存工单并提交")
@PostMapping("/service-save") /**
public R serviceSave(@RequestBody List<WorkOrderVO> workOrder) { * 客服工单为草稿
return R.status(workOrderService.serviceSaveAndSubmit(workOrder)); */
} @ApiLog(value = "提报管理-客服工单为草稿")
@PostMapping("/service-draft")
/** public R serviceDraft(@RequestBody List<WorkOrderVO> workOrder) {
* 客服工单为草稿 return R.status(workOrderService.serviceSave(workOrder));
*/ }
@ApiLog(value = "提报管理-客服工单为草稿")
@PostMapping("/service-draft") /**
public R serviceDraft(@RequestBody List<WorkOrderVO> workOrder) { * 修改工单信息
return R.status(workOrderService.serviceSave(workOrder)); */
} @ApiLog(value = "提报管理-修改工单信息")
@PostMapping("/update")
/** public R update(@RequestBody WorkOrderVO workOrder) {
* 修改工单信息 return R.status(workOrderService.updateAttach(workOrder));
*/ }
@ApiLog(value = "提报管理-修改工单信息")
@PostMapping("/update") /**
public R update(@RequestBody WorkOrderVO workOrder) { * 客服审核指定维修人员
return R.status(workOrderService.updateAttach(workOrder)); */
} @ApiLog(value = "提报管理-客服审核指定维修人员")
@PostMapping("/service-to-serviceman")
/** public R serviceToServiceman(@RequestBody WorkOrder workOrder) {
* 客服审核指定维修人员 WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
*/ workOrderOld.setRepairPerson(workOrder.getRepairPerson());
@ApiLog(value = "提报管理-客服审核指定维修人员") workOrderOld.setDispatchTime(DateUtil.now());
@PostMapping("/service-to-serviceman") workOrderOld.setPlanCompleteTime(workOrder.getPlanCompleteTime());
public R serviceToServiceman(@RequestBody WorkOrder workOrder) { workOrderOld.setRemark(workOrder.getRemark());
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); workOrderOld.setCustomerOpinion(workOrder.getCustomerOpinion());
workOrderOld.setRepairPerson(workOrder.getRepairPerson()); workOrderOld.setStatus(WorkOrderStatusEnum.KF_ORDER_ALLOT.getValue());
workOrderOld.setDispatchTime(DateUtil.now()); workOrderService.updateById(workOrderOld);
workOrderOld.setPlanCompleteTime(workOrder.getPlanCompleteTime()); // todo 审核通过
workOrderOld.setRemark(workOrder.getRemark());
workOrderOld.setCustomerOpinion(workOrder.getCustomerOpinion()); return R.success("");
workOrderOld.setStatus(WorkOrderStatusEnum.KF_ORDER_ALLOT.getValue()); }
workOrderService.updateById(workOrderOld);
User repairPerson = userService.getById(workOrder.getRepairPerson()); /**
messageService.saveMessage(workOrder.getRequirementCode(), "您已接收新的维修单,请尽快处理", repairPerson.getId(), 2); * 维修人员接收工单
// todo 审核通过 */
@ApiLog(value = "提报管理-维修人员接收工单")
return R.success(""); @PostMapping("/serviceman-receive")
} public R serviceReceive(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
/** workOrderOld.setReceiveOrderTime(DateUtil.now());
* 维修人员接收工单 workOrderOld.setStatus(WorkOrderStatusEnum.WX_ORDER_ACCEPT.getValue());
*/ workOrderService.updateById(workOrderOld);
@ApiLog(value = "提报管理-维修人员接收工单")
@PostMapping("/serviceman-receive") // todo 审核通过
public R serviceReceive(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); return R.success("");
workOrderOld.setReceiveOrderTime(DateUtil.now()); }
workOrderOld.setStatus(WorkOrderStatusEnum.WX_ORDER_ACCEPT.getValue());
workOrderService.updateById(workOrderOld); /**
* 维修人员拒绝接收工单
// todo 审核通过 */
@ApiLog(value = "提报管理-维修人员拒绝接收工单")
return R.success(""); @PostMapping("/serviceman-reject")
} public R serviceReject(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
/** workOrderOld.setRepaiRejectReason(workOrder.getRepaiRejectReason());
* 维修人员拒绝接收工单 workOrderOld.setStatus(WorkOrderStatusEnum.WX_ORDER_REFUSE.getValue());
*/ workOrderService.updateById(workOrderOld);
@ApiLog(value = "提报管理-维修人员拒绝接收工单")
@PostMapping("/serviceman-reject") WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getRepaiRejectReason());
public R serviceReject(@RequestBody WorkOrder workOrder) { approvalService.save(approval);
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); // todo 审核拒绝
workOrderOld.setRepaiRejectReason(workOrder.getRepaiRejectReason());
workOrderOld.setStatus(WorkOrderStatusEnum.WX_ORDER_REFUSE.getValue()); return R.success("");
workOrderService.updateById(workOrderOld); }
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getRepaiRejectReason()); /**
approvalService.save(approval); * 维修人员提交维修方案
// todo 审核拒绝 */
@ApiLog(value = "提报管理-维修人员提交维修方案")
return R.success(""); @PostMapping("/serviceman-submit")
} public R serviceSubmit(@RequestBody WorkOrder workOrder) {
workOrderService.repairPlanSubmit(workOrder);
/**
* 维修人员提交维修方案 return R.success("");
*/ }
@ApiLog(value = "提报管理-维修人员提交维修方案")
@PostMapping("/serviceman-submit") /**
public R serviceSubmit(@RequestBody WorkOrder workOrder) { * 主管确认维修方案
workOrderService.repairPlanSubmit(workOrder); */
@ApiLog(value = "提报管理-主管确认维修方案")
return R.success(""); @PostMapping("/supervisor-confirm")
} public R supervisorConfirm(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
/** workOrderOld.setApprovePoint("主管审批维修方案");
* 主管确认维修方案 workOrderOld.setApprovePerson(workOrder.getApprovePerson());
*/ workOrderOld.setApproveResult(workOrder.getApproveResult());
@ApiLog(value = "提报管理-主管确认维修方案") workOrderOld.setApproveTime(workOrder.getApproveTime());
@PostMapping("/supervisor-confirm") workOrderOld.setApproveRemark(workOrder.getApproveRemark());
public R supervisorConfirm(@RequestBody WorkOrder workOrder) { workOrderOld.setStatus(WorkOrderStatusEnum.ZG_REPAIR_PLAN_PASS.getValue());
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); workOrderService.updateById(workOrderOld);
workOrderOld.setApprovePoint("主管审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson()); WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark());
workOrderOld.setApproveResult(workOrder.getApproveResult()); approvalService.save(approval);
workOrderOld.setApproveTime(workOrder.getApproveTime());
workOrderOld.setApproveRemark(workOrder.getApproveRemark()); return R.success("");
workOrderOld.setStatus(WorkOrderStatusEnum.ZG_REPAIR_PLAN_PASS.getValue()); }
workOrderService.updateById(workOrderOld);
/**
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark()); * 主管驳回维修方案
approvalService.save(approval); */
messageService.saveMessage(workOrder.getRequirementCode(), "维修方案已提交,请确认", workOrder.getInformant(), 2); @ApiLog(value = "提报管理-主管驳回维修方案")
return R.success(""); @PostMapping("/supervisor-reject")
} public R supervisorReject(@RequestBody WorkOrder workOrder) {
workOrderService.repairPlanRefuse(workOrder);
/**
* 主管驳回维修方案 return R.success("");
*/ }
@ApiLog(value = "提报管理-主管驳回维修方案")
@PostMapping("/supervisor-reject") /**
public R supervisorReject(@RequestBody WorkOrder workOrder) { * 客户确认维修方案
workOrderService.repairPlanRefuse(workOrder); */
@ApiLog(value = "提报管理-客户确认维修方案")
return R.success(""); @PostMapping("/customer-confirm")
} public R customerConfirm(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
/** workOrderOld.setApprovePoint("客户审批维修方案");
* 客户确认维修方案 workOrderOld.setApprovePerson(workOrder.getApprovePerson());
*/ workOrderOld.setApproveResult(workOrder.getApproveResult());
@ApiLog(value = "提报管理-客户确认维修方案") workOrderOld.setApproveTime(workOrder.getApproveTime());
@PostMapping("/customer-confirm") workOrderOld.setApproveRemark(workOrder.getApproveRemark());
public R customerConfirm(@RequestBody WorkOrder workOrder) { workOrderOld.setStatus(WorkOrderStatusEnum.KH_REPAIR_PLAN_PASS.getValue());
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); workOrderService.updateById(workOrderOld);
workOrderOld.setApprovePoint("客户审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson()); WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark());
workOrderOld.setApproveResult(workOrder.getApproveResult()); approvalService.save(approval);
workOrderOld.setApproveTime(workOrder.getApproveTime());
workOrderOld.setApproveRemark(workOrder.getApproveRemark()); // todo 审核通过
workOrderOld.setStatus(WorkOrderStatusEnum.KH_REPAIR_PLAN_PASS.getValue());
workOrderService.updateById(workOrderOld); return R.success("");
}
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval); /**
messageService.saveMessage(workOrder.getRequirementCode(), "维修方案已通过,请尽快维修", workOrder.getRepairPerson(), 2); * 客户驳回维修方案
// todo 审核通过 */
@ApiLog(value = "提报管理-客户驳回维修方案")
return R.success(""); @PostMapping("/customer-reject")
} public R customerReject(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
/** workOrderOld.setApprovePoint("客户审批维修方案");
* 客户驳回维修方案 workOrderOld.setApprovePerson(workOrder.getApprovePerson());
*/ workOrderOld.setApproveResult(workOrder.getApproveResult());
@ApiLog(value = "提报管理-客户驳回维修方案") workOrderOld.setApproveTime(workOrder.getApproveTime());
@PostMapping("/customer-reject") workOrderOld.setApproveRemark(workOrder.getApproveRemark());
public R customerReject(@RequestBody WorkOrder workOrder) { workOrderOld.setStatus(WorkOrderStatusEnum.KH_REPAIR_PLAN_REFUSE.getValue());
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); workOrderService.updateById(workOrderOld);
workOrderOld.setApprovePoint("客户审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson()); WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark());
workOrderOld.setApproveResult(workOrder.getApproveResult()); approvalService.save(approval);
workOrderOld.setApproveTime(workOrder.getApproveTime()); // todo 审核通过
workOrderOld.setApproveRemark(workOrder.getApproveRemark());
workOrderOld.setStatus(WorkOrderStatusEnum.KH_REPAIR_PLAN_REFUSE.getValue()); return R.success("");
workOrderService.updateById(workOrderOld); }
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark()); /**
approvalService.save(approval); * 维修人员提交维修结果
String role = "1839537055389515777"; */
User user = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, role)); @ApiLog(value = "提报管理-维修人员提交维修结果")
messageService.saveMessage(workOrder.getRequirementCode(), "审批方案已驳回,请重新修改", user.getId(), 2); @PostMapping("/serviceman-repair-submit")
// todo 审核通过 public R servicemanRepairSubmit(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
return R.success(""); workOrderOld.setCloseReason(workOrder.getCloseReason());
} workOrderOld.setStatus(WorkOrderStatusEnum.WX_REPAIR_FINISH.getValue());
workOrderService.updateById(workOrderOld);
/**
* 维修人员提交维修结果 // todo 审核通过
*/
@ApiLog(value = "提报管理-维修人员提交维修结果") return R.success("");
@PostMapping("/serviceman-repair-submit") }
public R servicemanRepairSubmit(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); /**
workOrderOld.setCloseReason(workOrder.getCloseReason()); * 评价签字
workOrderOld.setStatus(WorkOrderStatusEnum.WX_REPAIR_FINISH.getValue()); */
workOrderService.updateById(workOrderOld); @ApiLog(value = "提报管理-评价签字")
messageService.saveMessage(workOrder.getRequirementCode(), "维修已完成,请确认是否解决", workOrder.getInformant(), 2); @PostMapping("/customer-repair-confirm")
public R customerRepairConfirm(@RequestBody WorkOrder workOrder) {
// todo 审核通过 workOrderService.repairFinish(workOrder);
return R.success(""); return R.success("");
} }
/** /**
* 评价签字 * 评价签字
*/ */
@ApiLog(value = "提报管理-评价签字") @ApiLog(value = "提报管理-客户确认未完成")
@PostMapping("/customer-repair-confirm") @PostMapping("/customer-repair-reject")
public R customerRepairConfirm(@RequestBody WorkOrder workOrder) { public R customerRepairReject(@RequestBody WorkOrder workOrder) {
workOrderService.repairFinish(workOrder); WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("客户审批维修结果");
return R.success(""); workOrderOld.setApprovePerson(workOrder.getApprovePerson());
} workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setApproveTime(workOrder.getApproveTime());
/** workOrderOld.setApproveRemark(workOrder.getApproveRemark());
* 评价签字 workOrderOld.setStatus(WorkOrderStatusEnum.KH_REPAIR_PLAN_PASS.getValue());
*/ workOrderService.updateById(workOrderOld);
@ApiLog(value = "提报管理-客户确认未完成")
@PostMapping("/customer-repair-reject") WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark());
public R customerRepairReject(@RequestBody WorkOrder workOrder) { approvalService.save(approval);
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("客户审批维修结果"); // todo 审核通过
workOrderOld.setApprovePerson(workOrder.getApprovePerson());
workOrderOld.setApproveResult(workOrder.getApproveResult()); return R.success("");
workOrderOld.setApproveTime(workOrder.getApproveTime()); }
workOrderOld.setApproveRemark(workOrder.getApproveRemark());
workOrderOld.setStatus(WorkOrderStatusEnum.KH_REPAIR_PLAN_PASS.getValue()); /**
workOrderService.updateById(workOrderOld); * 工单表 客服维修完成
*/
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark()); @ApiLog(value = "提报管理-客服维修完成")
approvalService.save(approval); @PostMapping("/service-repair-submit")
messageService.saveMessage(workOrder.getRequirementCode(), "客户认为维修未完成,请尽快再次解决", workOrder.getRepairPerson(), 2); public R serviceRepairFinish(@RequestBody WorkOrder workOrder) {
// todo 审核通过 WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setCloseReason(workOrder.getCloseReason());
return R.success(""); workOrderOld.setStatus(WorkOrderStatusEnum.KF_REPAIR_FINISH.getValue());
} workOrderService.updateById(workOrderOld);
/** return R.success("");
* 工单表 客服维修完成 }
*/
@ApiLog(value = "提报管理-客服维修完成") /**
@PostMapping("/service-repair-submit") * 工单表 客服关闭
public R serviceRepairFinish(@RequestBody WorkOrder workOrder) { */
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); @ApiLog(value = "提报管理-工单关闭")
workOrderOld.setCloseReason(workOrder.getCloseReason()); @PostMapping("/service-close")
workOrderOld.setStatus(WorkOrderStatusEnum.KF_REPAIR_FINISH.getValue()); public R serviceClose(@RequestBody WorkOrder workOrder) {
workOrderService.updateById(workOrderOld); WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
User customer = userService.getById(workOrder.getInformant()); workOrderOld.setCloseReason(workOrder.getCloseReason());
messageService.saveMessage(workOrder.getRequirementCode(), "请注意维修单评价", customer.getId(), 2); workOrderOld.setStatus(WorkOrderStatusEnum.KF_ORDER_CLOSE.getValue());
return R.success(""); workOrderService.updateById(workOrderOld);
}
return R.success("");
/** }
* 工单表 客服关闭
*/ /**
@ApiLog(value = "提报管理-工单关闭") * 已开发票
@PostMapping("/service-close") */
public R serviceClose(@RequestBody WorkOrder workOrder) { @ApiLog(value = "提报管理-已开发票")
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); @PostMapping("/service-invoice")
workOrderOld.setCloseReason(workOrder.getCloseReason()); public R serviceInvoice(@RequestBody List<WorkOrder> orderList) {
workOrderOld.setStatus(WorkOrderStatusEnum.KF_ORDER_CLOSE.getValue()); List<WorkOrder> orderOldList = new ArrayList<>();
workOrderService.updateById(workOrderOld); for (WorkOrder workOrder : orderList) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
return R.success(""); workOrderOld.setStatus(WorkOrderStatusEnum.KF_TICKET_FINISH.getValue());
} orderOldList.add(workOrderOld);
}
/**
* 已开发票 workOrderService.updateBatchById(orderOldList);
*/
@ApiLog(value = "提报管理-已开发票") return R.success("");
@PostMapping("/service-invoice") }
public R serviceInvoice(@RequestBody List<WorkOrder> orderList) {
List<WorkOrder> orderOldList = new ArrayList<>(); /**
for (WorkOrder workOrder : orderList) { * 封装百度接口
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId()); *
workOrderOld.setStatus(WorkOrderStatusEnum.KF_TICKET_FINISH.getValue()); * @param query
orderOldList.add(workOrderOld); * @return
} * @throws Exception
*/
workOrderService.updateBatchById(orderOldList); @GetMapping("/suggestion")
public R suggestion(String query) throws Exception {
return R.success(""); String ak = "NqGy7LGcdxNUNqR7pBwPqeOkZ11Arn5Y";
} String url = "https://api.map.baidu.com/place/v2/suggestion?";
Map params = new LinkedHashMap<String, String>();
/** params.put("query", query);
* 封装百度接口 params.put("region", "全国");
* params.put("city_limit", "true");
* @param query params.put("output", "json");
* @return params.put("ak", ak);
* @throws Exception String resultStr = requestGetAK(url, params);
*/ JSONObject jsonObject = new JSONObject(resultStr);
@GetMapping("/suggestion") Map<String, Object> map = jsonObject.toMap();
public R suggestion(String query) throws Exception { return R.data(map);
String ak = "NqGy7LGcdxNUNqR7pBwPqeOkZ11Arn5Y"; }
String url = "https://api.map.baidu.com/place/v2/suggestion?";
Map params = new LinkedHashMap<String, String>(); private String requestGetAK(String strUrl, Map<String, String> param) throws Exception {
params.put("query", query); if (strUrl == null || strUrl.length() <= 0 || param == null || param.size() <= 0) {
params.put("region", "全国"); return null;
params.put("city_limit", "true"); }
params.put("output", "json");
params.put("ak", ak); StringBuffer queryString = new StringBuffer();
String resultStr = requestGetAK(url, params); queryString.append(strUrl);
JSONObject jsonObject = new JSONObject(resultStr); for (Map.Entry<?, ?> pair : param.entrySet()) {
Map<String, Object> map = jsonObject.toMap(); queryString.append(pair.getKey() + "=");
return R.data(map); // 第一种方式使用的 jdk 自带的转码方式 第二种方式使用的 spring 的转码方法 两种均可
} queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8").replace("+", "%20") + "&");
}
private String requestGetAK(String strUrl, Map<String, String> param) throws Exception {
if (strUrl == null || strUrl.length() <= 0 || param == null || param.size() <= 0) { if (queryString.length() > 0) {
return null; queryString.deleteCharAt(queryString.length() - 1);
} }
StringBuffer queryString = new StringBuffer(); URL url = new URL(queryString.toString());
queryString.append(strUrl); URLConnection httpConnection = url.openConnection();
for (Map.Entry<?, ?> pair : param.entrySet()) { httpConnection.connect();
queryString.append(pair.getKey() + "=");
// 第一种方式使用的 jdk 自带的转码方式 第二种方式使用的 spring 的转码方法 两种均可 InputStreamReader isr = new InputStreamReader(httpConnection.getInputStream());
queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8").replace("+", "%20") + "&"); BufferedReader reader = new BufferedReader(isr);
} StringBuffer buffer = new StringBuffer();
String line;
if (queryString.length() > 0) { while ((line = reader.readLine()) != null) {
queryString.deleteCharAt(queryString.length() - 1); buffer.append(line);
} }
reader.close();
URL url = new URL(queryString.toString()); isr.close();
URLConnection httpConnection = url.openConnection(); return buffer.toString();
httpConnection.connect(); }
InputStreamReader isr = new InputStreamReader(httpConnection.getInputStream());
BufferedReader reader = new BufferedReader(isr);
StringBuffer buffer = new StringBuffer();
String line;
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
reader.close();
isr.close();
return buffer.toString();
}
} }

@ -20,9 +20,6 @@ public class MaintenanceTaskDetailGoods extends BaseEntity {
//库存id //库存id
private String warehouseId; private String warehouseId;
//产品id
private String productId;
//规格 //规格
private String rule; private String rule;

@ -37,7 +37,4 @@ public class Message extends BaseEntity {
private Long messageUser; private Long messageUser;
//需求单号
private String requirementCode;
} }

@ -11,7 +11,7 @@ import java.util.List;
public interface IMessageService extends BaseService<Message> { public interface IMessageService extends BaseService<Message> {
void saveMessage(String requirementCode, String content, Long messageUser, Integer messageType); void saveMessage(String title, String content, Long messageUser, Integer messageType);
PageVO getMessageList(Integer current, Integer size, LocalDate start, LocalDate end, Integer status); PageVO getMessageList(Integer current, Integer size, LocalDate start, LocalDate end, Integer status);

@ -22,17 +22,16 @@ public class MessageServiceImpl extends BaseServiceImpl<MessageMapper, Message>
/** /**
* 保存消息 * 保存消息
* *
* @param requirementCode * @param title
* @param content * @param content
* @param messageUser * @param messageUser
* @param messageType * @param messageType
*/ */
@Override @Override
public void saveMessage(String requirementCode, String content, Long messageUser, Integer messageType) { public void saveMessage(String title, String content, Long messageUser, Integer messageType) {
Message saveInformation = new Message(); Message saveInformation = new Message();
saveInformation.setRequirementCode(requirementCode);
saveInformation.setSystemType("1"); saveInformation.setSystemType("1");
saveInformation.setTitle("需求单"); saveInformation.setTitle(title);
saveInformation.setContent(content); saveInformation.setContent(content);
saveInformation.setMessageUser(messageUser); saveInformation.setMessageUser(messageUser);
saveInformation.setTenantId(AuthUtil.getTenantId()); saveInformation.setTenantId(AuthUtil.getTenantId());

@ -118,8 +118,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Synchronized @Synchronized
public boolean saveAndSubmit(List<WorkOrderVO> workOrders) { public boolean saveAndSubmit(List<WorkOrderVO> workOrders) {
String role = "1839536982874193922";
User customerService = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, role));
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date now = DateUtil.date(); Date now = DateUtil.date();
String todayStr = format.format(now); String todayStr = format.format(now);
@ -133,7 +131,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 查询今天已提报数量 // 查询今天已提报数量
String hz = count < 9 ? "0" + (count + 1) : count + 1 + ""; String hz = count < 9 ? "0" + (count + 1) : count + 1 + "";
String code = "WX-" + todayStr + "-" + hz; String code = "WX-" + todayStr + "-" + hz;
messageService.saveMessage(code, "您有一个需求单需要处理", customerService.getId(), 2);
workOrder.setFillingTime(now); workOrder.setFillingTime(now);
workOrder.setRequirementCode(code); workOrder.setRequirementCode(code);
// 待接单 // 待接单
@ -266,10 +263,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 更新设备状态为故障 // 更新设备状态为故障
deviceService.updateStatus(CommonConstant.DEVICE_RUN_STATUS_BREAKDOWN, workOrder.getDeviceId()); deviceService.updateStatus(CommonConstant.DEVICE_RUN_STATUS_BREAKDOWN, workOrder.getDeviceId());
//发送消息给主管
String role = "1839537055389515777";
User user = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, role));
messageService.saveMessage(workOrder.getRequirementCode(), "维修方案已提交,请审批", user.getId(), 2);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -290,7 +283,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 更新设备状态为运行中 // 更新设备状态为运行中
deviceService.updateStatus(CommonConstant.DEVICE_RUN_STATUS_WORKING, workOrder.getDeviceId()); deviceService.updateStatus(CommonConstant.DEVICE_RUN_STATUS_WORKING, workOrder.getDeviceId());
messageService.saveMessage(workOrder.getRequirementCode(), "维修方案审批未通过,请重新提交方案", workOrder.getRepairPerson(), 2);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -323,10 +315,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 更新设备状态为运行中 // 更新设备状态为运行中
deviceService.updateStatus(CommonConstant.DEVICE_RUN_STATUS_WORKING, workOrder.getDeviceId()); deviceService.updateStatus(CommonConstant.DEVICE_RUN_STATUS_WORKING, workOrder.getDeviceId());
String role = "1839536982874193922";
User user = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, role));
messageService.saveMessage(workOrder.getRequirementCode(), "已完成维修,请确认客户是否付款", user.getId(), 2);
} }
private void saveFiles(List<WorkOrderAttach> videoAttaches, List<WorkOrderAttach> picAttaches, Long orderId) { private void saveFiles(List<WorkOrderAttach> videoAttaches, List<WorkOrderAttach> picAttaches, Long orderId) {

Loading…
Cancel
Save