diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 66651c4..8eb7f49 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -13,9 +13,9 @@ spring: slave: # 从数据源开关/默认关闭 enabled: true - url: jdbc:mysql://1.13.177.47:3306/bg_wheel_chocks?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://119.45.202.115:3306/bg_wheel_chocks?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: Haiwei123456 + password: haiwei@123 # 初始连接数 initialSize: 5 # 最小连接池数量 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 704c54e..2f709db 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -7,9 +7,9 @@ ruoyi: # 版权年份 copyrightYear: 2025 # 实例演示开关 - demoEnabled: true + demoEnabled: false # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) - profile: D:/ruoyi/uploadPath + profile: F:/nopower/uploadPath # 获取ip地址开关 addressEnabled: true diff --git a/ruoyi-device/src/main/java/com/ruoyi/device/service/IBaseInfoService.java b/ruoyi-device/src/main/java/com/ruoyi/device/service/IBaseInfoService.java index ebe0777..a174a5e 100644 --- a/ruoyi-device/src/main/java/com/ruoyi/device/service/IBaseInfoService.java +++ b/ruoyi-device/src/main/java/com/ruoyi/device/service/IBaseInfoService.java @@ -1,8 +1,9 @@ package com.ruoyi.device.service; -import java.util.List; import com.ruoyi.device.domain.BaseInfo; +import java.util.List; + /** * 设备基础信息Service接口 * @@ -42,6 +43,7 @@ public interface IBaseInfoService * @return 结果 */ public int updateBaseInfo(BaseInfo baseInfo); + public int updateBaseInfoForApi(BaseInfo baseInfo); /** * 批量删除设备基础信息 diff --git a/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/BaseInfoServiceImpl.java b/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/BaseInfoServiceImpl.java index 2743266..5ed4ee3 100644 --- a/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/BaseInfoServiceImpl.java +++ b/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/BaseInfoServiceImpl.java @@ -1,61 +1,57 @@ package com.ruoyi.device.service.impl; -import java.util.List; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; -import com.ruoyi.device.domain.BaseType; +import com.ruoyi.device.domain.BaseInfo; +import com.ruoyi.device.mapper.BaseInfoMapper; +import com.ruoyi.device.service.IBaseInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.device.mapper.BaseInfoMapper; -import com.ruoyi.device.domain.BaseInfo; -import com.ruoyi.device.service.IBaseInfoService; -import com.ruoyi.common.core.text.Convert; + +import java.util.List; /** * 设备基础信息Service业务层处理 - * + * * @author ruoyi * @date 2025-05-19 */ @Service -public class BaseInfoServiceImpl implements IBaseInfoService -{ +public class BaseInfoServiceImpl implements IBaseInfoService { @Autowired private BaseInfoMapper baseInfoMapper; /** * 查询设备基础信息 - * + * * @param objId 设备基础信息主键 * @return 设备基础信息 */ @Override - public BaseInfo selectBaseInfoByObjId(Long objId) - { + public BaseInfo selectBaseInfoByObjId(Long objId) { return baseInfoMapper.selectBaseInfoByObjId(objId); } /** * 查询设备基础信息列表 - * + * * @param baseInfo 设备基础信息 * @return 设备基础信息 */ @Override - public List selectBaseInfoList(BaseInfo baseInfo) - { + public List selectBaseInfoList(BaseInfo baseInfo) { return baseInfoMapper.selectBaseInfoList(baseInfo); } /** * 新增设备基础信息 - * + * * @param baseInfo 设备基础信息 * @return 结果 */ @Override - public int insertBaseInfo(BaseInfo baseInfo) - { + public int insertBaseInfo(BaseInfo baseInfo) { baseInfo.setCreateTime(DateUtils.getNowDate()); baseInfo.setCreateBy(ShiroUtils.getLoginName()); return baseInfoMapper.insertBaseInfo(baseInfo); @@ -63,46 +59,49 @@ public class BaseInfoServiceImpl implements IBaseInfoService /** * 修改设备基础信息 - * + * * @param baseInfo 设备基础信息 * @return 结果 */ @Override - public int updateBaseInfo(BaseInfo baseInfo) - { + public int updateBaseInfo(BaseInfo baseInfo) { baseInfo.setUpdateTime(DateUtils.getNowDate()); baseInfo.setUpdateBy(ShiroUtils.getLoginName()); return baseInfoMapper.updateBaseInfo(baseInfo); } + @Override + public int updateBaseInfoForApi(BaseInfo baseInfo) { + + return baseInfoMapper.updateBaseInfo(baseInfo); + } + /** * 批量删除设备基础信息 - * + * * @param objIds 需要删除的设备基础信息主键 * @return 结果 */ @Override - public int deleteBaseInfoByObjIds(String objIds) - { + public int deleteBaseInfoByObjIds(String objIds) { return baseInfoMapper.deleteBaseInfoByObjIds(Convert.toStrArray(objIds)); } /** * 删除设备基础信息信息 - * + * * @param objId 设备基础信息主键 * @return 结果 */ @Override - public int deleteBaseInfoByObjId(Long objId) - { + public int deleteBaseInfoByObjId(Long objId) { return baseInfoMapper.deleteBaseInfoByObjId(objId); } @Override public boolean checkDeviceCode(BaseInfo baseInfo) { BaseInfo result = baseInfoMapper.checkDeviceCode(baseInfo); - if (result==null) { + if (result == null) { return true; } if (result.getObjId().equals(baseInfo.getObjId())) { diff --git a/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/RecordUseServiceImpl.java b/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/RecordUseServiceImpl.java index 429b37a..d9a5a70 100644 --- a/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/RecordUseServiceImpl.java +++ b/ruoyi-device/src/main/java/com/ruoyi/device/service/impl/RecordUseServiceImpl.java @@ -1,14 +1,13 @@ package com.ruoyi.device.service.impl; -import java.util.List; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.device.domain.RecordUse; +import com.ruoyi.device.mapper.RecordUseMapper; +import com.ruoyi.device.service.IRecordUseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.device.mapper.RecordUseMapper; -import com.ruoyi.device.domain.RecordUse; -import com.ruoyi.device.service.IRecordUseService; -import com.ruoyi.common.core.text.Convert; + +import java.util.List; /** * 使用记录Service业务层处理 @@ -55,8 +54,8 @@ public class RecordUseServiceImpl implements IRecordUseService @Override public int insertRecordUse(RecordUse recordUse) { - recordUse.setCreateTime(DateUtils.getNowDate()); - recordUse.setCreateBy(ShiroUtils.getLoginName()); + // recordUse.setCreateTime(DateUtils.getNowDate()); + // recordUse.setCreateBy(ShiroUtils.getLoginName()); return recordUseMapper.insertRecordUse(recordUse); } diff --git a/ruoyi-device/src/main/resources/mapper/device/BaseInfoMapper.xml b/ruoyi-device/src/main/resources/mapper/device/BaseInfoMapper.xml index 4cd7683..f6b682f 100644 --- a/ruoyi-device/src/main/resources/mapper/device/BaseInfoMapper.xml +++ b/ruoyi-device/src/main/resources/mapper/device/BaseInfoMapper.xml @@ -20,6 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -40,7 +41,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" open_password, dbt.device_type_name, dbt.default_price, - dbt.default_time + dbt.default_time, + dbt.remark from device_base_info info left join device_base_type dbt on info.device_type = dbt.obj_id diff --git a/ruoyi-device/src/main/resources/templates/device/base_info/add.html b/ruoyi-device/src/main/resources/templates/device/base_info/add.html index 4799151..f27adb9 100644 --- a/ruoyi-device/src/main/resources/templates/device/base_info/add.html +++ b/ruoyi-device/src/main/resources/templates/device/base_info/add.html @@ -36,10 +36,10 @@
- - + + + +
diff --git a/ruoyi-device/src/main/resources/templates/device/base_info/edit.html b/ruoyi-device/src/main/resources/templates/device/base_info/edit.html index a2ff0cd..b36f8f1 100644 --- a/ruoyi-device/src/main/resources/templates/device/base_info/edit.html +++ b/ruoyi-device/src/main/resources/templates/device/base_info/edit.html @@ -58,10 +58,10 @@
- - + + + +
diff --git a/ruoyi-device/src/main/resources/templates/device/record_use/record_use.html b/ruoyi-device/src/main/resources/templates/device/record_use/record_use.html index 45727cf..16ab382 100644 --- a/ruoyi-device/src/main/resources/templates/device/record_use/record_use.html +++ b/ruoyi-device/src/main/resources/templates/device/record_use/record_use.html @@ -100,6 +100,8 @@ removeUrl: prefix + "/remove", exportUrl: prefix + "/export", modalName: "使用记录", + sortName: "openTime", + sortOrder: "desc", columns: [{ checkbox: true }, diff --git a/ruoyi-pda/src/main/java/com/ruoyi/pda/controller/PdaApiController.java b/ruoyi-pda/src/main/java/com/ruoyi/pda/controller/PdaApiController.java index 766a917..0f9714b 100644 --- a/ruoyi-pda/src/main/java/com/ruoyi/pda/controller/PdaApiController.java +++ b/ruoyi-pda/src/main/java/com/ruoyi/pda/controller/PdaApiController.java @@ -1,17 +1,26 @@ package com.ruoyi.pda.controller; +import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.device.domain.BaseInfo; +import com.ruoyi.device.domain.RecordUse; import com.ruoyi.device.service.IBaseInfoService; +import com.ruoyi.device.service.IRecordUseService; +import com.ruoyi.pda.domain.MyResult; import com.ruoyi.pda.service.IPdaApiService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; -import java.io.IOException; -import java.net.HttpURLConnection; -import java.net.URL; +import java.time.LocalDate; +import java.time.YearMonth; +import java.util.List; import static com.ruoyi.common.core.domain.AjaxResult.error; import static com.ruoyi.common.core.domain.AjaxResult.success; @@ -24,6 +33,9 @@ public class PdaApiController { @Autowired private IBaseInfoService baseInfoService; + @Autowired + private IRecordUseService recordUseService; + @PostMapping("/home/selectDeviceInfo") public AjaxResult selectDeviceInfo(String code) { BaseInfo baseInfo = baseInfoService.selectDeviceInfo(code); @@ -37,22 +49,64 @@ public class PdaApiController { } - public AjaxResult open() throws IOException { - URL url = new URL("https://api.example.com/data"); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestMethod("GET"); + @PostMapping("/home/openDeviceLock") + public AjaxResult openDeviceLock(@RequestBody BaseInfo baseInfo) { + String deviceCode = baseInfo.getDeviceCode(); + String openPassword = baseInfo.getOpenPassword(); - int responseCode = conn.getResponseCode(); - if (responseCode == 200) { - // BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); - // String inputLine; - // StringBuilder response = new StringBuilder(); - // while ((inputLine = in.readLine()) != null) { - // response.append(inputLine); - // } - // in.close(); - // System.out.println(response); + ResponseEntity response = null; + try { + RestTemplate restTemplate = new RestTemplate(); + // String url = "http://127.0.0.1:7789/devcontrolbusiness/unlock?idStr=" + deviceCode + "&password=" + openPassword; + String url = "http://119.45.202.115:7789/devcontrolbusiness/unlock?idStr=" + deviceCode + "&password=" + openPassword; + // 根据实际情况调整参数值 + response = restTemplate.getForEntity(url, String.class); + + if (response.getStatusCode().is2xxSuccessful()) { + // {"code":200/500,"isSuc":true,"msg":"开锁指令下发成功,已收到设备回复","buffer":null,"data":null} + MyResult myResult = JSONObject.parseObject(response.getBody(), MyResult.class); + if (myResult.getCode() == 200) { + /** + * 插入记录 + */ + RecordUse recordUse = new RecordUse(); + BeanUtils.copyProperties(baseInfo, recordUse); + recordUse.setDeviceId(String.valueOf(baseInfo.getObjId()));//设备ID + recordUse.setDeviceType(baseInfo.getTypeName());//设备类型 + recordUse.setChargePrice(baseInfo.getDefaultPrice());//计费价格 + recordUse.setUseState("1"); + // 获取当前日期和时间 + LocalDate now = LocalDate.now(); + // 从LocalDate获取YearMonth + YearMonth currentYearMonth = YearMonth.from(now); + // 获取年份和月份 + recordUse.setQueryYear(String.valueOf(currentYearMonth.getYear())); + recordUse.setQueryMonth(String.valueOf(currentYearMonth.getMonthValue())); + recordUseService.insertRecordUse(recordUse); + /** + * 修改基础信息 + */ + BaseInfo updateBaseInfo = new BaseInfo(); + updateBaseInfo.setObjId(baseInfo.getObjId()); + updateBaseInfo.setUseState("1"); + baseInfoService.updateBaseInfoForApi(updateBaseInfo); + return success("开锁成功"); + } else { + return error(myResult.getMsg()); + } + } + } catch (RestClientException e) { + return error("通讯失败"); } - return success(conn.getInputStream()); + + return success("开锁成功"); } + + @PostMapping("/record/selectUseList") + public AjaxResult selectUseList() { + List list=service.selectUseList(); + return success(list); + } + + } diff --git a/ruoyi-pda/src/main/java/com/ruoyi/pda/domain/MyResult.java b/ruoyi-pda/src/main/java/com/ruoyi/pda/domain/MyResult.java new file mode 100644 index 0000000..50832f7 --- /dev/null +++ b/ruoyi-pda/src/main/java/com/ruoyi/pda/domain/MyResult.java @@ -0,0 +1,32 @@ +package com.ruoyi.pda.domain; + +public class MyResult { + private int code; + private String msg; + + private Object data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } +} diff --git a/ruoyi-pda/src/main/java/com/ruoyi/pda/mapper/PdaApiMapper.java b/ruoyi-pda/src/main/java/com/ruoyi/pda/mapper/PdaApiMapper.java index e248b36..78281b9 100644 --- a/ruoyi-pda/src/main/java/com/ruoyi/pda/mapper/PdaApiMapper.java +++ b/ruoyi-pda/src/main/java/com/ruoyi/pda/mapper/PdaApiMapper.java @@ -1,8 +1,11 @@ package com.ruoyi.pda.mapper; +import com.ruoyi.device.domain.RecordUse; import org.springframework.stereotype.Repository; -import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; @Repository public interface PdaApiMapper { + List selectUseList(); } diff --git a/ruoyi-pda/src/main/java/com/ruoyi/pda/service/IPdaApiService.java b/ruoyi-pda/src/main/java/com/ruoyi/pda/service/IPdaApiService.java index 5cb3649..1e8b1c6 100644 --- a/ruoyi-pda/src/main/java/com/ruoyi/pda/service/IPdaApiService.java +++ b/ruoyi-pda/src/main/java/com/ruoyi/pda/service/IPdaApiService.java @@ -1,4 +1,9 @@ package com.ruoyi.pda.service; +import com.ruoyi.device.domain.RecordUse; + +import java.util.List; + public interface IPdaApiService { + List selectUseList(); } diff --git a/ruoyi-pda/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java b/ruoyi-pda/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java index e47327e..bfc6672 100644 --- a/ruoyi-pda/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java +++ b/ruoyi-pda/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java @@ -1,12 +1,20 @@ package com.ruoyi.pda.service.impl; +import com.ruoyi.device.domain.RecordUse; import com.ruoyi.pda.mapper.PdaApiMapper; import com.ruoyi.pda.service.IPdaApiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class PdaServiceImpl implements IPdaApiService { @Autowired private PdaApiMapper mapper; + + @Override + public List selectUseList() { + return mapper.selectUseList(); + } } diff --git a/ruoyi-pda/src/main/resources/mapper/PdaApiMapper.xml b/ruoyi-pda/src/main/resources/mapper/PdaApiMapper.xml index 8ec90d8..8bcd37e 100644 --- a/ruoyi-pda/src/main/resources/mapper/PdaApiMapper.xml +++ b/ruoyi-pda/src/main/resources/mapper/PdaApiMapper.xml @@ -1,5 +1,18 @@ - +