소스 검색

Merge branch 'master' of https://e.coding.net/chuanghaikeji/smarCampus/iHotel_student_houtai into dev-wxl

wanxl 1 년 전
부모
커밋
5b99c418b3

+ 73 - 66
src/main/java/com/template/controller/HouseNumberStateController.java

@@ -1317,89 +1317,92 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
         LambdaQueryWrapper<HouseLock> wrapperHl = new LambdaQueryWrapper<>();
         wrapperHl.eq(HouseLock::getHouseNumberId, houseNumberId);
         HouseLock houseLock = houseLockService.getOne(wrapperHl);
+        if (ObjectUtils.isNotEmpty(unlocking)) {
 
-        if (ObjectUtils.isNotEmpty(houseLock)) {
 
+            if (ObjectUtils.isNotEmpty(houseLock)) {
 
-            String equipmentState = houseLock.getEquipmentType();
+
+                String equipmentState = houseLock.getEquipmentType();
 
 //            入住人id
-            String liveUsersId = houseOrder.getLiveUsersId();
-            Users users = usersService.getById(liveUsersId);
+                String liveUsersId = houseOrder.getLiveUsersId();
+                Users users = usersService.getById(liveUsersId);
 
 
 //            判断是什么类型的开锁方式
-            String lockStatus = unlocking.getLockStatus();
-            if (ObjectUtils.isNotEmpty(unlocking)) {
+                String lockStatus = unlocking.getLockStatus();
+                if (ObjectUtils.isNotEmpty(unlocking)) {
 
 
 //          添加锁的操作记录
 
-                OperatingRecord operatingRecord = new OperatingRecord();
+                    OperatingRecord operatingRecord = new OperatingRecord();
 
-                operatingRecord.setHouseNumberId(houseNumber.getId());
-                operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
-                operatingRecord.setOperatorName(byId.getName());
-                DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-                operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
-                operatingRecord.setContent("姓名:" + houseOrder.getLiveName());
+                    operatingRecord.setHouseNumberId(houseNumber.getId());
+                    operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
+                    operatingRecord.setOperatorName(byId.getName());
+                    DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                    operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
+                    operatingRecord.setContent("姓名:" + houseOrder.getLiveName());
 
-                if ("1".equals(lockStatus)) {
-                    PasswordDto pr = new PasswordDto();
-                    pr.setLuid(houseLock.getEquipmentType());
+                    if ("1".equals(lockStatus)) {
+                        PasswordDto pr = new PasswordDto();
+                        pr.setLuid(houseLock.getEquipmentType());
 //            开始时间
-                    pr.setStartTime(String.valueOf(liveTime.getTime()));
+                        pr.setStartTime(String.valueOf(liveTime.getTime()));
 //            结束时间
-                    String reserveLeaveTime = houseOrder.getReserveLeaveTime();
-                    Date leaveTime = Date.from(LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).atZone(ZoneId.systemDefault()).toInstant());
-                    pr.setEndTime(String.valueOf(leaveTime.getTime()));
-                    pr.setHouseNumberId(houseNumberId);
-                    pr.setOrderNumber(orderNumber);
-                    Unlocking unlocking1 = passwordIssController.addPassword(pr);
-                    unlockingService.save(unlocking1);
-
-                    String passWord = unlocking1.getPassWord();
-
-                    ArrayList<String> strings = new ArrayList<>();
-                    strings.add(users.getCardNumber());
-                    weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + houseNumber.getRoomNumber() + ",密码是:" + passWord + "离店时间为:" + liveTime + ",欢迎您入住张玉玲酒店,我们全体员工很荣幸能为您服务,如有任何需要请致电张玉玲,期待为你服务。祝你生活愉快!", null);
-                    operatingRecord.setType("添加密码钥匙");
-
-                } else if ("2".equals(lockStatus)) {
-                    CardInfoDto cid = new CardInfoDto();
-                    cid.setCard(users.getIdCardInformation());
-                    cid.setLuid(equipmentState);
-                    cid.setCardType(1);
-                    cid.setStartTime(String.valueOf(liveTime.getTime()));
-                    //            结束时间
-                    String reserveLeaveTime = houseOrder.getReserveLeaveTime();
-                    Date leaveTime = Date.from(LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).atZone(ZoneId.systemDefault()).toInstant());
-
-                    cid.setEndTime(String.valueOf(leaveTime.getTime()));
-                    cid.setHouseNumberId(houseNumberId);
-                    cid.setOrderNumber(houseOrder.getOrderNumber());
-                    Unlocking unlocking1 = passwordIssController.addCardInfo(cid);
-                    unlockingService.save(unlocking1);
-                    operatingRecord.setType("添加卡片钥匙");
-                } else if ("3".equals(lockStatus)) {
-                    FingerprintDataDto fd = new FingerprintDataDto();
-                    fd.setLuid(equipmentState);
-                    fd.setHouseNumberId(houseNumberId);
-                    fd.setOrderNumber(houseOrder.getOrderNumber());
-                    fd.setStartTime(String.valueOf(liveTime.getTime()));
-                    //            结束时间
-                    String reserveLeaveTime = houseOrder.getReserveLeaveTime();
-                    Date leaveTime = Date.from(LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).atZone(ZoneId.systemDefault()).toInstant());
-
-                    fd.setEndTime(String.valueOf(leaveTime.getTime()));
-
-                    fd.setFingerprintData(users.getFingerprint());
-                    Unlocking unlocking1 = passwordIssController.addFingerprintData(fd);
-                    unlockingService.save(unlocking1);
-                    operatingRecord.setType("添加指纹钥匙");
-                }
+                        String reserveLeaveTime = houseOrder.getReserveLeaveTime();
+                        Date leaveTime = Date.from(LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).atZone(ZoneId.systemDefault()).toInstant());
+                        pr.setEndTime(String.valueOf(leaveTime.getTime()));
+                        pr.setHouseNumberId(houseNumberId);
+                        pr.setOrderNumber(orderNumber);
+                        Unlocking unlocking1 = passwordIssController.addPassword(pr);
+                        unlockingService.save(unlocking1);
+
+                        String passWord = unlocking1.getPassWord();
+
+                        ArrayList<String> strings = new ArrayList<>();
+                        strings.add(users.getCardNumber());
+                        weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + houseNumber.getRoomNumber() + ",密码是:" + passWord + "离店时间为:" + liveTime + ",欢迎您入住张玉玲酒店,我们全体员工很荣幸能为您服务,如有任何需要请致电张玉玲,期待为你服务。祝你生活愉快!", null);
+                        operatingRecord.setType("添加密码钥匙");
+
+                    } else if ("2".equals(lockStatus)) {
+                        CardInfoDto cid = new CardInfoDto();
+                        cid.setCard(users.getIdCardInformation());
+                        cid.setLuid(equipmentState);
+                        cid.setCardType(1);
+                        cid.setStartTime(String.valueOf(liveTime.getTime()));
+                        //            结束时间
+                        String reserveLeaveTime = houseOrder.getReserveLeaveTime();
+                        Date leaveTime = Date.from(LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).atZone(ZoneId.systemDefault()).toInstant());
+
+                        cid.setEndTime(String.valueOf(leaveTime.getTime()));
+                        cid.setHouseNumberId(houseNumberId);
+                        cid.setOrderNumber(houseOrder.getOrderNumber());
+                        Unlocking unlocking1 = passwordIssController.addCardInfo(cid);
+                        unlockingService.save(unlocking1);
+                        operatingRecord.setType("添加卡片钥匙");
+                    } else if ("3".equals(lockStatus)) {
+                        FingerprintDataDto fd = new FingerprintDataDto();
+                        fd.setLuid(equipmentState);
+                        fd.setHouseNumberId(houseNumberId);
+                        fd.setOrderNumber(houseOrder.getOrderNumber());
+                        fd.setStartTime(String.valueOf(liveTime.getTime()));
+                        //            结束时间
+                        String reserveLeaveTime = houseOrder.getReserveLeaveTime();
+                        Date leaveTime = Date.from(LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).atZone(ZoneId.systemDefault()).toInstant());
+
+                        fd.setEndTime(String.valueOf(leaveTime.getTime()));
+
+                        fd.setFingerprintData(users.getFingerprint());
+                        Unlocking unlocking1 = passwordIssController.addFingerprintData(fd);
+                        unlockingService.save(unlocking1);
+                        operatingRecord.setType("添加指纹钥匙");
+                    }
 
-                operatingRecordService.save(operatingRecord);
+                    operatingRecordService.save(operatingRecord);
+                }
             }
         }
         if (msg.equals("")) {
@@ -1779,7 +1782,11 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
         String msg = "";
 
 //        MyGlobalThreadPool.execute(()->{
+//        try(
           Boolean aBoolean = electricEquipmentService.closeMeterControl(houseNumber.getElectricEquipmentId());
+//        )catch (Exception e) {
+//                    log.error("置净失败,失败原因:{}", e);
+//                }
 //        });
 
         if (!aBoolean) {

+ 52 - 1
src/main/java/com/template/controller/HouseOrderController.java

@@ -350,8 +350,10 @@ public class HouseOrderController implements HouseOrderAPI {
         houseOrder.setHouseNumberId(houseNumberIds);
 //        预定人姓名
         houseOrder.setReserveName(establishOrderDto.getReserveName());
+        log.info("预定人姓名:"+establishOrderDto.getReserveName());
 //        预定人电话号码
         houseOrder.setReservePhone(establishOrderDto.getReservePhone());
+        log.info("预定人手机号码:"+establishOrderDto.getReservePhone());
 //        预定入住时间
         houseOrder.setReserveLiveTime(reserveLiveTime);
 //        预定离开时间
@@ -1408,7 +1410,7 @@ public class HouseOrderController implements HouseOrderAPI {
         LambdaQueryWrapper<HouseLock> wrapperHl = new LambdaQueryWrapper<>();
         wrapperHl.eq(HouseLock::getHouseNumberId, houseNumberId);
         HouseLock houseLock = houseLockService.getOne(wrapperHl);
-        String equipment="";
+        String equipment = "";
         if (ObjectUtils.isNotEmpty(houseLock)) {
             equipment = houseLock.getEquipmentType();
         }
@@ -1418,6 +1420,8 @@ public class HouseOrderController implements HouseOrderAPI {
         String liveUsersId = houseOrder.getLiveUsersId();
         Users users = usersService.getById(liveUsersId);
 
+
+
         if (ObjectUtils.isNotEmpty(unlocking)) {
 
 //            判断是什么类型的开锁方式
@@ -3630,6 +3634,53 @@ public class HouseOrderController implements HouseOrderAPI {
 
     }
 
+//    @Scheduled(cron = "0 0/1 * * * ?")
+    public void pay() {
+        //        计算上个免费的订单
+        LocalDateTime end = LocalDateTime.now().withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0);
+        LocalDateTime start = end.minusMonths(1);
+
+        LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper/*.between(HouseOrder::getLeaveTime, start, end)*/
+                .eq(HouseOrder::getPayPrice, 0)
+                .eq(HouseOrder::getOrderStatus, 8);
+        List<HouseOrder> list = houseOrderService.list(wrapper);
+        //        重新计算订单
+        for (int i = 0; i < list.size(); i++) {
+            HouseOrder houseOrder = list.get(i);
+            String houseNumberId = houseOrder.getHouseNumberId();
+            //      获取水电消费金额和额度
+            HouseNumber houseNumber = houseNumberService.getById(houseNumberId);
+            String electricEquipmentId = houseNumber.getElectricEquipmentId();
+            String waterEquipmentId = houseNumber.getWaterEquipmentId();
+            ElectricEquipment electricEquipment = electricEquipmentService.getById(electricEquipmentId);
+            WaterEquipment waterEquipment = waterEquipmentService.getById(waterEquipmentId);
+            if (ObjectUtils.isNotEmpty(electricEquipment) && ObjectUtils.isNotEmpty(waterEquipment)) {
+                String electricEquipmentRoomId = electricEquipment.getRoomId();
+                String waterEquipmentRoomId = waterEquipment.getRoomId();
+
+                Date liveTime = houseOrder.getLiveTime();
+                Date leaveTime = houseOrder.getLeaveTime();
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String live = sdf.format(liveTime);
+                String leave = sdf.format(leaveTime);
+//                获取电的消费金额和额度
+                JSONObject jsonObjectElectric = electricEquipmentService.roomCostRecord(electricEquipmentRoomId, live, leave);
+                BigDecimal costElectric = jsonObjectElectric.getBigDecimal("cost");
+                BigDecimal consumeElectric = jsonObjectElectric.getBigDecimal("consume");
+                houseOrder.setElectricCost(costElectric);
+                houseOrder.setElectricConsume(consumeElectric);
+//                获取水的消费金额和额度
+                JSONObject jsonObjectWater = waterEquipmentService.roomCostRecord(waterEquipmentRoomId, live, leave);
+                BigDecimal costWater = jsonObjectWater.getBigDecimal("cost");
+                BigDecimal consumeWater = jsonObjectWater.getBigDecimal("consume");
+                houseOrder.setWaterCost(costWater);
+                houseOrder.setWaterConsume(consumeWater);
+            }
+
+        }
+        houseOrderService.updateBatchById(list);
+    }
 
     //    计算一个月内每个人的免费入住所消费的水电
     @Scheduled(cron = "0 0 1 1 * ? ")

+ 64 - 0
src/main/java/com/template/controller/PasswordIssController.java

@@ -1,6 +1,7 @@
 package com.template.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.common.utils.AesUtils;
@@ -13,6 +14,7 @@ import com.template.model.pojo.Unlocking;
 import com.template.model.pojo.UnlockingAdmin;
 import com.template.model.pojo.UnlockingCustom;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.text.SimpleDateFormat;
@@ -717,4 +719,66 @@ public class PasswordIssController {
         }
 
     }
+
+
+    //添加公寓
+//    @Scheduled(cron = "0 0/1 * * * ?")
+//    public void saveGy(){
+//
+//        HashMap<String, Object> map = new HashMap<>();
+//        map.put("name","研究生公寓");
+//
+//        HashMap<String, String> hashMap = new HashMap<>();
+//        hashMap.put("name","17栋1单元201");
+//        HashMap<String, String> hashMap2 = new HashMap<>();
+//        hashMap2.put("name","17栋1单元202");
+//        JSONArray jsonArray = new JSONArray();
+//        jsonArray.add(hashMap);
+//        jsonArray.add(hashMap2);
+//
+//        map.put("roomDataList",jsonArray);
+//
+//
+//        String jsonContent = JSONObject.toJSONString(map);
+//
+//        System.out.println("jsonContent = " + jsonContent);
+//        try {
+//            JSONObject jsonObject2 = queryData2(jsonContent, PasswordUrlEnum.SaveApartment.getUrl());
+//            JSONObject data = jsonObject2.getJSONObject("data");
+//            System.out.println("data = " + data);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//    }
+//
+//
+//    /**
+//     * 请求数据
+//     *
+//     * @param content 请求参数
+//     * @param path    请求接口
+//     */
+//    public JSONObject queryData2(String content, String path) throws Exception {
+//        String sign = MD5.getMD5(doorLockConfig.getAppId() + doorLockConfig.getAppSecret());
+//
+//        String appId = doorLockConfig.getAppId();
+//        String jsonStr = AesUtils.encrypt(content, doorLockConfig.getAppSecret());
+//        /*执行请求,使用可以附加token的doPost方*/
+//        HttpClientHelper instance = HttpClientHelper.getInstance();
+//        String result = instance.doPostJson("https://www.qspms.cn/open/api/v2/apartment" + (path.startsWith("/") ? path : ("/" + path)), jsonStr, sign, appId);
+//        if (ObjectUtils.isEmpty(result)) {
+//            return null;
+//        }
+//
+//        /*解析数据 start*/
+//        JSONObject jsonObject = JSON.parseObject(result);
+//
+////        System.out.println("jsonObject = " + jsonObject);
+//
+//
+//        return jsonObject;
+//    }
+
+
 }

+ 1 - 0
src/main/java/com/template/model/enumModel/PasswordUrlEnum.java

@@ -17,6 +17,7 @@ public enum PasswordUrlEnum {
     RemoteOpen("remoteOpen","远程开锁"),
     SetNFC("setNFC","设置NFC"),
     ModifyPassword("modifyPassword","修改密码"),
+
     BatchModifyUserValidTimeRequest("batchModifyUserValidTimeRequest","批量修改用户时效");
     String url;
     String dsc;

+ 25 - 6
src/main/java/com/template/services/impl/ElectricEquipmentServiceImpl.java

@@ -2,11 +2,14 @@ package com.template.services.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.mapper.ElectricEquipmentMapper;
 import com.template.model.pojo.ElectricEquipment;
 import com.template.services.ElectricEquipmentService;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
@@ -29,7 +32,7 @@ public class ElectricEquipmentServiceImpl extends ServiceImpl<ElectricEquipmentM
     /**
      * 获取所有房间的电表设备
      */
-//    @Scheduled(cron = "0 22 * * * ? ")
+//    @Scheduled(cron = "0 34 * * * ? ")
 //    1
     @Transactional(rollbackFor = Exception.class)//1
     public void getHouseNumberEquipment() {
@@ -42,20 +45,36 @@ public class ElectricEquipmentServiceImpl extends ServiceImpl<ElectricEquipmentM
         JSONArray meterObj = jsonObject.getJSONArray("meterObj");
         ArrayList<ElectricEquipment> electricEquipments = new ArrayList<>();
 
+
         for (int i = 0; i < meterObj.size(); i++) {
             JSONObject jsonObject1 = meterObj.getJSONObject(i);
-            ElectricEquipment electricEquipment = new ElectricEquipment();
+//            ElectricEquipment electricEquipment = new ElectricEquipment();
+//            electricEquipment.setMeterId(jsonObject1.getString("meterId"));
+//            electricEquipment.setRoomId(jsonObject1.getString("roomId"));
+//            electricEquipment.setRoomNum(jsonObject1.getString("roomNum"));
+//            electricEquipment.setMeterName(jsonObject1.getString("meterName"));
+//            electricEquipments.add(electricEquipment);
+
+            String roomNum = jsonObject1.getString("roomNum");
+            String roomId = jsonObject1.getString("roomId");
+            LambdaQueryWrapper<ElectricEquipment> wrapper=new LambdaQueryWrapper<>();
+            wrapper/*.eq(ElectricEquipment::getRoomNum,roomNum)*/
+                    .eq(ElectricEquipment::getRoomId,roomId);
+            ElectricEquipment electricEquipment = this.getOne(wrapper);
+            if (ObjectUtils.isEmpty(electricEquipment)) {
+                electricEquipment=new ElectricEquipment();
+//                electricEquipment.setRoomNum(roomNum);
+                electricEquipment.setRoomId(roomId);
+            }
+            electricEquipment.setRoomNum(roomNum);
             electricEquipment.setMeterId(jsonObject1.getString("meterId"));
-            electricEquipment.setRoomId(jsonObject1.getString("roomId"));
-            electricEquipment.setRoomNum(jsonObject1.getString("roomNum"));
             electricEquipment.setMeterName(jsonObject1.getString("meterName"));
             electricEquipments.add(electricEquipment);
-//            this.save(electricEquipment);
         }
 
         System.out.println("electricEquipments.size() = " + electricEquipments.size());
         System.out.println("meterObj.size() = " + meterObj.size());
-        this.saveBatch(electricEquipments);
+        this.saveOrUpdateBatch(electricEquipments);
 
     }
 

+ 4 - 2
src/main/resources/mapper/template/HouseOrderMapper.xml

@@ -10,8 +10,10 @@
         ho.reserve_leave_time as reserveLeaveTime,
         ho.live_time as liveTime,
         ho.leave_time as LeaveTime,
-        ho.reserve_name as reserveName,
-        ho.reserve_phone as phone,
+
+        u1.user_name as reserveName,
+        u1.phone as phone,
+
         u1.card_number  as cardNumber,
         org.name  as orgName,
         ho.live_name as liveName,