package com.product.device.service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.product.core.config.Global; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.service.support.AbstractBaseService; import com.product.device.config.DeviceConst; import com.product.module.sys.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.thymeleaf.util.StringUtils; /** * 设备管理 * @Author * @Date 2022/3/8 16:33 * @Desc 功能相关 service */ @Service public class DeviceManagerService extends AbstractBaseService { @Autowired public BaseDao baseDao; @Autowired UserService userService; /** * 获取设备信息 包括子设备 * @param uuid * @return */ public FieldSetEntity findDeviceAndSub(String uuid,String device_number) { FieldSetEntity dev=findDevice(uuid); if(dev !=null && "device".equals(Global.getSystemConfig("system_platform_type", "")) ) { DataTableEntity dt=baseDao.listTable(DeviceConst.PRODUCT_DEVICE_INFO,"uuid=?", new String[] {uuid},new String[]{}); if(!DataTableEntity.isEmpty(dt)) { baseDao.loadPromptData(dt); Map sub=new HashMap<>(); sub.put("sub", dt); dev.setSubData(sub); //dev.addSubDataTable(dt); } } return dev; } /** * 获取设备信息 包括子设备 * @param uuid * @param asset_code * @return */ public FieldSetEntity findDevice(String uuid) { StringBuilder st=new StringBuilder(); List pa=new ArrayList(); if(!StringUtils.isEmpty(uuid)) { st.append("uuid=?"); pa.add(uuid); }else { return null; } FieldSetEntity dev=baseDao.getFieldSetEntityByFilter(DeviceConst.PRODUCT_DEVICE_INFO, new String[]{}, st.toString(), pa.toArray(), false, null); baseDao.loadPromptData(dev); return dev; } /** * 设备的状态变更 * 如果有子设备,需要把子设备状态一起变更 * @return */ public boolean deviceStatusChange(String device_number,String status) { return baseDao.executeUpdate("update product_device_info set device_status=? where device_number=?",new String[] {status,device_number}); } /** * 添加设备运行记录 * @param asset_code * @param user * @param type * @param log * @return */ public boolean appendDeivceManageLog(String asset_code,String user,String type,String log,String table,String uuid ) { return true; } /** * 设备的相关人员信息 * @param asset_code * @return */ public DataTableEntity findDevicePersion(String asset_code) { StringBuilder sql = new StringBuilder(); sql.append("\nselect a.user_id userid,b.post,a.user_name,a.user_phone_number tel,thumbnail_img from ("); sql.append("\nselect yardman userid,'调度人' post from product_device_archives where asset_code='").append(asset_code).append("' union"); sql.append("\nselect repair_fitter,'钳工维修人员' from product_device_archives where asset_code='").append(asset_code).append("' union"); sql.append("\nselect repair_electrician,'电工维修人员' from product_device_archives where asset_code='").append(asset_code).append("' union"); sql.append("\nselect mechanician ,'机械技术员' from product_device_archives where asset_code='").append(asset_code).append("' union"); sql.append("\nselect electrician ,'电气技术员' from product_device_archives where asset_code='").append(asset_code).append("' union"); sql.append("\nselect technician ,'技术负责人' from product_device_archives where asset_code='").append(asset_code).append("' union"); sql.append("\nselect safety_manager ,'安全管理员' from product_device_archives where asset_code='").append(asset_code).append("'"); sql.append("\n) b left join product_sys_users a on b.userid=a.user_id"); DataTableEntity dte = baseDao.listTable(sql.toString(), new Object[]{}); // dte.getMeta().addAliasTable("product_sys_users", "a"); // dte.getMeta().addAliasTable("product_device_archives", "b"); // dte.getMeta().addAliasField("product_sys_users.user_id", "userid"); // dte.getMeta().addAliasField("product_sys_users.user_id", "post"); // baseDao.loadPromptData(dte); // 头像 FieldSetEntity tempFse; for (int i = 0;i < dte.getRows();i++) { tempFse = dte.getFieldSetEntity(i); tempFse.setValue(com.product.core.websocket.config.CmnConst.THUMBNAIL_IMG, userService.getUserAvatar(tempFse.getString("userid"))); } return dte; } }