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 <String,DataTableEntity> 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<String> pa=new ArrayList<String>();
|
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;
|
|
}
|
|
}
|