设备完好率更新逻辑修改

master
Yangwl 1 day ago
parent 7969709b5b
commit 9ccdb02852

@ -58,5 +58,5 @@ public interface RemoteDeviceService {
//更新设备运行时间,实际运行时间,故障率
@PostMapping("/repairOrder/updateDeviceRunTimeORRate")
public R updateDeviceRunTimeORRate(Map map);
public R updateDeviceRunTimeORRate();
}

@ -72,7 +72,7 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory<RemoteDevice
}
@Override
public R updateDeviceRunTimeORRate(Map map) {
public R updateDeviceRunTimeORRate() {
return R.fail("更新设备运行时间、实际运行时间、故障率失败:" + throwable.getMessage());
}
};

@ -159,7 +159,7 @@ public class EquRepairWorkOrderController extends BaseController {
}
@PostMapping("/updateDeviceRunTimeORRate")
public AjaxResult updateDeviceRunTimeORRate(@RequestBody Map map) {
return equRepairWorkOrderService.updateDeviceRunTimeORRate(map);
public AjaxResult updateDeviceRunTimeORRate() {
return equRepairWorkOrderService.updateDeviceRunTimeORRate();
}
}

@ -99,4 +99,5 @@ public interface EquOperationMapper {
public List<EquOperation> selectEquOperationByCode(EquOperation equOperation);
List<Map> selectEquRunTimeByDate(String createTime);
}

@ -74,7 +74,7 @@ public interface IEquRepairWorkOrderService {
//维修故障检验
AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO);
AjaxResult updateDeviceRunTimeORRate(Map map);
AjaxResult updateDeviceRunTimeORRate();
//是否存在
// boolean checkWorkCodeUnique(EquRepairWorkOrder equRepairWorkOrder);

@ -6,10 +6,7 @@ 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.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -795,10 +792,46 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
}
@Override
public AjaxResult updateDeviceRunTimeORRate(Map map) {
public AjaxResult updateDeviceRunTimeORRate() {
try {
DynamicDataSourceContextHolder.push("ds_1000");
//更新产线设备运行时间,故障率
logger.info("==========================更新产线设备运行时间,故障率开始");
//查询当天产线的生产情况
// 设置日期格式
LocalDate today = LocalDate.now();
// 计算前一天
LocalDate yesterday = today.minusDays(1);
// 设置日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//查询当天产线的运行时间
List<Map> maps = equOperationMapper.selectEquRunTimeByDate(yesterday.format(formatter));
//如果当天设备有运行情况
if (maps != null && maps.size() > 0) {
//调用设备模块更新设备运行数据
for (int i = 0; i < maps.size(); i++) {
Map updateDeviceParam = new HashMap();
updateDeviceParam.put("RunTime", maps.get(i).get("RunTime"));
updateDeviceParam.put("equipmentCode", maps.get(i).get("equipmentCode"));
updateDeviceParam.put("productDate", yesterday.format(formatter));
//更新方法
this.updateDeviceStatus(updateDeviceParam);
}
}
logger.info("==========================更新产线设备运行时间,故障率结束:"+yesterday.format(formatter));
return AjaxResult.success();
} catch (Exception e) {
logger.info("==========================更新产线设备运行时间出现错误:" + e.getMessage());
e.printStackTrace();
return AjaxResult.error(e.getMessage());
} finally {
DynamicDataSourceContextHolder.poll();
}
}
private void updateDeviceStatus(Map map){
//查询产线绑定的设备情况
try {
DynamicDataSourceContextHolder.push("ds_1000");
List<Map> mapList = equEquipmentMapper.selectAuxiliaryEquipmentList(map);
EquOperation equOperation=new EquOperation();
for (Map mas:mapList){
@ -813,18 +846,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
DecimalFormat df = new DecimalFormat("#.##");
if (operationList!=null && operationList.size()>=0){
for (EquOperation operation : operationList){
String operationTime = operation.getOperationTime();
//更新运行时间以及实际运行时间、故障率
equOperation.setId(operation.getId());
equOperation.setOperationTime(map.get("RunTime").toString());
if (operationTime!=null && operationTime != ""){
String RunTime = map.get("RunTime").toString();
equOperation.setOperationTime(map.get("RunTime").toString());
double num = Double.parseDouble(RunTime);
double numk = Double.parseDouble(operationTime);
double sum = num + numk;
equOperation.setOperationTime(String.format("%.2f", sum));
}
//实际运行时间 = 实际运行时间 - 故障时间
double result = Double.parseDouble(map.get("RunTime").toString()) - Double.parseDouble(operation.getFaultTime());
equOperation.setActualOperationTime(String.valueOf(df.format(result)));
@ -836,12 +860,6 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
}
}
}
}catch (Exception e){
return error(e.getMessage());
}finally {
DynamicDataSourceContextHolder.poll();
}
return success();
}

@ -288,4 +288,12 @@
<select id="getInfoByUserName" resultType="java.lang.String" parameterType="java.lang.String">
SELECT nick_name from lanju_op_cloud.dbo.sys_user where user_name = #{part} and del_flag =0
</select>
<select id="selectEquRunTimeByDate" resultType="java.util.Map">
SELECT SUM(work_time) as RunTime,mrw.machine_code as equipmentCode
FROM
[dbo].[mes_report_work] mrw
LEFT JOIN pro_order_workorder pow ON mrw.workorder_code=pow.workorder_code
WHERE pow.product_date = #{createTime} AND pow.parent_order = '0'
GROUP BY mrw.machine_code
</select>
</mapper>

@ -279,5 +279,11 @@ public class RyTask {
remoteMesService.syncHrAttendance();
}
//
/**********每天更新产线设备的运行参数*********/
public void syncEquRunStatus(){
logger.info("+++开始更新产线设备的运行参数++syncEquRunStatus+++++");
remoteDeviceService.updateDeviceRunTimeORRate();
}
}

@ -186,13 +186,4 @@ public class WCSInterfaceController extends BaseController {
public AjaxResult changeTransferResultTask() {
return wCInterfaceService.changeTransferResultTask();
}
/**
*
* @return
*/
@PostMapping("/updateResouceRunTime")
public AjaxResult updateResouceRunTime(@RequestBody Map map) {
return wCInterfaceService.updateResouceRunTime(map);
}
}

@ -122,4 +122,5 @@ public interface MesMapper {
Map getProductionNumberPLC(BoardDTO mesBoard);
List<String> getproductLineList();
}

@ -48,6 +48,4 @@ public interface IWCSInterfaceService {
Map getWhiteBoardEquPro7Days(BoardDTO boardDTO);
Map getWhiteBoardProdDetails(Map paramMap);
AjaxResult updateResouceRunTime(Map map);
}

@ -483,14 +483,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
sHzWorks.setMachineCode(mesReportWork.getMachineCode());
sapRson = this.reportHzToSap(sHzWorks);
logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson));
//更新产线设备运行时间,故障率
logger.info("==========================更新产线设备运行时间,故障率开始");
Map updateDeviceParam=new HashMap();
updateDeviceParam.put("RunTime",sHzWorks.getWorkTime());
updateDeviceParam.put("equipmentCode",mesReportWork.getMachineCode());
updateDeviceParam.put("productDate",sHzWorks.getProductDate());
R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam);
logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg());
}
else if(workOrders.size()==2){
/**(两层报工)子工单先报工,然后母工单报工**/
@ -545,14 +538,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
//pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4)
R sapR = this.reportHzToSap(pHzWork);
logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR));
//更新产线设备运行时间,故障率
logger.info("==========================更新产线设备运行时间,故障率开始");
Map updateDeviceParam=new HashMap();
updateDeviceParam.put("RunTime",sHzWorks.getSac1());
updateDeviceParam.put("equipmentCode",mesReportWork.getMachineCode());
updateDeviceParam.put("productDate",sHzWorks.getProductDate());
R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam);
logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg());
return sapR;
}
@ -824,18 +809,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
return resultMap;
}
@Override
public AjaxResult updateResouceRunTime(Map map) {
//更新产线设备运行时间,故障率
logger.info("==========================更新产线设备运行时间,故障率开始");
Map updateDeviceParam=new HashMap();
updateDeviceParam.put("RunTime",map.get("RunTime"));
updateDeviceParam.put("equipmentCode",map.get("equipmentCode"));
updateDeviceParam.put("productDate",map.get("productDate"));
R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam);
logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg());
return AjaxResult.success(rs.getMsg());
}
protected List<String> get7Days(){
List<String> days = new ArrayList<>();
@ -977,15 +950,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
//如果是暂停的工单报工向sap报工结束后工单状态->w3
workOrder.setStatus("w3");
mesReportWorkMapper.updateOrderWorkStatus(workOrder);
//更新产线设备运行时间,故障率
logger.info("==========================更新产线设备运行时间,故障率开始");
Map updateDeviceParam=new HashMap();
updateDeviceParam.put("RunTime",workOrder.getSac1());
updateDeviceParam.put("equipmentCode",workOrder.getMachineCode());
updateDeviceParam.put("productDate",workOrder.getProductDate());
R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam);
logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg());
return r;
// return R.ok();//测试
}

@ -552,5 +552,4 @@
product_date = CONVERT ( VARCHAR ( 10 ), GETDATE( ), 120 )
</select>
</mapper>

Loading…
Cancel
Save