From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 18 八月 2021 14:27:59 +0800 Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错 --- src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java | 135 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 112 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java index f21d74b..c041ebf 100644 --- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java @@ -22,6 +22,7 @@ import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -33,15 +34,19 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @Service("interfaceService") public class InterfaceServiceImpl implements InterfaceService { private static Logger logger = Logger.getLogger(ApiAction.class); - + @Lazy @Resource private OpeUseFlowService opeUseFlowService; - + @Resource + private SysWarningService sysWarningService; + @Resource(name = "sysWarningDao") + SysWarningDao sysWarningDao; @Resource(name = "sysWarehouseDao") SysWarehouseDao sysWarehouseDao; @@ -1004,7 +1009,7 @@ }else{ sysUser = sysUserDao.getSysUser(userID); // 如果是管理员也可以开柜 - if(sysUser.getSeeFlag() == SeeFlag.MANAGE){ + if(sysUser.getSeeFlag() == SeeFlag.MANAGE||sysUser.getSeeFlag() == SeeFlag.LEADING){ return "1"; } else { // 不可以打开柜子 @@ -1030,8 +1035,16 @@ if (containerCode==null||containerCode.isEmpty()) { throw new ApiException(ApiStatus.PARAM_NO_EXIST, ApiStatus.PARAM_NO_EXIST.getRetMsg() + "[containerCode]"); } - - return sysUserDao.getUserListByContainerCodeNew(containerCode, startTime, endTime); + List<String> projects = sysLaboratoryContainer.selectProjectsByContainerCode(containerCode); + List<SysUser> userList = null; + if (projects != null && projects.size() > 0){ + userList = new ArrayList<>(); + for (String project : projects) { + List<SysUser> dataList = sysUserDao.getUserListByProject(project, startTime, endTime); + userList.addAll(dataList); + } + } + return userList; } @@ -1241,7 +1254,8 @@ logger.error("The containerCode has not been exists!"); continue; } - } else if (status.equals(2)){ + } + else if (status.equals(2)){ /*SysWarehouseContainer container = sysWarehouseContainerDao .getSysWarehouseContainerByContainerCode(containerCode); if (Objects.isNull(container) == false) { @@ -1261,8 +1275,14 @@ logger.error("The containerCode has not been exists!"); } } - opeReagentStatusDao.syncOpeReagentStatus(params); - + //-1 状态 + if (status.equals(-1)){ + continue; + } + int i = opeReagentStatusDao.syncOpeReagentStatus(params); + if (i < 1){ + opeReagentStatusDao.syncOpeReagentStatus(params); + } } } @@ -1347,7 +1367,7 @@ // 人员违规预警接口 @Override - public void alarmperson(JSONObject jsonObject) throws ApiException, IOException { + public void alarmperson(JSONObject jsonObject) throws Exception { JSONArray dataArr = jsonObject.getJSONArray("data"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -1406,12 +1426,19 @@ Timestamp warnTime; try { Date warningTime = sdf.parse(warningTimeStr); + //不接收时间超过现在的数据 + if (warningTime.after(new Date())) { + throw new Exception("柜子时间发生错误"); + } warnTime = new Timestamp(warningTime.getTime()); sysAlarmPerson.setWarningTime(warnTime); } catch (ParseException e) { throw new ApiException(ApiStatus.PARAM_ERR); - } - // 将人员违规预警记录保存到数据库表 + } catch (Exception e) { + e.printStackTrace(); + throw new Exception(e.getMessage()); + } + // 将人员违规预警记录保存到数据库表 int count = sysAlarmPersonDao.repeatedJudgment(containerCode, warningLevelInt, warnTime); if (count<1){ //获取实验室条码和具体地点 @@ -1429,7 +1456,7 @@ } //给daping系统发送信息 - if(!"".equals(alarmUrl) && ("1".equals(warningId) || "2".equals(warningId)|| "6".equals(warningId)) ) { + if(!"".equals(alarmUrl) && ("1".equals(warningId) || "2".equals(warningId))){ JSONObject json = new JSONObject(); json.put("barCode", location.get("barCode")); json.put("type", alarmType); @@ -1460,7 +1487,7 @@ logger.info(resData2); } } - sysAlarmPersonDao.insertSysAlarmPerson(sysAlarmPerson); + if(enable && "2".equals(warningId) ) { List<Map> personsInCharge = sysLaboratoryContainer.getContainerPersonInCharge(containerCode); Map param = new HashMap(); @@ -1490,7 +1517,9 @@ }); } if (phones.length() >0){ - phones.deleteCharAt(phones.length() - 1);} + phones.deleteCharAt(phones.length() - 1); + + } String suffix = String.format("?head=%s&signature=%s&content=%s&telnumber=%s", head, signature, content, phones.toString().replace(" ", "")); CloseableHttpClient client = HttpClients.createDefault(); @@ -1498,18 +1527,26 @@ post.setHeader("Content-Type", "application/json;charset=UTF-8"); CloseableHttpResponse response = client.execute(post); String resData = EntityUtils.toString(response.getEntity(),"UTF-8"); + client.close(); + JSONObject res = JSONObject.parseObject(resData); + if ("200".equals(res.getString("code")) && phones.length() >0){ + String memo = String.format("短信已发送[%s]", phones); + sysAlarmPerson.setMemo(memo); + } logger.info(resData); } + sysAlarmPersonDao.insertSysAlarmPerson(sysAlarmPerson); + // 将人员扣分更新到人员表 + if (warningPoint == null) { + warningPoint = 0; + } + // SysUser user = sysUserDao.getSysUser(userId); + if (user != null) { + sysUserDao.updateUserPointBySelective(user.getPoint() - warningPoint, user.getId()); + } } - // 将人员扣分更新到人员表 - if (warningPoint == null) { - warningPoint = 0; - } -// SysUser user = sysUserDao.getSysUser(userId); - if (user != null) { - sysUserDao.updateUserPointBySelective(user.getPoint() - warningPoint, user.getId()); - } + } } @@ -1681,8 +1718,11 @@ continue; } } + int count = opeUseFlowService.getOpeUseFlow(opeUseFlow); + if (count < 1) { - this.opeUseFlowService.insertOpeUseFlow(opeUseFlow); + this.opeUseFlowService.insertOpeUseFlow(opeUseFlow); + } } } @@ -1700,4 +1740,53 @@ public JSONObject getUserInfo(JSONObject jsonObject) { return null; } + + // 人员违规预警接口 + @Override + public void delalarmperson(JSONObject jsonObject) throws Exception { + 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());//新的不在原有里面的 + + for (String warning : delWarnings){ + Map<String, String> metaMap = new HashMap<>(); + metaMap.put("groupId", "user_violate_type"); + metaMap.put("metaKey", warning); + + 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); + } + } + } + } + } } -- Gitblit v1.9.2