Java开发小笔记

==========================================================================================

1.

 ==========================================================================================

 

1.将request获取到的对象进行类型转换(首先将Map的value值由String数组类型转换成Object类型,其次再将转换后的Map对象中的某一属性转换成String类型):

 

public Result remove(HttpServletRequest request) {
//获取传递过来科室信息
Map<String, String[]> requestMap = request.getParameterMap();
Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
//获取医院编号和排班编号
String hoscode = (String) paramMap.get("hoscode");
String hosScheduleId = (String) paramMap.get("hosScheduleId");
}

==========================================================================================

2.将Map对象转换成实体类对象:

//上传科室接口
@Override
public void save(Map<String, Object> paramMap) {
//paramMap 转换department对象
String paramMapString = JSONObject.toJSONString(paramMap);
Department department = JSONObject.parseObject(paramMapString, Department.class);

//根据医院编号 和 科室编号查询
Department departmentExist = departmentRepository.
getDepartmentByHoscodeAndDepcode(department.getHoscode(), department.getDepcode());
//判断
if (departmentExist != null) {
departmentExist.setUpdateTime(new Date());
departmentExist.setIsDeleted(0);
departmentRepository.save(departmentExist);
} else {
department.setCreateTime(new Date());
department.setUpdateTime(new Date());
department.setIsDeleted(0);
departmentRepository.save(department);
}
}

==========================================================================================

3.经典的mybatis查询案例(这是一个用来获取Echart前端折线图x、y轴数据的接口,x轴是日期y轴是数量,用List存放。)

① Controller:

@ApiOperation(value = "获取订单统计数据")  //swagger里的接口说明注解 
@PostMapping("inner/getCountMap")
public Map<String, Object> getCountMap(@RequestBody OrderCountQueryVo orderCountQueryVo) {
return orderService.getCountMap(orderCountQueryVo);
}

 

② Service:

//预约统计
Map<String, Object> getCountMap(OrderCountQueryVo orderCountQueryVo);

③ ServiceImpl:

//预约统计
@Override
public Map<String, Object> getCountMap(OrderCountQueryVo orderCountQueryVo) {
//调用mapper方法得到数据
List<OrderCountVo> orderCountVoList = baseMapper.selectOrderCount(orderCountQueryVo);

//获取x需要数据 ,日期数据 list集合
List<String> dateList = orderCountVoList.stream().map(OrderCountVo::getReserveDate).collect(Collectors.toList()); //使用stream流的方式获取数据(较全部遍历后获取更简洁)

//获取y需要数据,具体数量 list集合
List<Integer> countList = orderCountVoList.stream().map(OrderCountVo::getCount).collect(Collectors.toList());

Map<String, Object> map = new HashMap<>();
map.put("dateList", dateList);
map.put("countList", countList);
return map;
}

④ Mapper(dao层接口):

public interface OrderMapper extends BaseMapper<OrderInfo> {

//查询预约统计数据的方法
List<OrderCountVo> selectOrderCount(@Param("vo") OrderCountQueryVo orderCountQueryVo); //vo是给orderCountQueryVo这个参数起的一个别名,到时候直接用vo.就行了。
}

 

⑤ Mapper.xml (dao层接口的实现):

&lt;
&gt;

 

 

==========================================================================================

4. 在含有json字符串的字段中,通过for循环遍历对象,对含有json字符串的该字段的内容(含有json字符串的字段就是实体类中的一个普通的属性,就是存的是json数据)相互替换(通过get和set方式)。

private  List<MonitorDevice> addJson(List<MonitorDevice> monitorDevices){
System.out.println(monitorDevices);

for (MonitorDevice monitorDevice : monitorDevices) {
String opcDeviceName = monitorDevice.getOpcDeviceName();

if (opcDeviceName.equals("P_IZP_KTJZ_ID0001")){
for (MonitorDevice monitorDevice1 : monitorDevices) {
String opcDeviceName1 = monitorDevice1.getOpcDeviceName();
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0007")){
JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor();
monitorDevice.setDeviceMonitors(deviceMonitor1);
}
}
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0002")){
for (MonitorDevice monitorDevice1 : monitorDevices) {
String opcDeviceName1 = monitorDevice1.getOpcDeviceName();
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0007")){
JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor();
monitorDevice.setDeviceMonitors(deviceMonitor1);
}
}
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0004")){
for (MonitorDevice monitorDevice1 : monitorDevices) {
String opcDeviceName1 = monitorDevice1.getOpcDeviceName();
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0008")){
JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor();
monitorDevice.setDeviceMonitors(deviceMonitor1);
}
}
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0005")){
for (MonitorDevice monitorDevice1 : monitorDevices) {
String opcDeviceName1 = monitorDevice1.getOpcDeviceName();
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0008")){
JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor();
monitorDevice.setDeviceMonitors(deviceMonitor1);
}
}
}
}
List<MonitorDevice> monitorDevices1 = new ArrayList<>();
for (MonitorDevice monitorDevices2: monitorDevices) {
String opcDeviceName = monitorDevices2.getOpcDeviceName();
if (opcDeviceName.equals("P_IZP_KTJZ_ID0001")){
monitorDevices1.add(monitorDevices2);
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0002")){
monitorDevices1.add(monitorDevices2);
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0004")){
monitorDevices1.add(monitorDevices2);
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0005")){
monitorDevices1.add(monitorDevices2);
}
}
return monitorDevices1;
}
======================

注:原始设备状态字段:

//设备状态(json
@Type(type = "json")
private JSONObject deviceMonitor;


//新加的虚拟设备状态字段:(用来存放转换后的设备状态,也就是把deviceMonitor中的数据处理后存放到deviceMonitors里返回)
@Transient  //加上该注解,不会映射到数据库表结构上,否则报错。
@Type(type = "json")
private JSONObject deviceMonitors;

======================

==========================================================================================

5.在含有json字符串的字段中,通过for循环遍历对象,将该字段json数据的部分key进行修改(张家口)。

private  List<MonitorDevice> jsonConvert (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) {
  JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor();

  deviceMonitor.put("YCDCKTXFWD",deviceMonitor.getString("JZXFWD")); //1.新风温度
   deviceMonitor.remove("JZXFWD");
   deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("JZXFFQT")); //2.新风阀状态
  deviceMonitor.remove("JZXFFQT");
//   deviceMonitor.put("JZSFKZT",deviceMonitor.getString("JZSFKZ")); //3.水阀状态先不展示
//   deviceMonitor.remove("JZSFKZ");
  deviceMonitor.put("YCDCKTSFWD",deviceMonitor.getString("JZSFWD")); //4.送风温度
  deviceMonitor.remove("JZSFWD");
  deviceMonitor.put("YCDCKTHFWD",deviceMonitor.getString("JZHFWD")); //5.回风温度
  deviceMonitor.remove("JZHFWD");
  deviceMonitor.put("JZQT",deviceMonitor.getString("JZBPYX")); //6.空调状态
  deviceMonitor.remove("JZBPYX");
   deviceMonitor.put("JZGZ",deviceMonitor.getString("JZBPGZ")); //7.空调故障状态
   deviceMonitor.remove("JZBPGZ");
//   deviceMonitor.put("JZSZD",deviceMonitor.getString("JZSZD")); //8.空调手自动状态
//    deviceMonitor.remove("JZSZD");
//    deviceMonitor.put("JZFJGLQZDBJ",deviceMonitor.getString("JZJDCC")); //9.空调过滤报警不展示
//   deviceMonitor.remove("JZJDCC");
//    deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("JZXFFZT")); //10.新风阀手自动状态不展示
//    deviceMonitor.remove("JZXFFZT");

  monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}
======================
注:原始设备状态字段:

//设备状态(json
@Type(type = "json")
private JSONObject deviceMonitor;


//新加的虚拟设备状态字段:(用来存放转换后的设备状态,也就是把deviceMonitor中的数据处理后存放到deviceMonitors里返回
@Transient  //加上该注解,不会映射到数据库表结构上,否则报错。
@Type(type = "json")
private JSONObject deviceMonitors;
======================


==========================================================================================

6.在含有json字符串的字段中,通过for循环遍历对象,将该字段json数据的部分key进行修改(清河),其中json类型的deviceMonitor属性中的送风温度的键前后使用了两种不同的字段名,需要判断一下。

//清河字段转换
private List<MonitorDevice> jsonConvertQIP (List<MonitorDevice> monitorDevices){
// List<String> list = new ArrayList<String>(){{add("SFTT");add("TT");}};
for (MonitorDevice monitorDevices1 : monitorDevices) {
JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor();
Set<String> set = deviceMonitor.keySet();
deviceMonitor.put("YCDCKTXFWD",deviceMonitor.getString("XFTT")); //1.新风温度
deviceMonitor.remove("XFTT");
// deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("JZXFFQT")); //2.新风阀状态不展示
// deviceMonitor.remove("JZXFFQT");
// deviceMonitor.put("JZSFKZT",deviceMonitor.getString("TVLFB")); //3.水阀状态不展示
// deviceMonitor.remove("TVLFB");
if (set.contains("SFTT")){
deviceMonitor.put("YCDCKTSFWD",deviceMonitor.getString("SFTT")); //4.送风温度 (SFTTTT)
deviceMonitor.remove("SFTT");
}
if (set.contains("TT")){
deviceMonitor.put("YCDCKTSFWD",deviceMonitor.getString("TT"));
deviceMonitor.remove("TT");
}
deviceMonitor.put("YCDCKTHFWD",deviceMonitor.getString("RFTT")); //5.回风温度
deviceMonitor.remove("RFTT");
deviceMonitor.put("JZQT",deviceMonitor.getString("ST")); //6.空调状态
deviceMonitor.remove("ST");
deviceMonitor.put("JZGZ",deviceMonitor.getString("AL")); //7.空调故障状态
deviceMonitor.remove("AL");
deviceMonitor.put("JZSZD",deviceMonitor.getString("RL")); //8.空调手自动状态
deviceMonitor.remove("RL");
// deviceMonitor.put("JZFJGLQZDBJ",deviceMonitor.getString("JZJDCC")); //9.空调过滤报警不展示
// deviceMonitor.remove("JZJDCC");
deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("MANMDV")); //10.新风阀手自动状态不展示
deviceMonitor.remove("MANMDV");

monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}

 















 

posted @   sensen~||^_^|||&  阅读(67)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示