shicf
2024-08-23 2fef20fe45a1fc901b51243bcc60682524447990
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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;
 
    }
 
}