|
|
@ -1,6 +1,8 @@
|
|
|
|
package com.op.device.service.impl;
|
|
|
|
package com.op.device.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
|
|
import java.math.RoundingMode;
|
|
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
@ -47,6 +49,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private EquSpareApplyMapper equSpareApplyMapper;
|
|
|
|
private EquSpareApplyMapper equSpareApplyMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private EquOperationMapper equOperationMapper;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查询维修工单
|
|
|
|
* 查询维修工单
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -152,18 +157,19 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
|
|
|
|
* 修改维修工单
|
|
|
|
* 修改维修工单
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param equRepairWorkOrder 维修工单
|
|
|
|
* @param equRepairWorkOrder 维修工单
|
|
|
|
* @return 结果outSourcePerson
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@DS("#header.poolName")
|
|
|
|
@DS("#header.poolName")
|
|
|
|
public int updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder) {
|
|
|
|
public int updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder) {
|
|
|
|
|
|
|
|
//1.是否停机
|
|
|
|
if(equRepairWorkOrder.getWorkDownMachine().equals("0")){
|
|
|
|
if(equRepairWorkOrder.getWorkDownMachine().equals("0")){
|
|
|
|
equRepairWorkOrder.setWorkPlanDownTime(null);
|
|
|
|
equRepairWorkOrder.setWorkPlanDownTime(null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername());
|
|
|
|
equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername());
|
|
|
|
equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
|
|
|
|
|
//先删除每个维修工单对应图片
|
|
|
|
//2.先删除每个维修工单对应图片,再新增照片
|
|
|
|
equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId());
|
|
|
|
equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId());
|
|
|
|
if (StringUtils.isNotEmpty(equRepairWorkOrder.getAfterRepairFile())) {
|
|
|
|
if (StringUtils.isNotEmpty(equRepairWorkOrder.getAfterRepairFile())) {
|
|
|
|
String[] ids = equRepairWorkOrder.getAfterRepairFile().split(",");
|
|
|
|
String[] ids = equRepairWorkOrder.getAfterRepairFile().split(",");
|
|
|
@ -184,7 +190,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
|
|
|
|
equRepairWorkOrderMapper.insertBaseFileBatch(files);
|
|
|
|
equRepairWorkOrderMapper.insertBaseFileBatch(files);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//更新标准表
|
|
|
|
//3.更新标准表
|
|
|
|
for(EquOrderStandard equOrderStandard:equRepairWorkOrder.getStandardList()){
|
|
|
|
for(EquOrderStandard equOrderStandard:equRepairWorkOrder.getStandardList()){
|
|
|
|
//先删除每个检查项标准图片
|
|
|
|
//先删除每个检查项标准图片
|
|
|
|
String imageType = "4";
|
|
|
|
String imageType = "4";
|
|
|
@ -214,18 +220,44 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
|
|
|
|
equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard);
|
|
|
|
equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//5.更新设备状态
|
|
|
|
if(equRepairWorkOrder.getWorkStatus().equals("1")){
|
|
|
|
if(equRepairWorkOrder.getWorkStatus().equals("1")){
|
|
|
|
//修改设备状态 由维修中改为正常运行
|
|
|
|
//5.1修改设备状态 由维修中改为正常运行
|
|
|
|
EquEquipment equEquipment = new EquEquipment();
|
|
|
|
EquEquipment equEquipment = new EquEquipment();
|
|
|
|
equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode());
|
|
|
|
equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode());
|
|
|
|
equEquipment.setEquipmentStatus("1");
|
|
|
|
equEquipment.setEquipmentStatus("1");
|
|
|
|
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
|
|
|
|
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//5.2维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时
|
|
|
|
|
|
|
|
String hours = equRepairWorkOrder.getWorkCostTime().substring(0,equRepairWorkOrder.getWorkCostTime().length()-2); //截掉后两位
|
|
|
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
|
|
String time = sdf.format(equRepairWorkOrder.getWorkEndTime());
|
|
|
|
|
|
|
|
EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time,equRepairWorkOrder.getEquipmentCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(equOperation != null){
|
|
|
|
|
|
|
|
DecimalFormat df = new DecimalFormat("#.##");
|
|
|
|
|
|
|
|
//实际运行时间 = 实际运行时间 - 故障时间
|
|
|
|
|
|
|
|
double result = Double.parseDouble(equOperation.getActualOperationTime()) - Double.parseDouble(hours);
|
|
|
|
|
|
|
|
//故障时间 = 原来的故障时间 + 这次的故障时间
|
|
|
|
|
|
|
|
double faultTime = Double.parseDouble(equOperation.getFaultTime()) + Double.parseDouble(hours);
|
|
|
|
|
|
|
|
equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间
|
|
|
|
|
|
|
|
equOperation.setFaultTime(String.valueOf(faultTime));//故障时间
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障时间
|
|
|
|
|
|
|
|
BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());// 运行时间
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 故障率计算(故障时间/运行时间)
|
|
|
|
|
|
|
|
equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD,2, RoundingMode.HALF_UP).toString()+"%");
|
|
|
|
|
|
|
|
equOperation.setUpdateBy(SecurityUtils.getUsername());
|
|
|
|
|
|
|
|
equOperation.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
|
equOperationMapper.updateEquOperation(equOperation);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 费用
|
|
|
|
// 备件费用
|
|
|
|
BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode());
|
|
|
|
// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode());
|
|
|
|
BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost()));
|
|
|
|
// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost()));
|
|
|
|
equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost)));
|
|
|
|
// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost)));
|
|
|
|
|
|
|
|
|
|
|
|
return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
|
|
|
|
return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|