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