diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index 21018d99..560cd756 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -6,8 +6,10 @@ import com.op.common.core.web.page.TableDataInfo; import com.op.common.security.annotation.RequiresPermissions; import com.op.device.domain.*; import com.op.device.domain.dto.PDADTO; +import com.op.device.domain.dto.UpKeepOrderDTO; import com.op.device.service.IDevicePDAService; import com.op.device.service.IEquRepairOrderService; +import com.op.device.service.IEquRepairWorkOrderService; import com.op.device.service.IEquSparepartsInOutService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -33,6 +35,9 @@ public class DevicePDAController extends BaseController { @Autowired private IEquSparepartsInOutService equSparepartsInOutService; + @Autowired + private IEquRepairWorkOrderService equRepairWorkOrderService; + /** * 获取今日任务工单list @@ -215,4 +220,43 @@ public class DevicePDAController extends BaseController { public AjaxResult sparePartsInOutStorage(@RequestBody EquSparepartsInOut equSparepartsInOut) { return equSparepartsInOutService.insertEquSparepartsInOut(equSparepartsInOut); } + + //报修页面查询 + @GetMapping("/getBXList") + public AjaxResult getBXList(EquRepairOrder equRepairOrder) { + return devicePDAService.getBXList(equRepairOrder); + } + + /** + * 获取故障报修详细信息 + */ + @GetMapping(value = "/getBXDetail/{orderId}") + public AjaxResult getBXDetail(@PathVariable("orderId") String orderId) { + return success(equRepairOrderService.selectEquRepairOrderByOrderId(orderId)); + } + + /** + * 审核报修单 + */ + @PutMapping("/checkBX") + public AjaxResult checkEquRepairOrder(@RequestBody EquRepairOrder equRepairOrder) { + return toAjax(equRepairOrderService.checkEquRepairOrder(equRepairOrder)); + } + + /** + * 维修工单审核 传参数用保养的对象 + * + * @param upKeepOrderDTO + * @return + */ + @PostMapping("/checkWX") + public AjaxResult checkWX(@RequestBody UpKeepOrderDTO upKeepOrderDTO) { + return equRepairWorkOrderService.checkRepairWorkOrder(upKeepOrderDTO); + } + + //维修页面查询 + @GetMapping("/getWXList") + public AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder) { + return devicePDAService.getWXList(equRepairWorkOrder); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java index 1a4edaf2..4505c5b6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java @@ -141,14 +141,14 @@ public class EquRepairWorkOrderController extends BaseController { } /** - * 维修工单检验 传参数用保养的对象 + * 维修工单审核 传参数用保养的对象 * * @param upKeepOrderDTO * @return */ - @RequiresPermissions("device:repairOrder:inspect") - @PostMapping("/subInspect") - public AjaxResult subInspect(@RequestBody UpKeepOrderDTO upKeepOrderDTO) { - return equRepairWorkOrderService.subInspect(upKeepOrderDTO); + @RequiresPermissions("device:repairOrder:checkRepairWorkOrder") + @PostMapping("/checkRepairWorkOrder") + public AjaxResult checkRepairWorkOrder(@RequestBody UpKeepOrderDTO upKeepOrderDTO) { + return equRepairWorkOrderService.checkRepairWorkOrder(upKeepOrderDTO); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java index c4a93d93..662812e8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java @@ -37,7 +37,7 @@ public class EquUpkeepOrderController extends BaseController { * @param upKeepOrderDTO * @return */ - @RequiresPermissions("device:upkeepOrder:add") + @RequiresPermissions("device:upkeepOrder:subInspect") @PostMapping("/subInspect") public AjaxResult subInspect(@RequestBody UpKeepOrderDTO upKeepOrderDTO) { return equUpkeepOrderService.subInspect(upKeepOrderDTO); diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java index 65c58682..5e584ed7 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java @@ -87,7 +87,7 @@ public class EquRepairOrder extends BaseEntity { private String orderConnection; /** - * 处理状态 + * 处理状态 也就是审核状态 */ @Excel(name = "处理状态") private String orderStatus; @@ -176,6 +176,12 @@ public class EquRepairOrder extends BaseEntity { @Excel(name = "报修去向") private String repairDestination; + /** + * 审核意见 + */ + @Excel(name = "审核意见") + private String auditOpinion; + /** * 计划维修时间 */ @@ -628,7 +634,7 @@ public class EquRepairOrder extends BaseEntity { this.orderTimeStart = orderTimeStart; } - public String getOrdeTimeEnd() { + public String getOrderTimeEnd() { return orderTimeEnd; } @@ -636,6 +642,14 @@ public class EquRepairOrder extends BaseEntity { this.orderTimeEnd = orderTimeEnd; } + //审核意见 + public String getAuditOpinion() { + return auditOpinion; + } + public void setAuditOpinion(String auditOpinion) { + this.auditOpinion = auditOpinion; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index 0bddf977..8f4f4ab8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -135,9 +135,15 @@ public class EquRepairWorkOrder extends BaseEntity { @Excel(name = "故障开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date faultStartTime; - @Excel(name = "结果检验") + @Excel(name = "结果检验")//也就是审核 private String resultInspect; + @Excel(name = "备注") + private String remark; + + @Excel(name = "审核意见") + private String auditOpinion; + /////////////////////////////////////////////////////////设备表字段 @Excel(name = "设备名称") private String equipmentName;//设备名称 @@ -330,7 +336,6 @@ public class EquRepairWorkOrder extends BaseEntity { return workshopName; } - //维修工单 public void setWorkId(String workId) { this.workId = workId; @@ -616,6 +621,18 @@ public class EquRepairWorkOrder extends BaseEntity { public String getResultInspect() { return resultInspect; } public void setResultInspect(String resultInspect) { this.resultInspect = resultInspect; } + //备注 + public String getRemark() { return remark; } + public void setRemark(String remark) { this.remark = remark; } + + //新增 审核意见 + public String getAuditOpinion() { + return auditOpinion; + } + public void setAuditOpinion(String auditOpinion) { + this.auditOpinion = auditOpinion; + } + //委外 public void setOutSourceReason(String outSourceReason) { this.outSourceReason = outSourceReason; diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java index 14b673d0..9c181652 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java @@ -24,93 +24,49 @@ public class EquSpareApply extends BaseEntity { */ private String applyId; - /** - * 出库单号 - */ - @Excel(name = "单号") + @Excel(name = "申领单号") private String applyCode; - /** - * 备品备件编码 - */ @Excel(name = "备品备件编码") private String spareCode; - /** - * 备品备件名称 - */ @Excel(name = "备品备件名称") private String spareName; - /** - * 规格型号 - */ @Excel(name = "规格型号") private String spareModel; - /** - * 数量 - */ @Excel(name = "数量") private BigDecimal spareQuantity; - /** - * 使用组线 - */ @Excel(name = "使用组线") private String spareGroupLine; - /** - * 使用设备 - */ @Excel(name = "使用设备") private String spareUseEquipment; - /** - * 领用时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "领用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date applyTime; - /** - * 申领人 - */ @Excel(name = "申领人") private String applyPeople; - /** - * 批准人 - */ @Excel(name = "批准人") private String applyApprovePeople; - /** - * 备用字段1 - */ @Excel(name = "备用字段1") private String attr1; - /** - * 备用字段2 - */ @Excel(name = "备用字段2") private String attr2; - /** - * 备用字段3 - */ @Excel(name = "备用字段3") private String attr3; - /** - * 删除标志 - */ + @Excel(name = "删除标志") private String delFlag; - /** - * 工厂号 - */ @Excel(name = "工厂号") private String factoryCode; @@ -123,59 +79,39 @@ public class EquSpareApply extends BaseEntity { // 创建日期结束 private String applyTimeEnd; - //新增字段 - /** - * 工单编码 - */ + //工单编码 private String workCode; - /** - * 关联上级code(保养) - */ + + //关联上级code(保养) private String parentCode; - /** - * 领用类型 - */ + + //领用类型 private String applyType; //批量新增申领记录 private List spareApplyLists; - /** - * 库存表 id - */ + + //备品备件台账 主键id private String storageId; - /** - * 总数量 - */ + + //总数量 private BigDecimal amount; - /** - * 物料号 - */ - @Excel(name = "物料号") + //物料号 private String materialCode; - /** - * 物料描述 - */ - @Excel(name = "物料描述") + //物料描述 private String materialDesc; - /** - * 单价 - */ - @Excel(name = "单价") + //单价 private BigDecimal unitPrice; - /** - * 总价 - */ - @Excel(name = "总价") + //总价 private BigDecimal totalPrice; public void setUnitPrice(BigDecimal unitPrice) { this.unitPrice = unitPrice; } - public BigDecimal getUnitPrice() { return unitPrice; } @@ -183,7 +119,6 @@ public class EquSpareApply extends BaseEntity { public void setTotalPrice(BigDecimal totalPrice) { this.totalPrice = totalPrice; } - public BigDecimal getTotalPrice() { return totalPrice; } @@ -191,7 +126,6 @@ public class EquSpareApply extends BaseEntity { public void setMaterialCode(String materialCode) { this.materialCode = materialCode; } - public String getMaterialCode() { return materialCode; } @@ -199,7 +133,6 @@ public class EquSpareApply extends BaseEntity { public void setMaterialDesc(String materialDesc) { this.materialDesc = materialDesc; } - public String getMaterialDesc() { return materialDesc; } @@ -207,7 +140,6 @@ public class EquSpareApply extends BaseEntity { public List getApplyTimeArray() { return applyTimeArray; } - public void setApplyTimeArray(List applyTimeArray) { this.applyTimeArray = applyTimeArray; } @@ -215,7 +147,6 @@ public class EquSpareApply extends BaseEntity { public String getApplyTimeStart() { return applyTimeStart; } - public void setApplyTimeStart(String createTimeStart) { this.applyTimeStart = createTimeStart; } @@ -223,7 +154,6 @@ public class EquSpareApply extends BaseEntity { public String getApplyTimeEnd() { return applyTimeEnd; } - public void setApplyTimeEnd(String applyTimeEnd) { this.applyTimeEnd = applyTimeEnd; } @@ -231,7 +161,6 @@ public class EquSpareApply extends BaseEntity { public void setApplyId(String applyId) { this.applyId = applyId; } - public String getApplyId() { return applyId; } @@ -239,7 +168,6 @@ public class EquSpareApply extends BaseEntity { public void setApplyCode(String applyCode) { this.applyCode = applyCode; } - public String getApplyCode() { return applyCode; } @@ -247,7 +175,6 @@ public class EquSpareApply extends BaseEntity { public void setSpareCode(String spareCode) { this.spareCode = spareCode; } - public String getSpareCode() { return spareCode; } @@ -255,7 +182,6 @@ public class EquSpareApply extends BaseEntity { public void setSpareName(String spareName) { this.spareName = spareName; } - public String getSpareName() { return spareName; } @@ -263,7 +189,6 @@ public class EquSpareApply extends BaseEntity { public void setSpareModel(String spareModel) { this.spareModel = spareModel; } - public String getSpareModel() { return spareModel; } @@ -271,7 +196,6 @@ public class EquSpareApply extends BaseEntity { public void setSpareQuantity(BigDecimal spareQuantity) { this.spareQuantity = spareQuantity; } - public BigDecimal getSpareQuantity() { return spareQuantity; } @@ -279,7 +203,6 @@ public class EquSpareApply extends BaseEntity { public void setSpareGroupLine(String spareGroupLine) { this.spareGroupLine = spareGroupLine; } - public String getSpareGroupLine() { return spareGroupLine; } @@ -287,7 +210,6 @@ public class EquSpareApply extends BaseEntity { public void setSpareUseEquipment(String spareUseEquipment) { this.spareUseEquipment = spareUseEquipment; } - public String getSpareUseEquipment() { return spareUseEquipment; } @@ -295,7 +217,6 @@ public class EquSpareApply extends BaseEntity { public void setApplyTime(Date applyTime) { this.applyTime = applyTime; } - public Date getApplyTime() { return applyTime; } @@ -303,7 +224,6 @@ public class EquSpareApply extends BaseEntity { public void setApplyPeople(String applyPeople) { this.applyPeople = applyPeople; } - public String getApplyPeople() { return applyPeople; } @@ -311,7 +231,6 @@ public class EquSpareApply extends BaseEntity { public void setApplyApprovePeople(String applyApprovePeople) { this.applyApprovePeople = applyApprovePeople; } - public String getApplyApprovePeople() { return applyApprovePeople; } @@ -319,7 +238,6 @@ public class EquSpareApply extends BaseEntity { public void setAttr1(String attr1) { this.attr1 = attr1; } - public String getAttr1() { return attr1; } @@ -327,7 +245,6 @@ public class EquSpareApply extends BaseEntity { public void setAttr2(String attr2) { this.attr2 = attr2; } - public String getAttr2() { return attr2; } @@ -335,7 +252,6 @@ public class EquSpareApply extends BaseEntity { public void setAttr3(String attr3) { this.attr3 = attr3; } - public String getAttr3() { return attr3; } @@ -343,7 +259,6 @@ public class EquSpareApply extends BaseEntity { public void setDelFlag(String delFlag) { this.delFlag = delFlag; } - public String getDelFlag() { return delFlag; } @@ -351,81 +266,48 @@ public class EquSpareApply extends BaseEntity { public void setFactoryCode(String factoryCode) { this.factoryCode = factoryCode; } - public String getFactoryCode() { return factoryCode; } - //新增 - - /** - * 主工单编码(保养) - */ public String getWorkCode() { return this.workCode; } - - /** - * 主工单编码(保养) - */ public void setWorkCode(String workCode) { this.workCode = workCode; } - /** - * 关联上级code(保养) - */ public String getParentCode() { return this.parentCode; } - - /** - * 关联上级code(保养) - */ public void setParentCode(String parentCode) { this.parentCode = parentCode; } - /** - * 领用类型 - */ public String getApplyType() { return this.applyType; } - - /** - * 领用类型 - */ public void setApplyType(String applyType) { this.applyType = applyType; } - //批量新增申领记录 public List getSpareApplyLists() { return this.spareApplyLists; } - - /** - * 领用类型 - */ public void setSpareApplyLists(List spareApplyLists) { this.spareApplyLists = spareApplyLists; } - //id public void setStorageId(String storageId) { this.storageId = storageId; } - public String getStorageId() { return storageId; } - //总数量 public void setAmount(BigDecimal amount) { this.amount = amount; } - public BigDecimal getAmount() { return amount; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java index 937a6537..4047f93a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java @@ -1,5 +1,7 @@ package com.op.device.domain.dto; +import com.op.common.core.annotation.Excel; + import java.util.List; // 保养工单DTO @@ -10,6 +12,9 @@ public class UpKeepOrderDTO { private String inspect; + //新增 审核意见 + private String auditOpinion; + public String getInspect() { return inspect; } @@ -33,4 +38,13 @@ public class UpKeepOrderDTO { public void setOrderCodes(List orderCodes) { this.orderCodes = orderCodes; } + + //新增 审核意见 + public String getAuditOpinion() { + return auditOpinion; + } + public void setAuditOpinion(String auditOpinion) { + this.auditOpinion = auditOpinion; + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java index a912acfa..b62b76e3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java @@ -118,4 +118,7 @@ public interface EquRepairWorkOrderMapper { //更新结果检验 void updateResultInspect(EquRepairWorkOrder equRepairWorkOrder); + + //回退维修工单 + void returnRepairWorkOrder(EquRepairWorkOrder dto); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index ab3c7559..0b9264d5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -3,6 +3,7 @@ package com.op.device.service; import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.*; import com.op.device.domain.dto.PDADTO; +import com.op.device.domain.dto.UpKeepOrderDTO; import java.util.List; @@ -140,4 +141,12 @@ public interface IDevicePDAService { AjaxResult selectEquFaultReasonList(EquFaultReason equFaultReason); AjaxResult selectSpareDetailBySpareCode(String spareCode); + + //获取报修列表 + AjaxResult getBXList(EquRepairOrder equRepairOrder); + + AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder); + + //故障维修审核 +// AjaxResult checkWX(UpKeepOrderDTO upKeepOrderDTO); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java index 2aa7998a..35d41f86 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java @@ -71,5 +71,6 @@ public interface IEquRepairWorkOrderService { public int applyEquOutsourceWork(EquRepairWorkOrder equRepairWorkOrder); //维修故障检验 - AjaxResult subInspect(UpKeepOrderDTO upKeepOrderDTO); + AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO); + } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 8c0dcd63..8a14a6a4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.BaseFileData; +import com.op.common.core.exception.auth.NotLoginException; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; @@ -269,7 +270,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (repairOrder == null) { return error(500, "未查询到报修单信息!"); } else { - if (!repairOrder.getOrderStatus().equals("待审核")) { + if (!repairOrder.getOrderStatus().equals("2")) { return error(500, "报修单已审核,不可修改记录!"); } } @@ -391,7 +392,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (equOrder.getPlanType().equals("maintenance")) { equRepairOrder.setOrderSource("保养"); } - equRepairOrder.setOrderStatus("待审核"); + equRepairOrder.setOrderStatus("2"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); @@ -562,7 +563,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setCreateBy(SecurityUtils.getUsername()); equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername()); equRepairOrder.setOrderTime(DateUtils.getNowDate()); - equRepairOrder.setOrderStatus("待审核"); + equRepairOrder.setOrderStatus("2"); equRepairOrder.setOrderSource("手持PDA"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; @@ -809,22 +810,23 @@ public class DevicePDAServiceImpl implements IDevicePDAService { try { //不停机 那么实际停机开始时间和实际停机结束时间都没有 //如果停机 那么实际停机时间就是传入的时间 - equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate()); - if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { - equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate()); + //如果这是被驳回的维修单 维修单状态变为待维修 那么维修开始时间 实际停机时间 还是原来的那个 + if(equRepairWorkOrder == null){ + equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate()); + if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { + equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate()); + } } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); //维修中 equRepairWorkOrder.setWorkStatus("2"); - //维修工单里面的设备名 简化TODO EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); //修改设备状态 改为维修中 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(list.getEquipmentCode()); equEquipment.setEquipmentStatus("2"); equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); return success("提交成功,设备开始维修!"); } catch (Exception e) { @@ -912,143 +914,150 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - try { - ////0.时间 - Date date = DateUtils.getNowDate(); - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - String formattedDate = dateFormat.format(date); - - ////1.判断是否停机 - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); - if (list.getWorkDownMachine().equals("1")) { - equRepairWorkOrder.setActualDownEndTime(date);//维修真正停机时间 - } - equRepairWorkOrder.setWorkEndTime(date);//维修工单结束时间 - - //1.2判断字段里面是否为空,是空的用,用无替代 - if(equRepairWorkOrder.getWorkFaultDesc() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){//故障描述 - equRepairWorkOrder.setWorkFaultDesc("无"); - } - if(equRepairWorkOrder.getWorkReason() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){ //故障原因 - equRepairWorkOrder.setWorkFaultDesc("无"); - } - if(equRepairWorkOrder.getRepairMeasures() == null || equRepairWorkOrder.getRepairMeasures().equals("")){//故障措施 - equRepairWorkOrder.setRepairMeasures("无"); - } - if(equRepairWorkOrder.getWorkPerson() == null || equRepairWorkOrder.getWorkPerson().equals("")){//维修人 - equRepairWorkOrder.setWorkPerson("无"); - } + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + if (equ == null) { + //不应该用登录的 todo + throw new NotLoginException("设备表中不存在此设备,请确认!"); + } - ////2.计算维修工单用时 + 故障停机时间 - if (list.getWorkStartTime() != null && equRepairWorkOrder.getWorkEndTime() != null) { - ////2.1计算维修日期差值 - ZoneId zoneId = ZoneId.systemDefault(); - LocalDateTime workStart = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId); - LocalDateTime workEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); - LocalDateTime workDateTime = LocalDateTime.from(workStart); - - double workHours = workDateTime.until(workEnd, ChronoUnit.HOURS); - double workMinutes = ((workDateTime.until(workEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; - double workSeconds = ((workDateTime.until(workEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; - double workHour = BigDecimal.valueOf(workHours + workMinutes + workSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour)+"小时"); //塞入维修用时 - - ////2.2 计算故障停机时间差值 - //报修的故障时间 和 快速工单的故障开始时间 - Date downStartTime = new Date(); - if(list.getOrderBreakdownTime() != null){ - downStartTime = list.getOrderBreakdownTime(); - }else if(list.getFaultStartTime() != null){ - downStartTime = list.getFaultStartTime(); - } - LocalDateTime downStart = LocalDateTime.ofInstant(downStartTime.toInstant(), zoneId); - LocalDateTime downEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); - LocalDateTime downDateTime = LocalDateTime.from(downStart); - - double downHours = downDateTime.until(downEnd, ChronoUnit.HOURS); - double downMinutes = ((downDateTime.until(downEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; - double downSeconds = ((downDateTime.until(downEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; - double downHour = BigDecimal.valueOf(downHours + downMinutes + downSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - equRepairWorkOrder.setFaultDownTime(String.valueOf(downHour)+"小时"); - - ////完好率报表 - ////3.1查询当日完好率报表 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); - EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); - - ////3.2修改完好率报表 - if (equOperation != null) { - if (list.getWorkDownMachine().equals("1")) { - DecimalFormat df = new DecimalFormat("#.##"); - double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour;//实际运行时间 = 实际运行时间 - 故障停机时间 - double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour;//故障时间 = 原来的故障停机时间 + 这次的故障停机时间 - BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障停机时间 - BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 - equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 - equOperation.setFaultTime(String.valueOf(faultTime));//故障停机时间 - equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); - equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//故障停机次数加1 - } - equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 - equOperation.setUpdateBy(SecurityUtils.getUsername()); - equOperation.setUpdateTime(date); - - String GZMS = equOperation.getFailureDescription();//故障描述 - String GZYY = equOperation.getReasonAnalyze();//故障原因 - String GZCS = equOperation.getHandlingMethod();//维修措施 - String WXR = equOperation.getRepairPerson();//维修人 - if (GZMS != null) { - equOperation.setFailureDescription(GZMS + formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); - } else { - equOperation.setFailureDescription(formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); - } - if (GZYY != null) { - equOperation.setReasonAnalyze(GZYY + formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); - } else { - equOperation.setReasonAnalyze(formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); - } - if (GZCS != null) { - equOperation.setHandlingMethod(GZCS + formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); - } else { - equOperation.setHandlingMethod(formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); - } - if (WXR != null) { - equOperation.setRepairPerson(WXR + formattedDate + ":" + SecurityUtils.getUsername() + ";"); - } else { - equOperation.setRepairPerson(formattedDate + ":" + SecurityUtils.getUsername() + ";"); - } + ////0.时间 + Date date = DateUtils.getNowDate(); + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + String formattedDate = dateFormat.format(date); - ////4.修改设备状态 由维修中改为正常运行 ;设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行 - EquEquipment equEquipment = new EquEquipment(); - equEquipment.setEquipmentCode(list.getEquipmentCode()); - EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode()); - String equStatus = ""; - if(equ.getEquipmentStatus().equals("0")){ - equStatus = "设备状态由故障转为正常运行;"; - }else if(equ.getEquipmentStatus().equals("2")){ - equStatus = "设备状态由维修中转为正常运行;"; - } - else if(equ.getEquipmentStatus().equals("1")){ - equStatus = "设备状态正常运行;"; - } - // else if(equ.getEquipmentStatus().equals("4")){ - // equStatus = "设备状态由维修保养中转为保养中;"; - // } + ////1.判断是否停机 + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + if (list.getWorkDownMachine().equals("1")) { + equRepairWorkOrder.setActualDownEndTime(date);//维修真正停机时间 + } + equRepairWorkOrder.setWorkEndTime(date);//维修工单结束时间 - if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) { - equOperation.setEquStatusDes(formattedDate + ":" + equStatus); - } else { - equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述 - } + //1.2判断字段里面是否为空,是空的用,用无替代 + if (equRepairWorkOrder.getWorkFaultDesc() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")) {//故障描述 + equRepairWorkOrder.setWorkFaultDesc("无"); + } + if (equRepairWorkOrder.getWorkReason() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")) { //故障原因 + equRepairWorkOrder.setWorkFaultDesc("无"); + } + if (equRepairWorkOrder.getRepairMeasures() == null || equRepairWorkOrder.getRepairMeasures().equals("")) {//故障措施 + equRepairWorkOrder.setRepairMeasures("无"); + } + if (equRepairWorkOrder.getWorkPerson() == null || equRepairWorkOrder.getWorkPerson().equals("")) {//维修人 + equRepairWorkOrder.setWorkPerson("无"); + } - if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){ - equEquipment.setEquipmentStatus("1"); - } - equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - equOperationMapper.updateEquOperation(equOperation); - } + ////2.计算维修工单用时 + 故障停机时间 + if (list.getWorkStartTime() != null && equRepairWorkOrder.getWorkEndTime() != null) { + ////2.1计算维修日期差值 + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime workStart = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId); + LocalDateTime workEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); + LocalDateTime workDateTime = LocalDateTime.from(workStart); + + double workHours = workDateTime.until(workEnd, ChronoUnit.HOURS); + double workMinutes = ((workDateTime.until(workEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; + double workSeconds = ((workDateTime.until(workEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; + double workHour = BigDecimal.valueOf(workHours + workMinutes + workSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour) + "小时"); //塞入维修用时 + + ////2.2 计算故障停机时间差值 + //报修的故障时间 和 快速工单的故障开始时间 + Date downStartTime = new Date(); + if (list.getOrderBreakdownTime() != null) { + downStartTime = list.getOrderBreakdownTime(); + } else if (list.getFaultStartTime() != null) { + downStartTime = list.getFaultStartTime(); } + LocalDateTime downStart = LocalDateTime.ofInstant(downStartTime.toInstant(), zoneId); + LocalDateTime downEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); + LocalDateTime downDateTime = LocalDateTime.from(downStart); + + double downHours = downDateTime.until(downEnd, ChronoUnit.HOURS); + double downMinutes = ((downDateTime.until(downEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; + double downSeconds = ((downDateTime.until(downEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; + double downHour = BigDecimal.valueOf(downHours + downMinutes + downSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + equRepairWorkOrder.setFaultDownTime(String.valueOf(downHour) + "小时"); + } + + //代码注释掉了 改了流程 之前是维修完成后,更改设备状态 和 设备运行报表 现在是审核通过之后,才会扣除 + ////完好率报表 + ////3.1查询当日完好率报表 +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); +// String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); +// EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); + + ////3.2修改完好率报表 +// if (equOperation != null) { +// if (list.getWorkDownMachine().equals("1")) { +// DecimalFormat df = new DecimalFormat("#.##"); +// double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour;//实际运行时间 = 实际运行时间 - 故障停机时间 +// double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour;//故障时间 = 原来的故障停机时间 + 这次的故障停机时间 +// BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障停机时间 +// BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 +// equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 +// equOperation.setFaultTime(String.valueOf(faultTime));//故障停机时间 +// equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); +// equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//故障停机次数加1 +// } +// equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 +// equOperation.setUpdateBy(SecurityUtils.getUsername()); +// equOperation.setUpdateTime(date); +// +// String GZMS = equOperation.getFailureDescription();//故障描述 +// String GZYY = equOperation.getReasonAnalyze();//故障原因 +// String GZCS = equOperation.getHandlingMethod();//维修措施 +// String WXR = equOperation.getRepairPerson();//维修人 +// if (GZMS != null) { +// equOperation.setFailureDescription(GZMS + formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); +// } else { +// equOperation.setFailureDescription(formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); +// } +// if (GZYY != null) { +// equOperation.setReasonAnalyze(GZYY + formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); +// } else { +// equOperation.setReasonAnalyze(formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); +// } +// if (GZCS != null) { +// equOperation.setHandlingMethod(GZCS + formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); +// } else { +// equOperation.setHandlingMethod(formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); +// } +// if (WXR != null) { +// equOperation.setRepairPerson(WXR + formattedDate + ":" + SecurityUtils.getUsername() + ";"); +// } else { +// equOperation.setRepairPerson(formattedDate + ":" + SecurityUtils.getUsername() + ";"); +// } +// +// ////4.修改设备状态 由维修中改为正常运行 ;设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行 +// EquEquipment equEquipment = new EquEquipment(); +// equEquipment.setEquipmentCode(list.getEquipmentCode()); +// EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode()); +// String equStatus = ""; +// if(equ.getEquipmentStatus().equals("0")){ +// equStatus = "设备状态由故障转为正常运行;"; +// }else if(equ.getEquipmentStatus().equals("2")){ +// equStatus = "设备状态由维修中转为正常运行;"; +// } +// else if(equ.getEquipmentStatus().equals("1")){ +// equStatus = "设备状态正常运行;"; +// } +// // else if(equ.getEquipmentStatus().equals("4")){ +// // equStatus = "设备状态由维修保养中转为保养中;"; +// // } +// +// if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) { +// equOperation.setEquStatusDes(formattedDate + ":" + equStatus); +// } else { +// equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述 +// } +// +// if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){ +// equEquipment.setEquipmentStatus("1"); +// } +// equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); +// equOperationMapper.updateEquOperation(equOperation); +// } +// } ////5.更新每一项点检/巡检检查项信息 if (StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())) { @@ -1152,10 +1161,71 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); // BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); // equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); - return success("提交成功,维修完成!"); - } catch (Exception e) { - return error("提交失败!"); - } + + ////9.发送微信提醒 + //发企业微信--------------------开始(跟班组有关) + SimpleDateFormat myFmt = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); + //规范时间格式 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + noticeQo.setNoticeId(22L); + EquTeamUser equTeamUser = new EquTeamUser(); + equTeamUser.setUserName(SecurityUtils.getUsername()); + List notices = equRepairOrderMapper.getNoticesGroup(noticeQo); + if (!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List userCodes = notices.stream() + .map(SysNoticeGroup::getUserCode) + .collect(Collectors.toList()); + for (SysNoticeGroup noticeDto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticeDto.getWxId()); + String contentInfo = noticeDto.getNoticeContent(); + contentInfo = contentInfo + .replace("${n}", "\n") + .replace("${workCode}", equRepairWorkOrder.getWorkCode() + "\n")//工单号 + ; + + //设备编码 + if (StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentCode())) { + contentInfo = contentInfo.replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode() + "\n"); + } else { + contentInfo = contentInfo.replace("${equipmentCode}", "无" + "\n"); + } + + //设备名称 + if (StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentName())) { + contentInfo = contentInfo.replace("${equipmentName}", equRepairWorkOrder.getEquipmentName() + "\n"); + } else { + contentInfo = contentInfo.replace("${equipmentName}", "无" + "\n"); + } + + //维修人 + if (StringUtils.isNotEmpty(equRepairWorkOrder.getWorkPersonName())) { + contentInfo = contentInfo.replace("${workPersonName}", equRepairWorkOrder.getWorkPersonName() + "\n"); + } else { + contentInfo = contentInfo.replace("${workPersonName}", "无" + "\n"); + } + + Pattern p = Pattern.compile("<[^>]+>"); + Matcher m = p.matcher(contentInfo); + contentInfo = m.replaceAll(""); + System.out.println(contentInfo); + + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("维修审核企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + + new Thread(() -> { + AjaxResult wxResult = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("维修审核企业微信提醒:" + JSONObject.toJSONString(wxResult)); + + }).start(); + } + //发企业微信--------------------结束 + } + return success("提交成功,维修完成!"); } /** @@ -1296,4 +1366,30 @@ public class DevicePDAServiceImpl implements IDevicePDAService { SparePartsLedger list = sparePartsLedgerMapper.selectSpareDetailBySpareCode(spareCode); return success(list); } + + /** + * 获取报修列表 + * + * @param + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getBXList(EquRepairOrder equRepairOrder) { + List list = equRepairOrderMapper.selectEquRepairOrderList(equRepairOrder); + return success(list); + } + + /** + * 获取维修列表 + * + * @param + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder) { + List list = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(equRepairWorkOrder); + return success(list); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 4419651d..db8cbfc9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -233,7 +233,7 @@ public class EquOrderServiceImpl implements IEquOrderService { if (repairOrder == null) { return error(500, "未查询到报修单信息!"); } else { - if (!repairOrder.getOrderStatus().equals("待审核")) { + if (!repairOrder.getOrderStatus().equals("2")) { return error(500, "报修单已审核,不可修改记录!"); } } @@ -368,7 +368,7 @@ public class EquOrderServiceImpl implements IEquOrderService { if (equOrder.getPlanType().equals("maintenance")) { equRepairOrder.setOrderSource("保养"); } - equRepairOrder.setOrderStatus("待审核"); + equRepairOrder.setOrderStatus("2"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 86cc4afb..52d2c286 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -153,7 +153,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(SecurityUtils.getUsername()); - equRepairOrder.setOrderStatus("待审核"); + equRepairOrder.setOrderStatus("2"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); @@ -300,12 +300,12 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); ////审核结果 - equRepairOrder.setOrderStatus("审核通过"); + equRepairOrder.setOrderStatus("1"); ////发送微信通知 AjaxResult repairSendWeChatResult = repairSendWeChat(equRepairWorkOrder); } else if (equRepairOrder.getRepairDestination().equals("不维修")) { - equRepairOrder.setOrderStatus("驳回"); + equRepairOrder.setOrderStatus("0"); } else if (equRepairOrder.getRepairDestination().equals("委外维修")) { EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); //id @@ -332,7 +332,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equEquipment.setEquipmentStatus("0"); //0 故障 equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - equRepairOrder.setOrderStatus("审核通过"); + equRepairOrder.setOrderStatus("1"); } else if (equRepairOrder.getRepairDestination().equals("立即维修")) { EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); //维修工单id @@ -362,7 +362,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); ////审核结果 - equRepairOrder.setOrderStatus("审核通过"); + equRepairOrder.setOrderStatus("1"); ////更新设备状态 EquEquipment equEquipment = new EquEquipment(); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 1abbc193..31e4fefd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -14,6 +14,7 @@ import java.util.stream.Collectors; import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.domain.BaseFileData; +import com.op.common.core.exception.auth.NotLoginException; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; @@ -25,6 +26,7 @@ import com.op.device.mapper.*; import com.op.system.api.RemoteOpenService; import com.op.system.api.domain.SysNoticeGroup; import com.op.system.api.domain.dto.WechartDTO; +import org.omg.CORBA.CompletionStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -303,7 +305,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } /** - * 修改维修工单 + * 填写维修工单 * * @param equRepairWorkOrder 维修工单 * @return @@ -312,6 +314,13 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @DS("#header.poolName") // @Transactional//增加事务注解,出错时自动回滚 public AjaxResult write(EquRepairWorkOrder equRepairWorkOrder) { + + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + if(equ == null){ + //不应该用登录的 todo + throw new NotLoginException("设备表中不存在此设备,请确认!"); + } + ////0.今日时间 Date date = DateUtils.getNowDate(); @@ -387,25 +396,93 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard); } - //5.更新运行表 + 更新设备表 - if (equRepairWorkOrder.getWorkStatus().equals("1")) { - int updateOperation = updateEquOperation(equRepairWorkOrder,date); - } // 备件费用 -// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); -// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); -// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); - equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + // BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); + // BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); + // equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); + + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + + ////4.发送微信提醒 + //发企业微信--------------------开始(跟班组有关) + SimpleDateFormat myFmt=new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); + //规范时间格式 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + noticeQo.setNoticeId(22L); + EquTeamUser equTeamUser = new EquTeamUser(); + equTeamUser.setUserName(SecurityUtils.getUsername()); + List notices = equRepairOrderMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List userCodes = notices.stream() + .map(SysNoticeGroup::getUserCode) + .collect(Collectors.toList()); + for (SysNoticeGroup noticeDto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticeDto.getWxId()); + String contentInfo = noticeDto.getNoticeContent(); + contentInfo = contentInfo + .replace("${n}", "\n"); + + //工单号 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkCode())){ + contentInfo = contentInfo.replace("${workCode}", equRepairWorkOrder.getWorkCode() +"\n"); + }else{ + contentInfo = contentInfo.replace("${workCode}", "无"+"\n"); + } + + //设备编码 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentCode())){ + contentInfo = contentInfo.replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode() +"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentCode}", "无"+"\n"); + } + + //设备名称 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentName())){ + contentInfo = contentInfo.replace("${equipmentName}", equRepairWorkOrder.getEquipmentName() +"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentName}", "无"+"\n"); + } + + //维修人 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkPersonName())){ + contentInfo = contentInfo.replace("${workPersonName}", equRepairWorkOrder.getWorkPersonName() +"\n"); + }else{ + contentInfo = contentInfo.replace("${workPersonName}", "无"+"\n"); + } + + Pattern p= Pattern.compile("<[^>]+>"); + Matcher m = p.matcher(contentInfo); + contentInfo = m.replaceAll(""); + System.out.println(contentInfo); + + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("维修审核企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + + new Thread(() -> { + AjaxResult wxResult = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("维修审核企业微信提醒:" + JSONObject.toJSONString(wxResult)); + + }).start(); + } + //发企业微信--------------------结束 + } + return success("提交成功,维修完成!"); } - //5.更新运行表 + 设备表 - private int updateEquOperation(EquRepairWorkOrder equRepairWorkOrder,Date date) { - //5.1时间 + //更新运行表 + 设备表 + private String updateEquOperation(EquRepairWorkOrder equRepairWorkOrder) { + String msg = ""; + //1.时间 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - String formattedDate = dateFormat.format(date); + String formattedDate = dateFormat.format(DateUtils.getNowDate()); - //5.2维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时 + //2.维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时 if(equRepairWorkOrder.getWorkDownMachine().equals("0")){ equRepairWorkOrder.setFaultDownTime("0.0小时"); } @@ -461,20 +538,27 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equOperation.setRepairPerson(formattedDate + ":" + equRepairWorkOrder.getWorkPerson() + ";"); } } + //当获取的设备运行记录为空的时候,代表没有生成,这块让上位机卡住 todo - //5.3设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行 + //3设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode()); String equStatus = ""; + //todo 维修保养中 和维修中 和保养中!!!!!!!!!!!!!!!!!!!!!!! 需要修改状态 if(equ.getEquipmentStatus().equals("0")){ equStatus = "设备状态由故障转为正常运行;"; }else if(equ.getEquipmentStatus().equals("2")){ equStatus = "设备状态由维修中转为正常运行;"; + }else if(equ.getEquipmentStatus().equals("1")){ + equStatus = "设备状态在审核前,已由其他人员修改为正常;"; + msg = "【"+equRepairWorkOrder.getEquipmentCode()+"】"+"设备状态在审核前,已由其他人员修改为正常!"; + logger.info(msg); + } else if(equ.getEquipmentStatus().equals("4")){ + equStatus = "设备状态由维修保养中转为保养中;"; + }else if(equ.getEquipmentStatus() == null){ + throw new NotLoginException("设备表中,此设备状态为空!"); } -// else if(equ.getEquipmentStatus().equals("4")){ -// equStatus = "设备状态由维修保养中转为保养中;"; -// } if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) { equOperation.setEquStatusDes(formattedDate + ":" + equStatus); @@ -482,14 +566,14 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述 } - if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){ + if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")|| equ.getEquipmentStatus().equals("1")){ equEquipment.setEquipmentStatus("1"); + } else if(equ.getEquipmentStatus().equals("4")){//如果是4维修保养中,改为保养中 + equEquipment.setEquipmentStatus("3"); } -// else if(equ.getEquipmentStatus().equals("4")){//如果是维修保养中,改为保养中 -// equEquipment.setEquipmentStatus("3"); -// } equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - return equOperationMapper.updateEquOperation(equOperation); + equOperationMapper.updateEquOperation(equOperation); + return msg; } /** @@ -560,21 +644,47 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } /** - * 维修工单检验 + * 维修工单审核(可以批量审核) + * 手持和PC共用一个接口 * * @param upKeepOrderDTO * @return */ @Override @DS("#header.poolName") - public AjaxResult subInspect(UpKeepOrderDTO upKeepOrderDTO) { + public AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO) { + String msg = ""; List ids = upKeepOrderDTO.getIds(); for (String id : ids) { EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); equRepairWorkOrder.setWorkId(id); String resultInspect = upKeepOrderDTO.getInspect(); - equRepairWorkOrder.setResultInspect(resultInspect); + + //1.1 审核通过后 更新运行表 + 更新设备表 1审核通过 + EquRepairWorkOrder dto = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(id); + if (dto.getWorkStatus().equals("1") && resultInspect.equals("1")) { + msg = updateEquOperation(dto); + //2.1 + equRepairWorkOrder.setResultInspect(resultInspect);//审核状态为完成 + } + + //1.2 如果审核驳回 回退到待维修状态 0审核驳回 + if(dto.getWorkStatus().equals("1") && resultInspect.equals("0")){ + dto.setWorkStatus("0");//待维修 + dto.setWorkEndTime(null);//工单结束时间空 工单开始的时间是从第一次开始的 !!! + // todo 当待维修的时候,要判断一下 有没有开始时间 如果有的话,不能覆盖掉 这个做完了 等待检查 + dto.setWorkCostTime(null);//工单花费时间 + dto.setFaultDownTime(null);//故障停机时间 + dto.setActualDownEndTime(null);//故障停机时间 + equRepairWorkOrderMapper.returnRepairWorkOrder(dto); + //2.2 + equRepairWorkOrder.setResultInspect("2");//审核状态为待审核 + } + + //2.审核状态更新完成 equRepairWorkOrderMapper.updateResultInspect(equRepairWorkOrder); + + //2.3 todo 被驳回之后,需要再次发微信消息给维修班组吗???目前是在审核后通知的时候 会在备注里面 } String workCodes = ""; @@ -585,11 +695,11 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService String inspect = ""; if(upKeepOrderDTO.getInspect().equals("0")){ - inspect = "不通过" ; + inspect = "驳回" ; }else if(upKeepOrderDTO.getInspect().equals("1")){ - inspect = "通过" ; + inspect = "审核通过" ; }else{ - inspect = "待检验" ; + inspect = "待审核" ; } //发企业微信--------------------开始(跟班组有关) @@ -632,6 +742,15 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService contentInfo = contentInfo.replace("${checkPeople}", "无"+"\n"); } + //备注 备注和驳回有关系 + if(inspect.equals("驳回") && StringUtils.isNotEmpty(upKeepOrderDTO.getAuditOpinion())){ + contentInfo = contentInfo.replace("${remark}", "工单被审核人驳回,驳回理由为【"+upKeepOrderDTO.getAuditOpinion()+"】请再次进行维修!"+"\n"); + }else if(inspect.equals("驳回") && StringUtils.isEmpty(upKeepOrderDTO.getAuditOpinion())){ + contentInfo = contentInfo.replace("${remark}", "工单被审核人驳回,请再次进行维修!"+"\n"); + }else{ + contentInfo = contentInfo.replace("${remark}", "无"+"\n"); + } + Pattern p= Pattern.compile("<[^>]+>"); Matcher m = p.matcher(contentInfo); contentInfo = m.replaceAll(""); @@ -640,17 +759,21 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService wechart0.setText(contentInfo); wecharts.add(wechart0); } - logger.info("维修结果检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + logger.info("维修审核结果企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); if (!CollectionUtils.isEmpty(wecharts)) { new Thread(() -> { AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); - logger.info("维修结果检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + logger.info("维修审核结果企业微信提醒:" + JSONObject.toJSONString(wxresult)); }).start(); } //发企业微信--------------------结束 } - return success(); + + if(msg.equals("")){ + msg = "审核成功!"; + } + return success(msg); } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index fdaac173..f6f3b019 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -30,6 +30,7 @@ + @@ -75,41 +76,26 @@ - select order_id, order_code, equipment_code, order_desc, order_breakdown_time, order_source, order_time, order_handle, order_repairman_code,order_repairman_name, order_connection, order_status, order_relevance, order_picture, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time,factory_code,repair_destination from equ_repair_order + select order_id, order_code, equipment_code, order_desc, order_breakdown_time, order_source, order_time, order_handle, order_repairman_code,order_repairman_name, order_connection, order_status, order_relevance, order_picture, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time,factory_code,repair_destination,audit_opinion from equ_repair_order @@ -138,6 +139,7 @@ erwo.fault_down_time, erwo.fault_start_time, erwo.result_inspect, + erwo.remark, be.equipment_name, et.team_name, et.team_person @@ -145,6 +147,9 @@ left join base_equipment be on erwo.equipment_code = be.equipment_code left join equ_team et on erwo.work_team = et.team_code + + and ( erwo.result_inspect = '2' or erwo.result_inspect = '1') + and erwo.result_inspect = #{resultInspect} and erwo.order_id = #{orderId} and erwo.work_code like concat('%', #{workCode}, '%') @@ -236,6 +241,8 @@ erwo.fault_down_time, erwo.fault_start_time, erwo.result_inspect, + erwo.remark, + erwo.audit_opinion, be.equipment_name, et.team_name, et.team_person @@ -290,6 +297,8 @@ erwo.fault_down_time, erwo.fault_start_time, erwo.result_inspect, + erwo.remark, + erwo.audit_opinion, be.equipment_name, be.equipment_spec, be.equipment_type_name, @@ -360,6 +369,8 @@ fault_down_time, fault_start_time, result_inspect, + remark, + audit_opinion, #{workId}, @@ -403,6 +414,8 @@ #{faultDownTime}, #{faultStartTime}, #{resultInspect}, + #{remark}, + #{auditOpinion}, @@ -448,6 +461,8 @@ repair_measures = #{repairMeasures}, fault_down_time = #{faultDownTime}, fault_start_time = #{faultStartTime}, + remark = #{remark}, + audit_opinion = #{auditOpinion}, where work_id = #{workId} and del_flag = '0' @@ -456,7 +471,8 @@ update equ_repair_work_order set - result_inspect = #{resultInspect} + result_inspect = #{resultInspect}, + audit_opinion = #{auditOpinion} where work_id = #{workId} @@ -554,4 +570,16 @@ and del_flag = '0' + + update equ_repair_work_order + set + work_status = #{workStatus}, + fault_down_time = #{faultDownTime}, + work_end_time = #{workEndTime}, + work_cost_time = #{workCostTime}, + actual_down_end_time = #{actualDownEndTime} + where work_id = #{workId} + and del_flag = '0' + + diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 9bbb18be..b257dbf8 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -303,7 +303,7 @@ public class OpenServiceImpl implements OpenService { } equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(equRepairOrderDTO.getUserName()); - equRepairOrder.setOrderStatus("待审核"); // 报修单状态 + equRepairOrder.setOrderStatus("2"); // 报修单状态 equRepairOrder.setFactoryCode(equRepairOrderDTO.getFactory()); // 工厂 if (equRepairOrderDTO.getPhoneNumber() != null) { equRepairOrder.setOrderConnection(equRepairOrderDTO.getPhoneNumber()); // 联系方式