设备 维修---->设备完好率(一天内多次)

master
A0010407 1 year ago
parent d307cd97f4
commit a68a3ac1a8

@ -86,4 +86,10 @@ public interface EquOperationMapper {
// 分批次删除 // 分批次删除
int deleteOperation(@Param("delSize") int delSize); int deleteOperation(@Param("delSize") int delSize);
/**
*
* @return
*/
public EquOperation selectEquipmentIntegrityRate(@Param("time")String time, @Param("equipmentCode")String equipmentCode);
} }

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

@ -256,4 +256,11 @@
ORDER BY id ORDER BY id
OFFSET 0 ROWS FETCH NEXT #{delSize} ROWS ONLY) OFFSET 0 ROWS FETCH NEXT #{delSize} ROWS ONLY)
</delete> </delete>
<select id="selectEquipmentIntegrityRate" parameterType = "String" resultMap="EquOperationResult">
<include refid="selectEquOperationVo"/>
where CONVERT(varchar,create_time,21) like concat('%',#{time}, '%')
and equipment_code = #{equipmentCode}
</select>
</mapper> </mapper>
Loading…
Cancel
Save