2024-08-13 设备模块+open模块 PC报修维修审核流程修改+手持报修维修接口

master
A0010407 6 months ago
parent 24f317f286
commit 1e9841a700

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

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

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

@ -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)

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

@ -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<EquSpareApply> 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<Date> getApplyTimeArray() {
return applyTimeArray;
}
public void setApplyTimeArray(List<Date> 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<EquSpareApply> getSpareApplyLists() {
return this.spareApplyLists;
}
/**
*
*/
public void setSpareApplyLists(List<EquSpareApply> 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;
}

@ -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<String> orderCodes) {
this.orderCodes = orderCodes;
}
//新增 审核意见
public String getAuditOpinion() {
return auditOpinion;
}
public void setAuditOpinion(String auditOpinion) {
this.auditOpinion = auditOpinion;
}
}

@ -118,4 +118,7 @@ public interface EquRepairWorkOrderMapper {
//更新结果检验
void updateResultInspect(EquRepairWorkOrder equRepairWorkOrder);
//回退维修工单
void returnRepairWorkOrder(EquRepairWorkOrder dto);
}

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

@ -71,5 +71,6 @@ public interface IEquRepairWorkOrderService {
public int applyEquOutsourceWork(EquRepairWorkOrder equRepairWorkOrder);
//维修故障检验
AjaxResult subInspect(UpKeepOrderDTO upKeepOrderDTO);
AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO);
}

@ -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<SysNoticeGroup> notices = equRepairOrderMapper.getNoticesGroup(noticeQo);
if (!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>();
List<String> 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<EquRepairOrder> list = equRepairOrderMapper.selectEquRepairOrderList(equRepairOrder);
return success(list);
}
/**
*
*
* @param
* @return
*/
@Override
@DS("#header.poolName")
public AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder) {
List<EquRepairWorkOrder> list = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(equRepairWorkOrder);
return success(list);
}
}

@ -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_", ""));

@ -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();

@ -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<SysNoticeGroup> notices = equRepairOrderMapper.getNoticesGroup(noticeQo);
if(!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>();
List<String> 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<String> 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);
}
}

@ -30,6 +30,7 @@
<result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/>
<result property="repairDestination" column="repair_destination"/>
<result property="auditOpinion" column="audit_opinion"/>
<!-- 设备 -->
<result property="equipmentTypeName" column="equipment_type_name"/>
<result property="equipmentName" column="equipment_name"/>
@ -75,41 +76,26 @@
</sql>
<sql id="selectEquRepairOrderVo">
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
</sql>
<select id="selectEquRepairOrderList" parameterType="EquRepairOrder" resultMap="EquRepairOrderResult">
<include refid="selectEquRepairOrderVo"/>
<where>
<if test="orderCode != null and orderCode != ''">and order_code like concat('%', #{orderCode}, '%')</if>
<if test="equipmentCode != null and equipmentCode != ''">and equipment_code like concat('%',
#{equipmentCode}, '%')
</if>
<if test="equipmentCode != null and equipmentCode != ''">and equipment_code like concat('%',#{equipmentCode}, '%')</if>
<if test="orderDesc != null and orderDesc != ''">and order_desc like concat('%', #{orderDesc}, '%')</if>
<!--故障开始时间 结束时间-->
<if test="orderBreakdownTimeStart != null ">and CONVERT(date,order_breakdown_time) >=
#{orderBreakdownTimeStart}
</if>
<if test="orderBreakdownTimeEnd != null ">and #{orderBreakdownTimeEnd} >=
CONVERT(date,order_breakdown_time)
</if>
<if test="orderSource != null and orderSource != ''">and order_source like concat('%', #{orderSource},
'%')
</if>
<if test="orderBreakdownTimeStart != null ">and CONVERT(date,order_breakdown_time) >= #{orderBreakdownTimeStart}</if>
<if test="orderBreakdownTimeEnd != null ">and #{orderBreakdownTimeEnd} >= CONVERT(date,order_breakdown_time)</if>
<if test="orderSource != null and orderSource != ''">and order_source like concat('%', #{orderSource},'%')</if>
<!--报修开始时间 结束时间-->
<if test="orderTimeStart != null ">and CONVERT(date,order_time) >= #{orderTimeStart}</if>
<if test="orderTimeEnd != null ">and #{orderTimeEnd} >= CONVERT(date,order_time)</if>
<if test="orderHandle != null and orderHandle != ''">and order_handle = #{orderHandle}</if>
<if test="orderRepairmanCode != null and orderRepairmanCode != ''">and order_repairman_code like
concat('%', #{orderRepairmanCode}, '%')
</if>
<if test="orderRepairmanName != null and orderRepairmanName != ''">and order_repairman_name like
concat('%', #{orderRepairmanName}, '%')
</if>
<if test="orderConnection != null and orderConnection != ''">and order_connection like concat('%',
#{orderConnection}, '%')
</if>
<if test="orderStatus != null and orderStatus != ''">and order_status = #{orderStatus}</if>
<if test="orderRepairmanCode != null and orderRepairmanCode != ''">and order_repairman_code like concat('%', #{orderRepairmanCode}, '%')</if>
<if test="orderRepairmanName != null and orderRepairmanName != ''">and order_repairman_name like concat('%', #{orderRepairmanName}, '%')</if>
<if test="orderConnection != null and orderConnection != ''">and order_connection like concat('%',#{orderConnection}, '%')</if>
<if test="orderRelevance != null and orderRelevance != ''">and order_relevance = #{orderRelevance}</if>
<if test="orderPicture != null and orderPicture != ''">and order_picture = #{orderPicture}</if>
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
@ -118,9 +104,10 @@
<if test="createTime != null and createTime != ''">and create_time = #{createTime}</if>
<if test="createBy != null and createBy != ''">and create_by = #{createBy}</if>
<if test="factoryCode != null and factoryCode != ''">and factory_code = #{factoryCode}</if>
<if test="repairDestination != null and repairDestination != ''">and repair_destination =
#{repairDestination}
</if>
<if test="repairDestination != null and repairDestination != ''">and repair_destination =#{repairDestination}</if>
<!--审核-->
<if test="orderStatus == null or orderStatus == '' ">and (order_status = '2' or order_status = '1')</if>
<if test="orderStatus != null and orderStatus != '' ">and order_status = #{orderStatus} </if>
and del_flag = '0'
ORDER BY create_time DESC
</where>
@ -148,6 +135,7 @@
ero.update_time,
ero.factory_code,
ero.repair_destination,
ero.audit_opinion,
be.equipment_name,
be.equipment_type_name,
be.equipment_spec,
@ -197,6 +185,7 @@
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null">factory_code,</if>
<if test="repairDestination != null">repair_destination,</if>
<if test="auditOpinion != null">audit_opinion,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderId != null">#{orderId},</if>
@ -223,6 +212,7 @@
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null">#{factoryCode},</if>
<if test="repairDestination != null">#{repairDestination},</if>
<if test="auditOpinion != null">#{auditOpinion},</if>
</trim>
</insert>
@ -252,6 +242,7 @@
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="factoryCode != null">factory_code = #{factoryCode},</if>
<if test="repairDestination != null">repair_destination = #{repairDestination},</if>
<if test="auditOpinion != null">audit_opinion = #{auditOpinion},</if>
</trim>
where order_id = #{orderId}
</update>

@ -47,7 +47,8 @@
<result property="faultDownTime" column="fault_down_time"/>
<result property="faultStartTime" column="fault_start_time"/>
<result property="resultInspect" column="result_inspect"/>
<result property="remark" column="remark"/>
<result property="auditOpinion" column="audit_opinion"/>
<!--设备-->
<result property="equipmentName" column="equipment_name"/>
<result property="equipmentSpec" column="equipment_spec"/>
@ -92,7 +93,7 @@
</sql>
<sql id="selectEquRepairWorkOrderVo">
select work_id, order_id, order_code, work_code,work_handle, work_plan_time, work_plan_down_time, order_relevance, work_person, work_team, work_outsource, work_down_machine, equipment_code, work_reason, work_fault_desc, work_start_time,work_end_time,work_cost_time, work_cost, work_status,out_work_id, out_work_code, attr1, attr2, attr3, create_by, create_time, update_time, update_by, del_flag, factory_code , fault_type , equipment_status_description , repair_measures , fault_down_time , fault_start_time ,result_inspect,work_person_name from equ_repair_work_order
select work_id, order_id, order_code, work_code,work_handle, work_plan_time, work_plan_down_time, order_relevance, work_person, work_team, work_outsource, work_down_machine, equipment_code, work_reason, work_fault_desc, work_start_time,work_end_time,work_cost_time, work_cost, work_status,out_work_id, out_work_code, attr1, attr2, attr3, create_by, create_time, update_time, update_by, del_flag, factory_code , fault_type , equipment_status_description , repair_measures , fault_down_time , fault_start_time ,result_inspect,work_person_name,remark,audit_opinion from equ_repair_work_order
</sql>
<select id="selectEquRepairWorkOrderList" parameterType="EquRepairWorkOrder" resultMap="EquRepairWorkOrderResult">
@ -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
<where>
<!--审核-->
<if test="resultInspect == null or resultInspect == '' ">and ( erwo.result_inspect = '2' or erwo.result_inspect = '1')</if>
<if test="resultInspect != null and resultInspect != '' ">and erwo.result_inspect = #{resultInspect} </if>
<!--报修id 维修code 报修code-->
<if test="orderId != null and orderId != ''">and erwo.order_id = #{orderId}</if>
<if test="workCode != null and workCode != ''">and erwo.work_code like concat('%', #{workCode}, '%')</if>
@ -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 @@
<if test="faultDownTime != null">fault_down_time,</if>
<if test="faultStartTime != null">fault_start_time,</if>
<if test="resultInspect != null">result_inspect,</if>
<if test="remark != null">remark,</if>
<if test="auditOpinion != null">audit_opinion,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="workId != null">#{workId},</if>
@ -403,6 +414,8 @@
<if test="faultDownTime != null">#{faultDownTime},</if>
<if test="faultStartTime != null">#{faultStartTime},</if>
<if test="resultInspect != null">#{resultInspect},</if>
<if test="remark != null">#{remark},</if>
<if test="auditOpinion != null">#{auditOpinion},</if>
</trim>
</insert>
@ -448,6 +461,8 @@
<if test="repairMeasures != null">repair_measures = #{repairMeasures},</if>
<if test="faultDownTime != null">fault_down_time = #{faultDownTime},</if>
<if test="faultStartTime != null">fault_start_time = #{faultStartTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="auditOpinion != null">audit_opinion = #{auditOpinion},</if>
</trim>
where work_id = #{workId}
and del_flag = '0'
@ -456,7 +471,8 @@
<update id="updateResultInspect" parameterType="EquRepairWorkOrder">
update equ_repair_work_order
set
result_inspect = #{resultInspect}
result_inspect = #{resultInspect},
audit_opinion = #{auditOpinion}
where work_id = #{workId}
</update>
@ -554,4 +570,16 @@
and del_flag = '0'
</update>
<update id="returnRepairWorkOrder" parameterType="EquRepairWorkOrder">
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'
</update>
</mapper>

@ -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()); // 联系方式

Loading…
Cancel
Save