package org.jeecg.modules.eam.controller;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.parser.Feature;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.beanutils.BeanUtils;
|
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.aspect.annotation.AutoLog;
|
import org.jeecg.common.system.base.controller.JeecgController;
|
import org.jeecg.common.util.TranslateDictTextUtils;
|
import org.jeecg.modules.eam.constant.BusinessCodeConst;
|
import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
|
import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
|
import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
|
import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
|
import org.jeecg.modules.eam.request.EamWeekMaintenanceBatchApprovalRequest;
|
import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
|
import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
|
import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService;
|
import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
|
import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo;
|
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
/**
|
* @Description: 周保工单
|
* @Author: jeecg-boot
|
* @Date: 2025-04-02
|
* @Version: V1.0
|
*/
|
@Slf4j
|
@Api(tags = "周保工单")
|
@RestController
|
@RequestMapping("/eam/weekMaintenanceOrder")
|
public class EamWeekMaintenanceOrderController extends JeecgController<EamWeekMaintenanceOrder, IEamWeekMaintenanceOrderService> {
|
@Autowired
|
private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService;
|
@Autowired
|
private ISysBusinessCodeRuleService businessCodeRuleService;
|
@Autowired
|
private ObjectMapper objectMapper;
|
@Autowired
|
private TranslateDictTextUtils translateDictTextUtils;
|
@Autowired
|
private IEamWeekMaintenanceOrderDetailService weekMaintenanceOrderDetailService;
|
|
/**
|
* 分页列表查询
|
*
|
* @param query
|
* @param pageNo
|
* @param pageSize
|
* @param req
|
* @return
|
*/
|
@ApiOperation(value = "周保工单-分页列表查询", notes = "周保工单-分页列表查询")
|
@GetMapping(value = "/list")
|
public Result<?> queryPageList(EamWeekMaintenanceQuery query,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
HttpServletRequest req) {
|
// QueryWrapper<EamWeekMaintenanceOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamWeekMaintenanceOrder, req.getParameterMap());
|
Page<EamWeekMaintenanceOrder> page = new Page<>(pageNo, pageSize);
|
IPage<EamWeekMaintenanceOrder> pageList = eamWeekMaintenanceOrderService.queryPageList(page, query);
|
return Result.OK(pageList);
|
}
|
|
/**
|
* 添加
|
*
|
* @param request
|
* @return
|
*/
|
@AutoLog(value = "周保工单-添加")
|
@ApiOperation(value = "周保工单-添加", notes = "周保工单-添加")
|
@PostMapping(value = "/add")
|
public Result<?> add(@RequestBody EamWeekMaintenanceRequest request) {
|
if (request == null) {
|
return Result.error("添加的对象不能为空!");
|
}
|
if (CollectionUtil.isEmpty(request.getTableDetailList())) {
|
return Result.error("保养项不能为空!");
|
}
|
String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE);
|
request.setOrderNum(codeSeq);
|
request.setCreationMethod(OrderCreationMethodEnum.MANUAL.name());
|
boolean b = eamWeekMaintenanceOrderService.addWeekMaintenance(request);
|
if (!b) {
|
return Result.error("添加失败!");
|
}
|
return Result.OK("添加成功!");
|
}
|
|
/**
|
* 编辑
|
*
|
* @param request
|
* @return
|
*/
|
@AutoLog(value = "周保工单-编辑")
|
@ApiOperation(value = "周保工单-编辑", notes = "周保工单-编辑")
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
|
public Result<?> edit(@RequestBody EamWeekMaintenanceRequest request) {
|
if (request == null) {
|
return Result.error("添加的对象不能为空!");
|
}
|
if (CollectionUtil.isEmpty(request.getTableDetailList())) {
|
return Result.error("保养项不能为空!");
|
}
|
boolean b = eamWeekMaintenanceOrderService.editWeekMaintenance(request);
|
if (!b) {
|
return Result.error("编辑失败!");
|
}
|
return Result.OK("编辑成功!");
|
}
|
|
/**
|
* 通过id删除
|
*
|
* @param id
|
* @return
|
*/
|
@AutoLog(value = "周保工单-通过id删除")
|
@ApiOperation(value = "周保工单-通过id删除", notes = "周保工单-通过id删除")
|
@DeleteMapping(value = "/delete")
|
public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
|
eamWeekMaintenanceOrderService.removeById(id);
|
return Result.OK("删除成功!");
|
}
|
|
/**
|
* 通过id作废
|
*
|
* @param id
|
* @return
|
*/
|
@AutoLog(value = "周保工单-作废")
|
@ApiOperation(value = "周保工单-作废", notes = "周保工单-作废")
|
@DeleteMapping(value = "/abolish")
|
public Result<?> abolish(@RequestParam(name = "id", required = true) String id) {
|
EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id);
|
if (entity == null) {
|
return Result.error("要作废的数据不存在,请刷新重试!");
|
}
|
if (!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
|
return Result.error("该状态的数据不允许进行作废!");
|
}
|
entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.ABOLISH.name());
|
eamWeekMaintenanceOrderService.updateById(entity);
|
return Result.OK("作废成功!");
|
}
|
|
/**
|
* 通过id领取
|
*
|
* @param id
|
* @return
|
*/
|
@AutoLog(value = "周保工单-领取")
|
@ApiOperation(value = "周保工单-领取", notes = "周保工单-领取")
|
@GetMapping(value = "/collect")
|
public Result<?> collect(@RequestParam(name = "id", required = true) String id) {
|
boolean b = eamWeekMaintenanceOrderService.collect(id);
|
if (!b) {
|
Result.OK("领取失败!");
|
}
|
return Result.OK("领取成功!");
|
}
|
|
/**
|
* 批量删除
|
*
|
* @param ids
|
* @return
|
*/
|
@AutoLog(value = "周保工单-批量删除")
|
@ApiOperation(value = "周保工单-批量删除", notes = "周保工单-批量删除")
|
@DeleteMapping(value = "/deleteBatch")
|
public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
|
this.eamWeekMaintenanceOrderService.removeByIds(Arrays.asList(ids.split(",")));
|
return Result.OK("批量删除成功!");
|
}
|
|
/**
|
* 通过id批量作废
|
*
|
* @param ids
|
* @return
|
*/
|
@AutoLog(value = "周保工单-批量作废")
|
@ApiOperation(value = "周保工单-批量作废", notes = "周保工单-批量作废")
|
@DeleteMapping(value = "/abolishBatch")
|
public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
|
List<String> list = Arrays.asList(ids.split(","));
|
AtomicInteger i = new AtomicInteger();
|
list.forEach(id -> {
|
EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id);
|
if (entity != null && WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
|
entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.ABOLISH.name());
|
eamWeekMaintenanceOrderService.updateById(entity);
|
i.getAndIncrement();
|
}
|
});
|
return Result.OK("批量作废成功 " + i.get() + " 条工单!");
|
}
|
|
/**
|
* 通过id批量领取
|
*
|
* @param ids
|
* @return
|
*/
|
@AutoLog(value = "周保工单-批量领取")
|
@ApiOperation(value = "周保工单-批量领取", notes = "周保工单-批量领取")
|
@DeleteMapping(value = "/collectBatch")
|
public Result<?> collectBatch(@RequestParam(name = "ids", required = true) String ids) {
|
List<String> list = Arrays.asList(ids.split(","));
|
AtomicInteger i = new AtomicInteger();
|
list.forEach(id -> {
|
EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id);
|
if (entity != null && WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
|
boolean b = eamWeekMaintenanceOrderService.collect(id);
|
if (b) {
|
i.getAndIncrement();
|
}
|
}
|
});
|
return Result.OK("批量领取成功 " + i.get() + " 条工单!");
|
}
|
|
/**
|
* 通过id查询
|
*
|
* @param id
|
* @return
|
*/
|
@ApiOperation(value = "周保工单-通过id查询", notes = "周保工单-通过id查询")
|
@GetMapping(value = "/queryById")
|
public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
|
EamWeekMaintenanceOrder eamWeekMaintenanceOrder = eamWeekMaintenanceOrderService.getById(id);
|
if (eamWeekMaintenanceOrder == null) {
|
return Result.error("未找到对应数据");
|
}
|
try {
|
String json = objectMapper.writeValueAsString(eamWeekMaintenanceOrder);
|
JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
|
translateDictTextUtils.translateField("equipmentId", eamWeekMaintenanceOrder.getEquipmentId(), item, "eam_equipment,equipment_code,id");
|
translateDictTextUtils.translateField("standardId", eamWeekMaintenanceOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id");
|
translateDictTextUtils.translateField("operator", eamWeekMaintenanceOrder.getOperator(), item, "sys_user,realname,username");
|
translateDictTextUtils.translateField("creationMethod", eamWeekMaintenanceOrder.getCreationMethod(), item, "order_creation_method");
|
translateDictTextUtils.translateField("maintenanceStatus", eamWeekMaintenanceOrder.getMaintenanceStatus(), item, "week_maintenance_status");
|
translateDictTextUtils.translateField("confirmUser", eamWeekMaintenanceOrder.getConfirmUser(), item, "sys_user,realname,username");
|
translateDictTextUtils.translateField("confirmDealType", eamWeekMaintenanceOrder.getConfirmDealType(), item, "approved_rejected");
|
translateDictTextUtils.translateField("initialAcceptanceUser", eamWeekMaintenanceOrder.getInitialAcceptanceUser(), item, "sys_user,realname,username");
|
translateDictTextUtils.translateField("finalAcceptanceUser", eamWeekMaintenanceOrder.getFinalAcceptanceUser(), item, "sys_user,realname,username");
|
return Result.OK(item);
|
} catch (JsonProcessingException e) {
|
return Result.error("数据转译失败!");
|
}
|
}
|
|
/**
|
* 我的待办,审批动作
|
*
|
* @param request
|
* @return
|
*/
|
@ApiOperation(value = "周保工单-执行操作", notes = "周保工单-执行操作")
|
@PutMapping(value = "/approval")
|
public Result<?> approval(@RequestBody EamWeekMaintenanceRequest request) {
|
if (request == null) {
|
return Result.error("审批的对象不能为空!");
|
}
|
if (CollectionUtil.isEmpty(request.getTableDetailList())) {
|
return Result.error("保养项不能为空!");
|
}
|
// 检查请求参数
|
if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
|
return Result.error("审批任务错误或不存在!");
|
}
|
EamWeekMaintenanceOrder b = eamWeekMaintenanceOrderService.approval(request);
|
if (b == null) {
|
return Result.error("操作失败!");
|
}
|
return Result.ok("操作成功!");
|
}
|
|
@ApiOperation(value = "周保工单-批量审批流程", notes = "周保工单-批量审批流程")
|
@PostMapping("/batchApproval")
|
public Result<?> batchApproval(@RequestBody EamWeekMaintenanceBatchApprovalRequest request) {
|
if (request == null || CollectionUtil.isEmpty(request.getTaskList())) {
|
return Result.error("没有需要审批的数据!");
|
}
|
int n = 0;
|
StringBuilder errorMsg = new StringBuilder();
|
List<WorkTaskDataVo> tastList = request.getTaskList();
|
for (WorkTaskDataVo workTaskDataVo : tastList) {
|
EamWeekMaintenanceRequest orderRequest = new EamWeekMaintenanceRequest();
|
EamWeekMaintenanceOrder order = eamWeekMaintenanceOrderService.getById(workTaskDataVo.getDataId());
|
if (order == null) {
|
errorMsg.append("工单ID:");
|
errorMsg.append(workTaskDataVo.getDataId());
|
errorMsg.append(",不存在或已被删除!\r\n");
|
continue;
|
}
|
if (!(WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())
|
|| WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())
|
|| WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()))) {
|
errorMsg.append("工单号:");
|
errorMsg.append(order.getOrderNum());
|
errorMsg.append(",状态无法批量审批!\r\n");
|
continue;
|
}
|
List<EamWeekMaintenanceOrderDetail> tableDetailList = weekMaintenanceOrderDetailService.queryListByOrderId(order.getId());
|
try {
|
BeanUtils.copyProperties(orderRequest, order);
|
//审批信息
|
if (WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())) {
|
orderRequest.setConfirmComment(request.getConfirmComment());
|
orderRequest.setConfirmDealType(request.getConfirmDealType());
|
} else if (WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) {
|
orderRequest.setInitialAcceptanceComment(request.getInitialAcceptanceComment());
|
orderRequest.setInitialAcceptanceFilesResult(request.getInitialAcceptanceFilesResult());
|
} else if (WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) {
|
orderRequest.setFinalAcceptanceComment(request.getFinalAcceptanceComment());
|
orderRequest.setFinalAcceptanceFilesResult(request.getFinalAcceptanceFilesResult());
|
}
|
//任务信息
|
orderRequest.setDataId(workTaskDataVo.getDataId());
|
orderRequest.setTaskId(workTaskDataVo.getId());
|
orderRequest.setUserId(workTaskDataVo.getAssignee());
|
orderRequest.setInstanceId(workTaskDataVo.getProcInstId());
|
orderRequest.setValues(workTaskDataVo.getVariables());
|
orderRequest.setTableDetailList(tableDetailList);
|
EamWeekMaintenanceOrder result = eamWeekMaintenanceOrderService.approval(orderRequest);
|
if (result == null) {
|
errorMsg.append("工单号:");
|
errorMsg.append(order.getOrderNum());
|
errorMsg.append(",审批失败!\r\n");
|
continue;
|
}
|
n++;
|
|
} catch (Exception e) {
|
errorMsg.append("工单号:");
|
errorMsg.append(order.getOrderNum());
|
errorMsg.append(",审批失败,错误原因:");
|
errorMsg.append(e.getMessage() + "\r\n");
|
}
|
|
}
|
if (n > 0) {
|
String message = "成功审批通过" + n + "条记录!\r\n" + errorMsg;
|
return Result.OK(message);
|
}
|
return Result.error(errorMsg.toString());
|
}
|
}
|