李宇
2021-01-21 9c9503de4fb1e1b0127f83c8b2b0f645c6ab9e9c
修改处理报警接口
已修改2个文件
71 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
智慧实验室接口.docx 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -33,6 +33,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service("interfaceService")
public class InterfaceServiceImpl implements InterfaceService {
@@ -43,7 +44,8 @@
    private OpeUseFlowService opeUseFlowService;
    @Resource
    private SysWarningService sysWarningService;
    @Resource(name = "sysWarningDao")
    SysWarningDao sysWarningDao;
    @Resource(name = "sysWarehouseDao")
    SysWarehouseDao sysWarehouseDao;
@@ -1734,35 +1736,48 @@
    // 人员违规预警接口
    @Override
    public void delalarmperson(JSONObject jsonObject) throws Exception {
        String containerCode = jsonObject.getString("containerCode");
        String warningId = jsonObject.getString("warningId");
        // 货柜条码 containerCode String ○
        // 报警类别 warningId Integer ○
        if (StringUtils.isBlank(containerCode) || StringUtils.isBlank(warningId)) {
            throw new ApiException(ApiStatus.PARAM_NO_EXIST);
        }
        Map<String, String> metaMap = new HashMap<>();
        metaMap.put("groupId", "user_violate_type");
        metaMap.put("metaKey", warningId);
        JSONArray dataArr = jsonObject.getJSONArray("data");
        Iterator<Object> dataIt = dataArr.iterator();
        while (dataIt.hasNext()) {
            JSONObject dataJson = JSONObject.parseObject(dataIt.next().toString());
            // 货柜条码 containerCode String ○
            // 报警类别 warningId Integer ○
            if (!dataJson.containsKey("warningId") || !dataJson.containsKey("containerCode")) {
                throw new ApiException(ApiStatus.PARAM_NO_EXIST);
            }
            String containerCode = dataJson.getString("containerCode");
            String warningId = dataJson.getString("warningId");
            List<String> warningList = Arrays.asList(warningId.split(","));
            List<String> warningList1 = new ArrayList<>(Arrays.asList("1","2","3","4","5","6"));
            List<String> delWarnings = warningList1.stream().filter(o->!warningList.contains(o)).collect(Collectors.toList());//新的不在原有里面的
        List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
        if (baseMetaList == null || baseMetaList.size() != 1) {
            throw new ApiException(ApiStatus.PARAM_ERR, ApiStatus.PARAM_ERR.getRetMsg() + "[warningId]");
        }
            for (String warning : delWarnings){
                Map<String, String> metaMap = new HashMap<>();
                metaMap.put("groupId", "user_violate_type");
                metaMap.put("metaKey", warning);
        SysAlarmPerson sysAlarmPerson = new SysAlarmPerson();
        sysAlarmPerson.setContainerCode(containerCode);
        sysAlarmPerson.setWarningId(baseMetaList.get(0).getId());
        List<SysAlarmPerson> sysAlarmPersonList = sysAlarmPersonDao.selectByCode(containerCode, baseMetaList.get(0).getId());
        // 将人员违规预警记录保存到数据库表
        for (SysAlarmPerson sysAlarm : sysAlarmPersonList) {
            if (!"".equals(alarmUrl) && StringUtils.isNotBlank(sysAlarm.getRefId()) && ("1".equals(warningId) || "2".equals(warningId))) {
                SysWarning sysWarning = new SysWarning();
                sysWarning.setId(String.valueOf(sysAlarm.getId()));
                sysWarning.setStatus(1);
                sysWarning.setAlarmId(sysAlarm.getRefId());
                sysWarningService.updateSysWarning(sysWarning);
                List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
                if (baseMetaList == null || baseMetaList.size() != 1) {
                    throw new ApiException(ApiStatus.PARAM_ERR, ApiStatus.PARAM_ERR.getRetMsg() + "[warningId]");
                }
                SysAlarmPerson sysAlarmPerson = new SysAlarmPerson();
                sysAlarmPerson.setContainerCode(containerCode);
                sysAlarmPerson.setWarningId(baseMetaList.get(0).getId());
                List<SysAlarmPerson> sysAlarmPersonList = sysAlarmPersonDao.selectByCode(containerCode, baseMetaList.get(0).getId());
                for (SysAlarmPerson sysAlarm : sysAlarmPersonList) {
                    if (!"".equals(alarmUrl) && StringUtils.isNotBlank(sysAlarm.getRefId()) && ("1".equals(warning) || "2".equals(warning))) {
                        SysWarning sysWarning = new SysWarning();
                        sysWarning.setId(String.valueOf(sysAlarm.getId()));
                        sysWarning.setStatus(1);
                        sysWarning.setAlarmId(sysAlarm.getRefId());
                        sysWarningService.updateSysWarning(sysWarning);
                    }else {
                        Map<String,Object> params = new HashMap<>();
                        params.put("status",1);
                        params.put("id", String.valueOf(sysAlarm.getId()));
                        sysWarningDao.updateSysWarning(params);
                    }
                }
            }
        }
    }
智慧实验室接口.docx
Binary files differ