设备故障率报表逻辑修改

master
Yangwl 4 days ago
parent f5fca9b5b1
commit 29e59c06be

@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
/**
*
@ -54,4 +55,8 @@ public interface RemoteDeviceService {
@PostMapping("/faultReport/check")
public R check(@RequestBody DeviceRepairOrder deviceRepairOrder);
//更新设备运行时间,实际运行时间,故障率
@PostMapping("/repairOrder/updateDeviceRunTimeORRate")
public R updateDeviceRunTimeORRate(Map map);
}

@ -11,6 +11,7 @@ import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
*
@ -69,6 +70,11 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory<RemoteDevice
public R check(DeviceRepairOrder deviceRepairOrder) {
return R.fail("自动审核通过失败:" + throwable.getMessage());
}
@Override
public R updateDeviceRunTimeORRate(Map map) {
return R.fail("更新设备运行时间、实际运行时间、故障率失败:" + throwable.getMessage());
}
};
}
}

@ -1,6 +1,7 @@
package com.op.device.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.op.device.domain.EquEquipment;
@ -156,4 +157,9 @@ public class EquRepairWorkOrderController extends BaseController {
public AjaxResult checkRepairWorkOrder(@RequestBody UpKeepOrderDTO upKeepOrderDTO) {
return equRepairWorkOrderService.checkRepairWorkOrder(upKeepOrderDTO);
}
@PostMapping("/updateDeviceRunTimeORRate")
public AjaxResult updateDeviceRunTimeORRate(@RequestBody Map map) {
return equRepairWorkOrderService.updateDeviceRunTimeORRate(map);
}
}

@ -6,6 +6,7 @@ import com.op.device.domain.EquOperation;
import com.op.device.domain.Equipment;
import java.util.List;
import java.util.Map;
/**
* Mapper
@ -72,4 +73,6 @@ public interface EquEquipmentMapper {
List<EquEquipment> selectEquipmentList(EquEquipment equEquipment);
//查询组线为空的设备列表
List<EquEquipment> selectGroupLineNullList(EquEquipment equEquipment);
}
List<Map> selectAuxiliaryEquipmentList(Map map);
}

@ -96,4 +96,7 @@ public interface EquOperationMapper {
public EquOperation selectEquipmentIntegrityRate(@Param("time") String time, @Param("equipmentCode") String equipmentCode);
String getInfoByUserName(String part);
public EquOperation selectEquOperationByCode(EquOperation equOperation);
}

@ -1,6 +1,7 @@
package com.op.device.service;
import java.util.List;
import java.util.Map;
import com.op.common.core.web.domain.AjaxResult;
import com.op.device.domain.EquEquipment;
@ -73,6 +74,8 @@ public interface IEquRepairWorkOrderService {
//维修故障检验
AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO);
AjaxResult updateDeviceRunTimeORRate(Map map);
//是否存在
// boolean checkWorkCodeUnique(EquRepairWorkOrder equRepairWorkOrder);
}

@ -4,9 +4,12 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -80,6 +83,8 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
@Autowired
private EquRepairOrderMapper equRepairOrderMapper;
/**
*
*
@ -788,6 +793,45 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
return success(msg);
}
@Override
@DS("#header.poolName")
public AjaxResult updateDeviceRunTimeORRate(Map map) {
//查询产线绑定的设备情况
try {
List<Map> mapList = equEquipmentMapper.selectAuxiliaryEquipmentList(map);
EquOperation equOperation=new EquOperation();
for (Map mas:mapList){
System.out.println();
//查询设备有没有生成记录
String equipmentCode = mas.get("equipmentCode").toString();
String Time = map.get("productDate").toString();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(Time, formatter);
equOperation.setCreateTime(java.sql.Date.valueOf(localDate));
equOperation.setEquipmentCode(equipmentCode);
EquOperation operation = equOperationMapper.selectEquOperationByCode(equOperation);
DecimalFormat df = new DecimalFormat("#.##");
if (operation!=null){
//更新运行时间以及实际运行时间、故障率
equOperation.setId(operation.getId());
equOperation.setOperationTime(map.get("RunTime").toString());
//实际运行时间 = 实际运行时间 - 故障时间
double result = Double.parseDouble(map.get("RunTime").toString()) - Double.parseDouble(operation.getFaultTime());
equOperation.setActualOperationTime(String.valueOf(df.format(result)));
//故障率计算(故障时间/运行时间)
BigDecimal faultTimeBD = new BigDecimal(operation.getFaultTime());
BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间
equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%");
equOperationMapper.updateEquOperation(equOperation);
}
}
}catch (Exception e){
return error(e.getMessage());
}
return success();
}
// @Override
// @DS("#header.poolName")
// public boolean checkWorkCodeUnique(EquRepairWorkOrder equRepairWorkOrder) {

@ -313,5 +313,17 @@
and be.del_flag = '0'
</where>
</select>
<select id="selectAuxiliaryEquipmentList" resultType="java.util.Map">
select
ebac.auxiliary_equipment_code AS equipmentCode,
be.equipment_name AS equipmentName,
be.equipment_status AS equipmentStatus
from equ_bind_auxiliary_equipment ebac
left join base_equipment be on ebac.auxiliary_equipment_code = be.equipment_code
where ebac.equipment_code = #{equipmentCode}
and ebac.del_flag = '0'
and be.del_flag = '0'
order by ebac.auxiliary_equipment_code asc
</select>
</mapper>

@ -56,7 +56,7 @@
<select id="selectEquFaultDescriptionByFaultId" parameterType="String" resultMap="EquFaultDescriptionResult">
<include refid="selectEquFaultDescriptionVo"/>
where fault_id = #{faultId}
where efd.fault_id = #{faultId}
</select>
<insert id="insertEquFaultDescription" parameterType="EquFaultDescription">

@ -105,6 +105,12 @@
where id = #{id}
</select>
<select id="selectEquOperationByCode" parameterType="EquOperation" resultMap="EquOperationResult">
<include refid="selectEquOperationVo"/>
where equipment_code= #{equipmentCode}
AND CAST(create_time AS DATE) = #{createTime}
</select>
<select id="selectEquipmentOperationTime" resultType="java.lang.String">
select top 1 da.dict_value
from sys_dict_data da

@ -17,6 +17,7 @@ import com.op.mes.domain.dto.BaseEquipmentDto;
import com.op.mes.domain.dto.LGInfoDto;
import com.op.mes.mapper.*;
import com.op.mes.service.IWCSInterfaceService;
import com.op.system.api.RemoteDeviceService;
import com.op.system.api.RemoteSapService;
import com.op.system.api.RemoteUserService;
import com.op.system.api.domain.SysDept;
@ -72,6 +73,9 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
@Autowired
private RemoteSapService remoteSapService;
@Autowired
private RemoteDeviceService remoteDeviceService;
@Autowired
private MesReportWorkConsumeMapper mesReportWorkConsumeMapper;
@ -592,6 +596,14 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
}
}
//更新产线设备运行时间,故障率
logger.info("==========================更新产线设备运行时间,故障率开始");
Map updateDeviceParam=new HashMap();
updateDeviceParam.put("RunTime",mesReportWork.getWorkTime());
updateDeviceParam.put("equipmentCode",mesReportWork.getMachineCode());
updateDeviceParam.put("productDate",mesReportWork.getProductDate());
R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam);
logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg());
return sapRson;
} catch (Exception e) {
return R.fail("报工失败:"+e.getMessage());

Loading…
Cancel
Save