From 5cc8e75a7c432e133beb3220d8ce2f15ea16e084 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期三, 25 六月 2025 11:18:31 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml | 49 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureCtrl.java | 33 + pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/QueryVo.java | 23 + pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/QueryVo.java | 23 + pipIrr-platform/文档/水肥气象墒情/MQTT指令不执行解决备忘.docx | 0 pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java | 129 +++- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoWeather.java | 63 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java | 70 +- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoManure.java | 63 ++ pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 257 +++++++++-- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilCtrl.java | 34 + pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java | 81 +++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 17 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilSv.java | 25 + pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherCtrl.java | 34 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java | 20 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml | 48 ++ pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/ManagementCardStateENUM.java | 23 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml | 47 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java | 18 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagementCardMapper.xml | 30 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java | 18 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/QueryVo.java | 23 + pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoCallBack.java | 2 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoSoil.java | 63 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherSv.java | 25 + pipIrr-platform/文档/水肥气象墒情/MQTT设定时间参数备忘.docx | 0 pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/OperateTypeENUM.java | 25 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java | 62 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureSv.java | 26 + README.md | 41 + 31 files changed, 1,215 insertions(+), 157 deletions(-) diff --git a/README.md b/README.md index 8797567..82aa550 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,47 @@ - **宸ュ叿闆�**: Hutool 5.8.22 - **鏃ュ織妗嗘灦**: Log4j2 2.20.0 +## ID鐢熸垚鍣ㄤ娇鐢ㄨ鏄� + +绯荤粺浣跨敤鑷畾涔夌殑IDLongGenerator鏉ョ敓鎴愬敮涓�鐨凩ong鍨婭D锛岀‘淇濆湪鍒嗗竷寮忕幆澧冧笅鐨処D鍞竴鎬с�� + +### IDLongGenerator鐗规�� + +- **鏍煎紡**: `骞存湀鏃ユ椂鍒嗙` + `3浣嶈嚜澧炲簭鍒梎 + `2浣嶇郴缁熷悗缂�` +- **闀垮害**: 19浣嶆暟瀛楋紙濡傦細20231218104504069**00**锛� +- **骞跺彂鎬�**: 鏀寔鍚屼竴绉掑唴鐢熸垚1000涓笉鍚孖D +- **鍒嗗竷寮�**: 閫氳繃鍚庣紑鍖哄垎涓嶅悓瀛愮郴缁燂紝閬垮厤ID鍐茬獊 + +### 浣跨敤鏂瑰紡 + +```java +// 渚濊禆娉ㄥ叆 +@Autowired +private IDLongGenerator idLongGenerator; + +// 鐢熸垚ID +Long id = idLongGenerator.generate(); +``` + +### 搴旂敤鍦烘櫙 + +- **绠$悊鍗″垱寤�**: createManagementCard鏂规硶涓娇鐢↖DLongGenerator鐢熸垚绠$悊鍗D +- **瀹炰綋涓婚敭**: 鎵�鏈変笟鍔″疄浣撶殑涓婚敭ID鐢熸垚 +- **璁㈠崟鍙�**: 涓氬姟娴佹按鍙风敓鎴� +- **鏃ュ織璁板綍**: 鎿嶄綔璁板綍鐨勫敮涓�鏍囪瘑 + +### 閰嶇疆璇存槑 + +绯荤粺鍚姩鏃朵細鑷姩璁剧疆ID鍚庣紑锛屼笉鍚岀殑鏈嶅姟妯″潡浣跨敤涓嶅悓鐨勫悗缂�鏉ラ伩鍏岻D鍐茬獊锛� + +```xml +<!-- web.xml鎴朣pring閰嶇疆 --> +<context-param> + <param-name>idSuffix</param-name> + <param-value>01</param-value> <!-- 涓嶅悓鏈嶅姟浣跨敤涓嶅悓鍚庣紑 --> +</context-param> +``` + ## 寮�鍙戠幆澧冩惌寤� ### 鍓嶇疆鏉′欢 diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java index 62a2163..a36c38c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java @@ -2,10 +2,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoPr.PrStManure; +import com.dy.pipIrrGlobal.voPr.VoManure; import com.dy.pipIrrGlobal.voPr.VoMqttSimple; +import com.dy.pipIrrGlobal.voPr.VoSoil; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -31,6 +34,23 @@ List<VoMqttSimple> selectAllSimple() ; + + VoManure selectOne(Long id) ; + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鎬绘暟 + * @param params + * @return + */ + Long totalCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * @param params + * @return + */ + List<VoManure> selectSome(Map<?, ?> params); + + int updateByPrimaryKeySelective(PrStManure record); int updateByPrimaryKey(PrStManure record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java index 63e744b..9e3dfcf 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoPr.PrStSoil; import com.dy.pipIrrGlobal.voPr.VoMqttSimple; +import com.dy.pipIrrGlobal.voPr.VoSoil; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -31,6 +33,22 @@ List<VoMqttSimple> selectAllSimple() ; + + VoSoil selectOne(Long id) ; + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鎬绘暟 + * @param params + * @return + */ + Long totalCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * @param params + * @return + */ + List<VoSoil> selectSome(Map<?, ?> params); + int updateByPrimaryKeySelective(PrStSoil record); int updateByPrimaryKey(PrStSoil record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java index 0a66151..385526c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoPr.PrStWeather; import com.dy.pipIrrGlobal.voPr.VoMqttSimple; +import com.dy.pipIrrGlobal.voPr.VoWeather; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -29,6 +31,22 @@ PrStWeather selectByPrimaryKey(Long id); + + VoWeather selectOne(Long id) ; + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鎬绘暟 + * @param params + * @return + */ + Long totalCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * @param params + * @return + */ + List<VoWeather> selectSome(Map<?, ?> params); + List<VoMqttSimple> selectAllSimple() ; int updateByPrimaryKeySelective(PrStWeather record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java index 1029716..8757677 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java @@ -35,6 +35,7 @@ /** * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級 * 2024-06-30鍙栨秷搴熷純锛屾仮澶嶄娇鐢� + * * @param cardAddr * @return */ @@ -42,6 +43,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛� + * * @param cardNum 16浣嶆按鍗$紪鍙� * @return 姘村崱琛ㄤ富閿� */ @@ -49,6 +51,7 @@ /** * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙� + * * @param areaCode * @return */ @@ -56,6 +59,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 + * * @param cardNum * @return */ @@ -63,6 +67,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚� + * * @param cardAddr * @param cardNum * @return @@ -71,6 +76,7 @@ /** * 寰楀埌姘村崱瀵硅薄 + * * @param cardAddr * @param cardNum * @return @@ -79,6 +85,7 @@ /** * 鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級 + * * @param clientId * @return */ @@ -86,6 +93,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃 + * * @param cardNum 姘村崱缂栧彿 * @return 姘村崱鎿嶄綔璁板綍鍒楄〃 */ @@ -93,6 +101,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇浣欓 + * * @param cardNum 姘村崱缂栧彿 * @return 浣欓 */ @@ -100,6 +109,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇鍏呭�兼�婚 + * * @param cardNum * @return */ @@ -107,6 +117,7 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗$墖鐘舵�� + * * @param cardNum * @return */ @@ -114,6 +125,7 @@ /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤 + * * @param params * @return */ @@ -121,6 +133,7 @@ /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢� + * * @param params * @return */ @@ -128,18 +141,21 @@ /** * 鑾峰彇宸叉寕澶憋紝鏈ˉ鍗$殑璁板綍鏁伴噺锛屽簲鐢ㄧ▼搴忎娇鐢� + * * @return */ Long getUnreplacedRecordCount(); /** * 鑾峰彇宸叉寕澶憋紝鏈ˉ鍗$殑璁板綍锛屽簲鐢ㄧ▼搴忎娇鐢� + * * @return */ List<VoCards> getUnreplaced(Map<?, ?> params); /** * 鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇鎸傚け璁板綍鏁伴噺锛堣ˉ鍗°�佽В閿佷娇鐢級 + * * @param cardNum * @return */ @@ -147,6 +163,7 @@ /** * 鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇宸茶ˉ鍗℃暟閲忥紙琛ュ崱銆佽В閿佷娇鐢級 + * * @param cardNum 姘村崱缂栧彿 * @return 绗﹀悎鏉′欢璁板綍鏁帮紝鏈�澶氫竴鏉� */ @@ -154,6 +171,7 @@ /** * 鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤 + * * @param params * @return */ @@ -161,14 +179,15 @@ /** * 鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢� + * * @param params * @return */ List<VoCards2> getCardsByClientNameAndPhone(Map<?, ?> params); - /** * 鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃,灏忕▼搴忎娇鐢� + * * @param clientId * @return */ @@ -176,13 +195,15 @@ /** * 鏇存柊瀹炰綋鍗″墿浣欓噾棰� + * * @param id * @param money */ - void updateMoney(@Param("id")Long id , @Param("money")Double money); + void updateMoney(@Param("id") Long id, @Param("money") Double money); /** - *褰撳墠浣欓鎬婚噺锛堢墿鐞嗗崱锛� + * 褰撳墠浣欓鎬婚噺锛堢墿鐞嗗崱锛� + * * @param * @return */ @@ -190,6 +211,7 @@ /** * 鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺锛岀敤鏉ュ垽鏂鍗℃槸鍚﹀厑璁稿紑鍗★紝鏃犳晥鍗$墖鎺掗櫎鍦ㄥ + * * @param cardAddr * @return */ @@ -197,14 +219,15 @@ /** * 鏍规嵁姘村崱鍦板潃鑾峰彇鎸囧畾鐘舵�佺殑姘村崱鏁伴噺锛岀敤鏉ュ垽鏂鍗℃槸鍚﹀厑璁稿紑鍗� + * * @param cardAddr * @return */ Long getCountByCardAddrAndState(String cardAddr); - /** * 鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐佃褰曟暟閲� + * * @param params * @return */ @@ -212,6 +235,7 @@ /** * 鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐碉細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰� + * * @param params * @return */ @@ -219,37 +243,42 @@ /** * 鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱鍏呭�兼�昏 + * * @param timeStart * @param timeStop * @return */ - Float getTotalRecharge(@Param("timeStart")String timeStart, @Param("timeStop")String timeStop); + Float getTotalRecharge(@Param("timeStart") String timeStart, @Param("timeStop") String timeStop); /** * 鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱娑堣垂鎬昏 + * * @param timeStart * @param timeStop * @return */ - Float getTotalConsumption(@Param("timeStart")String timeStart, @Param("timeStop")String timeStop); + Float getTotalConsumption(@Param("timeStart") String timeStart, @Param("timeStop") String timeStop); /** * 渚濇嵁姘村崱鍦板潃灏嗘渶鍚庝竴鏉℃棤鏁堢姸鎬佺殑鎸囧畾鎿嶄綔璁板綍鏀逛负鏈夋晥 + * * @param cardAddr * @param operateType * @return */ - Integer turnCardValidByAddr(@Param("cardAddr")String cardAddr, @Param("operateType")Integer operateType); + Integer turnCardValidByAddr(@Param("cardAddr") String cardAddr, @Param("operateType") Integer operateType); /** * 鍏呭�兼満鐢ㄦ牴鎹鍗曞彿灏嗘按鍗℃敼涓烘湁鏁� + * * @param orderNumber * @return */ - Integer turnCardValidByOrderNumber(@Param("orderNumber")String orderNumber); + Integer turnCardValidByOrderNumber(@Param("orderNumber") String orderNumber); /** * 鏍规嵁姘村崱ID鑾峰彇鍘熸按鍗D锛岃ˉ鍗¢�氱煡涓娇鐢� + * * @param cardId * @return */ @@ -257,20 +286,23 @@ /** * 鍏呭�兼満鐢ㄦ牴鎹ˉ鍗$殑璁㈠崟鍙峰皢鎸傚け姘村崱浣欓缃浂 + * * @param orderNumber * @return */ - Integer emptyCardBalance(@Param("orderNumber")String orderNumber); + Integer emptyCardBalance(@Param("orderNumber") String orderNumber); /** * 鍏呭�兼満鐢ㄨ幏鍙栧啘鎴锋按鍗′俊鎭� + * * @param cardAddr * @return */ - VoTermCard getTermCardInfo(@Param("cardAddr")String cardAddr); + VoTermCard getTermCardInfo(@Param("cardAddr") String cardAddr); /** * 鑾峰彇宸叉寕澶辨按鍗″垪琛ㄨ褰曟暟閲� + * * @param params * @return */ @@ -278,6 +310,7 @@ /** * 鑾峰彇宸叉寕澶辨按鍗″垪琛� + * * @param params * @return */ @@ -285,8 +318,17 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭� + * * @param cardNum * @return */ VoCardByClientNum getCardByCardNum(@Param("cardNum") String cardNum); + + /** + * 妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦紙绠$悊鍗¤〃 + 鍐滄埛姘村崱琛級 + * + * @param cardAddr 鍗″湴鍧� + * @return 瀛樺湪鐨勮褰曟暟閲� + */ + Long checkCardAddrExists(@Param("cardAddr") String cardAddr); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java index 9daf090..b6372c8 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.dy.common.po.BaseEntity; @@ -20,7 +21,7 @@ * @Description 鍏呭�兼満鐢ㄧ鐞嗗崱 */ -@TableName(value="se_management_card", autoResultMap = true) +@TableName(value = "se_management_card", autoResultMap = true) @Data @Builder @ToString @@ -30,76 +31,89 @@ public static final long serialVersionUID = 202506240651001L; /** - * 涓婚敭 - */ - @JSONField(serializeUsing= ObjectWriterImplToString.class) + * 涓婚敭 + */ + @JSONField(serializeUsing = ObjectWriterImplToString.class) @TableId(type = IdType.INPUT) private Long id; /** - * 閫氳鍗忚 - */ + * 閫氳鍗忚 + */ @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖") private String protocol; /** - * 鍗$墖鍦板潃 - */ + * 鍗$墖鍦板潃 + */ @NotBlank(message = "鍗$墖鍦板潃涓嶈兘涓虹┖") private String cardAddr; /** - * 璇嗗埆鐮� - */ + * 璇嗗埆鐮� + */ @NotBlank(message = "璇嗗埆鐮佷笉鑳戒负绌�") private String securityCode; /** - * 鍗$墖绫诲瀷;2-璁剧疆鍖哄煙琛ㄥ彿鍗★紝3-鍙栨暟鍗★紝4-妫�鏌ュ崱锛�5-娴嬭瘯鍗★紝6-娓呴浂鍗★紝7-IP璁剧疆鍗★紝8-鍩熷悕璁剧疆鍗★紝9-GPS鍗★紝10-鏃堕棿閰嶇疆鍗� - */ + * 鍗$墖绫诲瀷;2-璁剧疆鍖哄煙琛ㄥ彿鍗★紝3-鍙栨暟鍗★紝4-妫�鏌ュ崱锛�5-娴嬭瘯鍗★紝6-娓呴浂鍗★紝7-IP璁剧疆鍗★紝8-鍩熷悕璁剧疆鍗★紝9-GPS鍗★紝10-鏃堕棿閰嶇疆鍗� + */ @NotNull(message = "鍗$墖绫诲瀷涓嶈兘涓虹┖") private Byte cardType; /** - * 寮�鍗℃椂闂� - */ + * 寮�鍗℃椂闂� + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @NotNull(message = "寮�鍗℃椂闂翠笉鑳戒负绌�") private Date createTime; /** - * 璁㈠崟鍙� - */ + * 璁㈠崟鍙� + */ private String orderNo; /** - * 5绾ц鏀垮尯鍒掔紪鐮� - */ + * 5绾ц鏀垮尯鍒掔紪鐮� + */ private String districtCode; /** - * 椤圭洰缂栫爜 - */ + * 椤圭洰缂栫爜 + */ private Integer projectNo; /** - * IP鍦板潃 - */ + * IP鍦板潃 + */ private String ip; /** - * 鍩熷悕 - */ + * 鍩熷悕 + */ private String domain; /** - * 寮�鍏抽榾鏃堕棿 - */ + * 寮�鍏抽榾鏃堕棿 + */ private Integer openClostTime; /** - * 澶囨敞淇℃伅 - */ + * 澶囨敞淇℃伅 + */ private String remarks; + /** + * 娉ㄩ攢鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("cancel_time") + private Date cancelTime; + + /** + * 鍗$墖鐘舵��;1-姝e父锛�2-宸叉敞閿�锛�3-宸叉寕澶憋紝4-鏈啓鍗� + */ + @NotNull(message = "鍗$墖鐘舵�佷笉鑳戒负绌�") + private Byte state; + } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoManure.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoManure.java new file mode 100644 index 0000000..3aa6df7 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoManure.java @@ -0,0 +1,63 @@ +package com.dy.pipIrrGlobal.voPr; + +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @Author: liurunyu + * @Date: 2025/6/24 17:11 + * @Description + */ +@Data +@JsonPropertyOrder({ "id", "fboxId", "no", "name", "lng", "lat", "remark"}) +@Schema(title = "姘磋偉鏈哄�煎璞�") +public class VoManure implements BaseEntity { + private static final long serialVersionUID = 202506241715001L; + /** + * 涓婚敭 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(title = "姘磋偉鏈篒D") + public Long id; + + /** + * FBox搴忓垪鍙� + */ + @Schema(title = "FBox搴忓垪鍙�") + public String fboxId ; + + /** + * 姘磋偉绔欑紪鍙� + */ + @Schema(title = "缂栧彿") + public Integer no ; + + /** + * 姘磋偉绔欏悕绉� + */ + @Schema(title = "鍚嶇О") + public String name; + + /** + * 缁忓害 + */ + @Schema(title = "缁忓害") + public Double lng; + + /** + * 绾害 + */ + @Schema(title = "绾害") + public Double lat; + + /** + * 澶囨敞 + */ + @Schema(title = "澶囨敞") + public String remark; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoSoil.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoSoil.java new file mode 100644 index 0000000..13b32d9 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoSoil.java @@ -0,0 +1,63 @@ +package com.dy.pipIrrGlobal.voPr; + +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @Author: liurunyu + * @Date: 2025/6/24 17:11 + * @Description + */ +@Data +@JsonPropertyOrder({ "id", "fboxId", "no", "name", "lng", "lat", "remark"}) +@Schema(title = "澧掓儏绔欏�煎璞�") +public class VoSoil implements BaseEntity { + private static final long serialVersionUID = 202506241715002L; + /** + * 涓婚敭 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(title = "澧掓儏绔橧D") + public Long id; + + /** + * FBox搴忓垪鍙� + */ + @Schema(title = "FBox搴忓垪鍙�") + public String fboxId ; + + /** + * 姘磋偉绔欑紪鍙� + */ + @Schema(title = "缂栧彿") + public Integer no ; + + /** + * 姘磋偉绔欏悕绉� + */ + @Schema(title = "鍚嶇О") + public String name; + + /** + * 缁忓害 + */ + @Schema(title = "缁忓害") + public Double lng; + + /** + * 绾害 + */ + @Schema(title = "绾害") + public Double lat; + + /** + * 澶囨敞 + */ + @Schema(title = "澶囨敞") + public String remark; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoWeather.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoWeather.java new file mode 100644 index 0000000..8da86b2 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoWeather.java @@ -0,0 +1,63 @@ +package com.dy.pipIrrGlobal.voPr; + +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @Author: liurunyu + * @Date: 2025/6/24 17:11 + * @Description + */ +@Data +@JsonPropertyOrder({ "id", "fboxId", "no", "name", "lng", "lat", "remark"}) +@Schema(title = "姘旇薄绔欏�煎璞�") +public class VoWeather implements BaseEntity { + private static final long serialVersionUID = 202506241715003L; + /** + * 涓婚敭 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(title = "姘旇薄绔橧D") + public Long id; + + /** + * FBox搴忓垪鍙� + */ + @Schema(title = "FBox搴忓垪鍙�") + public String fboxId ; + + /** + * 姘磋偉绔欑紪鍙� + */ + @Schema(title = "缂栧彿") + public Integer no ; + + /** + * 姘磋偉绔欏悕绉� + */ + @Schema(title = "鍚嶇О") + public String name; + + /** + * 缁忓害 + */ + @Schema(title = "缁忓害") + public Double lng; + + /** + * 绾害 + */ + @Schema(title = "绾害") + public Double lat; + + /** + * 澶囨敞 + */ + @Schema(title = "澶囨敞") + public String remark; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml index a70239a..eed8ceb 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml @@ -39,6 +39,55 @@ from pr_st_manure where deleted != 1 ; </select> + + <select id="selectOne" parameterType="java.lang.Long" resultType="com.dy.pipIrrGlobal.voPr.VoManure"> + <!--@mbg.generated--> + SELECT tb.id, + tb.fbox_id AS fboxId, + tb.`no`, + tb.`name`, + tb.lng, + tb.lat, + tb.remark + FROM pr_st_manure tb + where id = #{id,jdbcType=BIGINT} + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鎬绘暟--> + <select id="totalCount" parameterType="java.util.Map" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM pr_st_manure tb + <where> + tb.deleted != 1 + <if test="name != null and name != ''"> + AND tb.name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + </select> + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ--> + <select id="selectSome" parameterType="java.util.Map" resultType="com.dy.pipIrrGlobal.voPr.VoManure"> + SELECT tb.id, + tb.fbox_id AS fboxId, + tb.`no`, + tb.`name`, + tb.lng, + tb.lat, + tb.remark + FROM pr_st_manure tb + <where> + tb.deleted != 1 + <if test="name != null and name != ''"> + AND tb.name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + ORDER BY tb.id DESC + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!--@mbg.generated--> delete from pr_st_manure diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml index 598436b..f07307c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml @@ -39,6 +39,53 @@ from pr_st_soil where deleted != 1 ; </select> + + <select id="selectOne" parameterType="java.lang.Long" resultType="com.dy.pipIrrGlobal.voPr.VoSoil"> + <!--@mbg.generated--> + SELECT tb.id, + tb.fbox_id AS fboxId, + tb.`no`, + tb.`name`, + tb.lng, + tb.lat, + tb.remark + FROM pr_st_soil tb + where id = #{id,jdbcType=BIGINT} + </select> + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鎬绘暟--> + <select id="totalCount" parameterType="java.util.Map" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM pr_st_soil tb + <where> + tb.deleted != 1 + <if test="name != null and name != ''"> + AND tb.name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + </select> + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ--> + <select id="selectSome" parameterType="java.util.Map" resultType="com.dy.pipIrrGlobal.voPr.VoSoil"> + SELECT tb.id, + tb.fbox_id AS fboxId, + tb.`no`, + tb.`name`, + tb.lng, + tb.lat, + tb.remark + FROM pr_st_soil tb + <where> + tb.deleted != 1 + <if test="name != null and name != ''"> + AND tb.name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + ORDER BY tb.id DESC + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!--@mbg.generated--> delete from pr_st_soil diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml index ade2d3c..84f86e4 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml @@ -32,6 +32,54 @@ from pr_st_weather where id = #{id,jdbcType=BIGINT} </select> + + + <select id="selectOne" parameterType="java.lang.Long" resultType="com.dy.pipIrrGlobal.voPr.VoWeather"> + <!--@mbg.generated--> + SELECT tb.id, + tb.fbox_id AS fboxId, + tb.`no`, + tb.`name`, + tb.lng, + tb.lat, + tb.remark + FROM pr_st_weather tb + where id = #{id,jdbcType=BIGINT} + </select> + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鎬绘暟--> + <select id="totalCount" parameterType="java.util.Map" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM pr_st_weather tb + <where> + tb.deleted != 1 + <if test="name != null and name != ''"> + AND tb.name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + </select> + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ--> + <select id="selectSome" parameterType="java.util.Map" resultType="com.dy.pipIrrGlobal.voPr.VoWeather"> + SELECT tb.id, + tb.fbox_id AS fboxId, + tb.`no`, + tb.`name`, + tb.lng, + tb.lat, + tb.remark + FROM pr_st_weather tb + <where> + tb.deleted != 1 + <if test="name != null and name != ''"> + AND tb.name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + ORDER BY tb.id DESC + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> <select id="selectAllSimple" resultType="com.dy.pipIrrGlobal.voPr.VoMqttSimple"> <!--@mbg.generated--> select diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml index f00cfd5..76c469e 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml @@ -864,4 +864,21 @@ ORDER BY card.createDt DESC LIMIT 1 </select> + + <!--妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦紙绠$悊鍗¤〃 + 鍐滄埛姘村崱琛級--> + <select id="checkCardAddrExists" resultType="java.lang.Long"> + SELECT COUNT(*) AS totalCount FROM ( + -- 妫�鏌ョ鐞嗗崱琛ㄤ腑姝e父(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍锛屾帓闄ゅ凡娉ㄩ攢(2)鍜屾湭鍐欏崱(4) + SELECT card_addr FROM se_management_card + WHERE card_addr = #{cardAddr} + AND state IN (1, 3) + + UNION ALL + + -- 妫�鏌ュ啘鎴锋按鍗¤〃涓甯�(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍 + SELECT cardAddr FROM se_client_card + WHERE cardAddr = #{cardAddr} + AND state IN (1, 3) + ) AS combined_result + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagementCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagementCardMapper.xml index 0e28a72..e3e5445 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagementCardMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagementCardMapper.xml @@ -17,11 +17,13 @@ <result column="domain" jdbcType="VARCHAR" property="domain" /> <result column="open_clost_time" jdbcType="INTEGER" property="openClostTime" /> <result column="remarks" jdbcType="VARCHAR" property="remarks" /> + <result column="cancel_time" jdbcType="TIMESTAMP" property="cancelTime" /> + <result column="state" jdbcType="TINYINT" property="state" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> id, protocol, card_addr, security_code, card_type, create_time, order_no, district_code, - project_no, ip, `domain`, open_clost_time, remarks + project_no, ip, `domain`, open_clost_time, remarks, cancel_time, state </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> @@ -41,12 +43,12 @@ security_code, card_type, create_time, order_no, district_code, project_no, ip, `domain`, open_clost_time, - remarks) + remarks, cancel_time, state) values (#{id,jdbcType=BIGINT}, #{protocol,jdbcType=VARCHAR}, #{cardAddr,jdbcType=VARCHAR}, #{securityCode,jdbcType=VARCHAR}, #{cardType,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP}, #{orderNo,jdbcType=VARCHAR}, #{districtCode,jdbcType=VARCHAR}, #{projectNo,jdbcType=INTEGER}, #{ip,jdbcType=VARCHAR}, #{domain,jdbcType=VARCHAR}, #{openClostTime,jdbcType=INTEGER}, - #{remarks,jdbcType=VARCHAR}) + #{remarks,jdbcType=VARCHAR}, #{cancelTime,jdbcType=TIMESTAMP}, #{state,jdbcType=TINYINT}) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagementCard"> <!--@mbg.generated--> @@ -91,6 +93,12 @@ <if test="remarks != null"> remarks, </if> + <if test="cancelTime != null"> + cancel_time, + </if> + <if test="state != null"> + state, + </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> @@ -131,6 +139,12 @@ </if> <if test="remarks != null"> #{remarks,jdbcType=VARCHAR}, + </if> + <if test="cancelTime != null"> + #{cancelTime,jdbcType=TIMESTAMP}, + </if> + <if test="state != null"> + #{state,jdbcType=TINYINT}, </if> </trim> </insert> @@ -174,6 +188,12 @@ <if test="remarks != null"> remarks = #{remarks,jdbcType=VARCHAR}, </if> + <if test="cancelTime != null"> + cancel_time = #{cancelTime,jdbcType=TIMESTAMP}, + </if> + <if test="state != null"> + state = #{state,jdbcType=TINYINT}, + </if> </set> where id = #{id,jdbcType=BIGINT} </update> @@ -191,7 +211,9 @@ ip = #{ip,jdbcType=VARCHAR}, `domain` = #{domain,jdbcType=VARCHAR}, open_clost_time = #{openClostTime,jdbcType=INTEGER}, - remarks = #{remarks,jdbcType=VARCHAR} + remarks = #{remarks,jdbcType=VARCHAR}, + cancel_time = #{cancelTime,jdbcType=TIMESTAMP}, + state = #{state,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} </update> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureCtrl.java index 19dad05..9963af5 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureCtrl.java @@ -3,8 +3,10 @@ import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.pojoPr.PrStManure; +import com.dy.pipIrrGlobal.voPr.VoManure; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,6 +21,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Objects; /** @@ -39,6 +42,30 @@ this.sv = sv ; } + /** + * 鍒嗛〉鏌ヨ姘磋偉鏈鸿褰� + * @param vo + * @return + */ + @Operation(summary = "鑾峰緱涓�椤垫按鑲ユ満璁板綍", description = "杩斿洖涓�椤垫按鑲ユ満鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤垫按鑲ユ満鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoManure.class))} + ) + }) + @GetMapping(path = "/some") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoManure>>> some(QueryVo vo){ + try { + return BaseResponseUtils.buildSuccess(this.sv.selectSome(vo)); + } catch (Exception e) { + log.error("鑾峰彇姘磋偉鏈鸿褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } /** * 寰楀埌涓�濂楁按鑲ユ満鏁版嵁 @@ -50,13 +77,13 @@ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�濂楁按鑲ユ満鏁版嵁锛圔aseResponse.content:{}锛�", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = PrStManure.class))} + schema = @Schema(implementation = VoManure.class))} ) }) @GetMapping(path = "one") @SsoAop() - public BaseResponse<PrStManure> one(Long id){ - return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); + public BaseResponse<VoManure> one(Long id){ + return BaseResponseUtils.buildSuccess(this.sv.selectOne(id)); } /** diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureSv.java index afcf207..59040a7 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/ManureSv.java @@ -1,14 +1,18 @@ package com.dy.pipIrrProject.mqtt.manure; +import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoPr.PrStManureMapper; import com.dy.pipIrrGlobal.pojoPr.PrStManure; +import com.dy.pipIrrGlobal.voPr.VoManure; import com.dy.pipIrrGlobal.voPr.VoMqttSimple; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -27,12 +31,30 @@ } /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * + * @param queryVo 鏌ヨ鍊煎璞� + * @return 璁板綍鍒楄〃 + */ + public QueryResultVo<List<VoManure>> selectSome(QueryVo queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + Long itemTotal = dao.totalCount(params); + + QueryResultVo<List<VoManure>> rsVo = new QueryResultVo<>(); + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = dao.selectSome(params); + return rsVo; + } + + /** * 寰楀埌涓�涓疄浣� * @param id 瀹炰綋ID * @return 瀹炰綋 */ - public PrStManure selectById(Long id){ - return this.dao.selectById(id) ; + public VoManure selectOne(Long id){ + return this.dao.selectOne(id) ; } /** * 淇濆瓨锛堟坊鍔狅級瑙嗛鐩戞帶鐐� diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/QueryVo.java new file mode 100644 index 0000000..a19e1ec --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/manure/QueryVo.java @@ -0,0 +1,23 @@ +package com.dy.pipIrrProject.mqtt.manure; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @Author: liurunyu + * @Date: 2025/6/24 17:21 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "姘磋偉鏈烘煡璇㈡潯浠�") +public class QueryVo extends QueryConditionVo { + @Schema(description = "姘磋偉鏈哄悕绉�") + public String name; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/QueryVo.java new file mode 100644 index 0000000..19e9145 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/QueryVo.java @@ -0,0 +1,23 @@ +package com.dy.pipIrrProject.mqtt.soil; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @Author: liurunyu + * @Date: 2025/6/24 17:21 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "澧掓儏绔欐煡璇㈡潯浠�") +public class QueryVo extends QueryConditionVo { + @Schema(description = "澧掓儏绔欏悕绉�") + public String name; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilCtrl.java index 7386c4f..0adc5d2 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilCtrl.java @@ -3,8 +3,11 @@ import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.pojoPr.PrStSoil; +import com.dy.pipIrrGlobal.voPr.VoSoil; +import com.dy.pipIrrProject.mqtt.manure.QueryVo; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,6 +22,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Objects; /** @@ -39,6 +43,30 @@ this.sv = sv ; } + /** + * 鍒嗛〉鏌ヨ澧掓儏绔欒褰� + * @param vo + * @return + */ + @Operation(summary = "鑾峰緱涓�椤靛鎯呯珯璁板綍", description = "杩斿洖涓�椤靛鎯呯珯鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤靛鎯呯珯鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoSoil.class))} + ) + }) + @GetMapping(path = "/some") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoSoil>>> some(QueryVo vo){ + try { + return BaseResponseUtils.buildSuccess(this.sv.selectSome(vo)); + } catch (Exception e) { + log.error("鑾峰彇澧掓儏绔欒褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } /** * 寰楀埌涓�濂楀鎯呯珯鏁版嵁 @@ -50,13 +78,13 @@ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�濂楀鎯呯珯鏁版嵁锛圔aseResponse.content:{}锛�", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = PrStSoil.class))} + schema = @Schema(implementation = VoSoil.class))} ) }) @GetMapping(path = "one") @SsoAop() - public BaseResponse<PrStSoil> one(Long id){ - return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); + public BaseResponse<VoSoil> one(Long id){ + return BaseResponseUtils.buildSuccess(this.sv.selectOne(id)); } /** diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilSv.java index e0303c6..1cd4277 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/soil/SoilSv.java @@ -1,14 +1,19 @@ package com.dy.pipIrrProject.mqtt.soil; +import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoPr.PrStSoilMapper; import com.dy.pipIrrGlobal.pojoPr.PrStSoil; +import com.dy.pipIrrGlobal.voPr.VoSoil; import com.dy.pipIrrGlobal.voPr.VoMqttSimple; +import com.dy.pipIrrProject.mqtt.manure.QueryVo; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -25,15 +30,31 @@ public List<VoMqttSimple> allSimple(){ return this.dao.selectAllSimple() ; } + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * + * @param queryVo 鏌ヨ鍊煎璞� + * @return 璁板綍鍒楄〃 + */ + public QueryResultVo<List<VoSoil>> selectSome(QueryVo queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + Long itemTotal = dao.totalCount(params); + QueryResultVo<List<VoSoil>> rsVo = new QueryResultVo<>(); + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = dao.selectSome(params); + return rsVo; + } /** * 寰楀埌涓�涓疄浣� * @param id 瀹炰綋ID * @return 瀹炰綋 */ - public PrStSoil selectById(Long id){ - return this.dao.selectById(id) ; + public VoSoil selectOne(Long id){ + return this.dao.selectOne(id) ; } /** * 淇濆瓨锛堟坊鍔狅級瑙嗛鐩戞帶鐐� diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/QueryVo.java new file mode 100644 index 0000000..3cf8d3d --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/QueryVo.java @@ -0,0 +1,23 @@ +package com.dy.pipIrrProject.mqtt.weather; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @Author: liurunyu + * @Date: 2025/6/24 17:21 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "姘旇薄绔欐煡璇㈡潯浠�") +public class QueryVo extends QueryConditionVo { + @Schema(description = "姘旇薄绔欏悕绉�") + public String name; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherCtrl.java index f40de60..e4c0c3e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherCtrl.java @@ -3,8 +3,11 @@ import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.pojoPr.PrStWeather; +import com.dy.pipIrrGlobal.voPr.VoWeather; +import com.dy.pipIrrProject.mqtt.manure.QueryVo; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,6 +22,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Objects; /** @@ -39,6 +43,30 @@ this.sv = sv ; } + /** + * 鍒嗛〉鏌ヨ姘旇薄绔欒褰� + * @param vo + * @return + */ + @Operation(summary = "鑾峰緱涓�椤垫皵璞$珯璁板綍", description = "杩斿洖涓�椤垫皵璞$珯鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤垫皵璞$珯鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoWeather.class))} + ) + }) + @GetMapping(path = "/some") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoWeather>>> some(QueryVo vo){ + try { + return BaseResponseUtils.buildSuccess(this.sv.selectSome(vo)); + } catch (Exception e) { + log.error("鑾峰彇姘旇薄绔欒褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } /** * 寰楀埌涓�濂楁皵璞$珯鏁版嵁 @@ -50,13 +78,13 @@ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�濂楁皵璞$珯鏁版嵁锛圔aseResponse.content:{}锛�", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = PrStWeather.class))} + schema = @Schema(implementation = VoWeather.class))} ) }) @GetMapping(path = "one") @SsoAop() - public BaseResponse<PrStWeather> one(Long id){ - return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); + public BaseResponse<VoWeather> one(Long id){ + return BaseResponseUtils.buildSuccess(this.sv.selectOne(id)); } /** diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherSv.java index 6b93d7e..bfa8707 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/weather/WeatherSv.java @@ -1,14 +1,19 @@ package com.dy.pipIrrProject.mqtt.weather; +import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoPr.PrStWeatherMapper; import com.dy.pipIrrGlobal.pojoPr.PrStWeather; import com.dy.pipIrrGlobal.voPr.VoMqttSimple; +import com.dy.pipIrrGlobal.voPr.VoWeather; +import com.dy.pipIrrProject.mqtt.manure.QueryVo; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -25,15 +30,31 @@ public List<VoMqttSimple> allSimple(){ return this.dao.selectAllSimple() ; } + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * + * @param queryVo 鏌ヨ鍊煎璞� + * @return 璁板綍鍒楄〃 + */ + public QueryResultVo<List<VoWeather>> selectSome(QueryVo queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + Long itemTotal = dao.totalCount(params); + QueryResultVo<List<VoWeather>> rsVo = new QueryResultVo<>(); + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = dao.selectSome(params); + return rsVo; + } /** * 寰楀埌涓�涓疄浣� * @param id 瀹炰綋ID * @return 瀹炰綋 */ - public PrStWeather selectById(Long id){ - return this.dao.selectById(id) ; + public VoWeather selectOne(Long id){ + return this.dao.selectOne(id) ; } /** * 淇濆瓨锛堟坊鍔狅級瑙嗛鐩戞帶鐐� diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java index 6720c46..ea8f0f8 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java @@ -48,9 +48,11 @@ */ @PostMapping(path = "termActiveCard", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() - public BaseResponse<VoTermActiveCard> termActiveCard(@RequestBody @Valid ActiveCard po, BindingResult bindingResult) { + public BaseResponse<VoTermActiveCard> termActiveCard(@RequestBody @Valid ActiveCard po, + BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.activeOrReissueTermCard(po); @@ -72,7 +74,8 @@ @SsoAop() public BaseResponse<VoTermCommon> termRecharge(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.addRecharge(po, null); @@ -94,7 +97,8 @@ @SsoAop() public BaseResponse<Boolean> termReportLoss(@RequestBody @Valid DtoLoss po, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.reportLoss(po); @@ -116,7 +120,8 @@ @SsoAop() public BaseResponse<Boolean> termUnlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.unlock(po); @@ -138,7 +143,8 @@ @SsoAop() public BaseResponse<VoTermCommon> termReissue(@RequestBody @Valid DtoReissue po, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.reissue(po); @@ -160,7 +166,8 @@ @SsoAop() public BaseResponse<VoTermCommon> termCancel(@RequestBody @Valid DtoCancel po, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.cancel(po); @@ -173,22 +180,25 @@ /** * 琛ユ墸 + * * @param po * @param bindingResult * @return */ @PostMapping(path = "termRepay", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() - public BaseResponse<VoRepaySupplement> termRepay(@RequestBody @Valid DtoRepaySupplement po, BindingResult bindingResult) { + public BaseResponse<VoRepaySupplement> termRepay(@RequestBody @Valid DtoRepaySupplement po, + BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - if(po.getRepayMorny() == null || po.getRepayMorny() <= 0) { + if (po.getRepayMorny() == null || po.getRepayMorny() <= 0) { return BaseResponseUtils.buildErrorMsg("琛ユ墸閲戦涓嶈兘涓虹┖涓旈渶澶т簬0"); } - if(po.getRepayMorny() > po.getBalance()) { + if (po.getRepayMorny() > po.getBalance()) { return BaseResponseUtils.buildErrorMsg("琛ユ墸閲戦涓嶈兘澶т簬琛ユ墸鍓嶄綑棰�"); } @@ -201,18 +211,21 @@ /** * 杩旇繕 + * * @param po * @param bindingResult * @return */ @PostMapping(path = "supplement", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() - public BaseResponse<VoRepaySupplement> supplement(@RequestBody @Valid DtoRepaySupplement po, BindingResult bindingResult) { + public BaseResponse<VoRepaySupplement> supplement(@RequestBody @Valid DtoRepaySupplement po, + BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - if(po.getSupplementMoney() == null || po.getSupplementMoney() <= 0) { + if (po.getSupplementMoney() == null || po.getSupplementMoney() <= 0) { return BaseResponseUtils.buildErrorMsg("杩旇繕閲戦涓嶈兘涓虹┖涓旈渶澶т簬0"); } @@ -234,7 +247,8 @@ @SsoAop() public BaseResponse<Boolean> termCallBack(@RequestBody @Valid DtoCallBack po, BindingResult bindingResult) { if (bindingResult != null && bindingResult.hasErrors()) { - return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = cardSv.callBack(po); @@ -246,93 +260,85 @@ /** * 璇诲彇鍗′俊鎭� + * * @param cardAddr * @return */ @GetMapping(path = "readCard") @SsoAop() - public BaseResponse<VoTermCard> readCard(@RequestParam String cardAddr){ + public BaseResponse<VoTermCard> readCard(@RequestParam String cardAddr) { try { VoTermCard voTermCard = cardSv.readCard(cardAddr); - if(voTermCard == null) { + if (voTermCard == null) { return BaseResponseUtils.buildNonExist(); } return BaseResponseUtils.buildSuccess(voTermCard); } catch (Exception e) { log.error("鏌ヨ鍐滄埛寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); } } /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛岀粓绔簲鐢ㄧ▼搴忎娇鐢� + * * @param vo * @return */ @Operation(summary = "鑾峰緱涓�椤垫按鍗¤褰�", description = "杩斿洖涓�椤垫按鍗℃暟鎹�") @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤垫按鍗℃暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = VoCards.class))} - ) + @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�椤垫按鍗℃暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", content = { + @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCards.class)) }) }) @GetMapping(path = "getcards") @SsoAop() - public BaseResponse<QueryResultVo<List<VoCards>>> getcards(QoCards vo){ + public BaseResponse<QueryResultVo<List<VoCards>>> getcards(QoCards vo) { try { QueryResultVo<List<VoCards>> res = cardSv.getCards(vo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏌ヨ姘村崱寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); } } /** * 鑾峰彇宸叉寕澶辩殑姘村崱鍒楄〃锛岀粓绔簲鐢ㄧ▼搴忎娇鐢� + * * @param vo * @return */ @Operation(summary = "鑾峰緱涓�椤靛凡鎸傚け姘村崱璁板綍", description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁") @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = VoCards.class))} - ) + @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", content = { + @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCards.class)) }) }) @GetMapping(path = "getlostcards") @SsoAop() - public BaseResponse<QueryResultVo<List<VoCards>>> getLostCards(QoLostCards vo){ + public BaseResponse<QueryResultVo<List<VoCards>>> getLostCards(QoLostCards vo) { try { QueryResultVo<List<VoCards>> res = cardSv.getLostCards(vo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏌ヨ宸叉寕澶辨按鍗″紓甯�", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); } } /** * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭� + * * @param cardNum 姘村崱缂栧彿 * @return */ @Operation(summary = "鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�", description = "鏍规嵁姘村崱缂栧彿鑾峰彇瀵瑰簲鐨勫崱淇℃伅") @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖鍗′俊鎭紙BaseResponse.content:VoCardByClientNum锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = VoCardByClientNum.class))} - ) + @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖鍗′俊鎭紙BaseResponse.content:VoCardByClientNum锛�", content = { + @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCardByClientNum.class)) }) }) @GetMapping(path = "getcardbycardnum") @SsoAop() - public BaseResponse<VoCardByClientNum> getCardByCardNum(@RequestParam String cardNum){ + public BaseResponse<VoCardByClientNum> getCardByCardNum(@RequestParam String cardNum) { try { VoCardByClientNum res = cardSv.getCardByCardNum(cardNum); if (res == null) { @@ -341,7 +347,46 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏍规嵁姘村崱缂栧彿鏌ヨ鍗′俊鎭紓甯�", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); + } + } + + /** + * 鍒涘缓绠$悊鍗� + * + * @param dto 鍒涘缓绠$悊鍗″弬鏁� + * @param bindingResult 鍙傛暟楠岃瘉缁撴灉 + * @return 鍒涘缓缁撴灉 + */ + @Operation(summary = "鍒涘缓绠$悊鍗�", description = "鍒涘缓鍏呭�兼満鐢ㄧ鐞嗗崱") + @ApiResponses(value = { + @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "鍒涘缓鎴愬姛锛岃繑鍥炶鍗曞彿", content = { + @Content(mediaType = MediaType.APPLICATION_JSON_VALUE) }) + }) + @PostMapping(path = "createManagementCard", consumes = MediaType.APPLICATION_JSON_VALUE) + @SsoAop() + public BaseResponse<String> createManagementCard(@RequestBody @Valid CreateManagementCardDto dto, + BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils + .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + // 楠岃瘉鍗$墖绫诲瀷鏄惁鍦ㄥ厑璁歌寖鍥村唴 + if (dto.getCardType() < 2 || dto.getCardType() > 10) { + return BaseResponseUtils.buildErrorMsg("鍗$墖绫诲瀷蹇呴』鍦�2-10涔嬮棿"); + } + + // 妫�鏌ュ崱鐗囧湴鍧�鏄惁宸插瓨鍦� + if (cardSv.isCardAddrExists(dto.getCardAddr())) { + return BaseResponseUtils.buildErrorMsg("璇ュ崱鐗囧湴鍧�宸插瓨鍦紝璇蜂娇鐢ㄥ叾浠栧湴鍧�"); + } + + Map<String, Object> result = cardSv.createManagementCard(dto); + if ((Boolean) result.get("success")) { + return BaseResponseUtils.buildSuccess((String) result.get("content")); + } else { + return BaseResponseUtils.buildErrorMsg(result.get("msg").toString()); } } } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java index 0aeff56..31520d5 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java @@ -6,6 +6,7 @@ import com.dy.pipIrrGlobal.daoSe.*; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrGlobal.pojoSe.SeManagementCard; import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory; import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrTerminal.card.dto.*; @@ -13,6 +14,7 @@ import com.dy.pipIrrTerminal.card.qo.QoLostCards; import com.dy.pipIrrTerminal.card.enums.CardStateENUM; import com.dy.pipIrrTerminal.card.enums.LastOperateENUM; +import com.dy.pipIrrTerminal.card.enums.ManagementCardStateENUM; import com.dy.pipIrrTerminal.card.enums.OperateTypeENUM; import com.dy.pipIrrTerminal.card.enums.RechargeTypeENUM; import lombok.extern.slf4j.Slf4j; @@ -21,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.dy.common.util.IDLongGenerator; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -54,11 +57,18 @@ @Autowired private SeManagerCardMapper seManagerCardMapper; + @Autowired + private SeManagementCardMapper seManagementCardMapper; + + @Autowired + private IDLongGenerator idLongGenerator; + @Value("${project.projectNo}") private Integer projectNo; /** * 鏍规嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗� + * * @param cardAddr * @return true:鍙互寮�鍗� */ @@ -80,6 +90,7 @@ /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互鍏呭�� + * * @param po * @return true:鍙互鍏呭�� */ @@ -90,7 +101,7 @@ String stateName = Optional.ofNullable(seClientCardMapper.getCardStateByCardNum(po.getCardNum())).orElse(""); // 鍗曠嫭鍏呭�兼椂鍗$墖蹇呴』涓烘甯� - if((po.getRechargeType() == RechargeTypeENUM.RECHARGE.getCode()) && !stateName.equals("姝e父")) { + if ((po.getRechargeType() == RechargeTypeENUM.RECHARGE.getCode()) && !stateName.equals("姝e父")) { map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"); return map; } @@ -101,6 +112,7 @@ /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互鎸傚け + * * @param po * @return true:鍙互鎶ュけ */ @@ -111,7 +123,7 @@ Long cardNum = po.getCardNum(); String stateName = seClientCardMapper.getCardStateByCardNum(cardNum); - if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { + if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"); return map; } @@ -127,7 +139,7 @@ CardSimple card = new CardSimple(); card.setCardId(Long.parseLong(map_card.get("cardId").toString())); card.setClientId(Long.parseLong(map_card.get("clientId").toString())); - //card.setProtocol(map_card.get("protocol").toString()); + // card.setProtocol(map_card.get("protocol").toString()); map.put("success", true); map.put("content", card); @@ -136,6 +148,7 @@ /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互瑙i攣 + * * @param po * @return */ @@ -167,8 +180,10 @@ map.put("content", card); return map; } + /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互琛ュ崱 + * * @param po * @return true:鍙互琛ュ崱 */ @@ -180,7 +195,7 @@ Long cardNum = po.getCardNum(); Integer lostCount = seClientCardMapper.getLostCount(cardNum); Integer replacedCount = seClientCardMapper.getReplacedCount(cardNum); - if(lostCount == 0 || replacedCount > 0) { + if (lostCount == 0 || replacedCount > 0) { map.put("msg", "姘村崱鏈寕澶辨垨宸茶ˉ鍗★紝涓嶈兘琛ュ崱"); return map; } @@ -212,6 +227,7 @@ /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互娉ㄩ攢 + * * @param po * @return */ @@ -222,7 +238,7 @@ Long cardNum = po.getCardNum(); String stateName = seClientCardMapper.getCardStateByCardNum(cardNum); - if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { + if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"); return map; } @@ -246,6 +262,7 @@ /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互琛ユ墸 + * * @param po * @return */ @@ -256,7 +273,7 @@ Long cardNum = po.getCardNum(); String stateName = seClientCardMapper.getCardStateByCardNum(cardNum); - if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { + if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"); return map; } @@ -280,6 +297,7 @@ /** * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互杩旇繕 + * * @param po * @return */ @@ -290,7 +308,7 @@ Long cardNum = po.getCardNum(); String stateName = seClientCardMapper.getCardStateByCardNum(cardNum); - if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { + if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) { map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"); return map; } @@ -314,6 +332,7 @@ /** * 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤 + * * @param clientId * @return */ @@ -435,6 +454,7 @@ /** * 寮�鍗¢檮鍔犲厖鍊� + * * @param po * @param cardNum * @return @@ -468,6 +488,7 @@ /** * 婵�娲绘垨琛ュ崱 + * * @param po * @return */ @@ -485,7 +506,7 @@ } Map map_cardNum = generateCardNum(po.getClientId()); - if(map_cardNum.get("success").equals(false)) { + if (map_cardNum.get("success").equals(false)) { map.put("msg", map_cardNum.get("msg").toString()); return map; } @@ -493,14 +514,14 @@ String orderNo = generateOrderNo(); Map map_addCardAndOperate = addCardAndOperate(po, cardNum, orderNo); - if(map_addCardAndOperate.get("success").equals(false)) { + if (map_addCardAndOperate.get("success").equals(false)) { map.put("msg", map_addCardAndOperate.get("msg").toString()); return map; } if (amount != null && amount > 0 && originalCardId == null) { Map map_plusRecharge = plusRecharge(po, cardNum, orderNo); - if(map_plusRecharge.get("success").equals(false)) { + if (map_plusRecharge.get("success").equals(false)) { map.put("msg", map_plusRecharge.get("msg").toString()); return map; } @@ -525,6 +546,7 @@ /** * 鍏呭�� + * * @param po * @return */ @@ -535,7 +557,7 @@ map.put("content", null); Map map_canRecharge = canRecharge(po); - if(map_canRecharge.get("success").equals(false)) { + if (map_canRecharge.get("success").equals(false)) { map.put("msg", map_canRecharge.get("msg").toString()); return map; } @@ -550,7 +572,7 @@ } Long cardId = Long.parseLong(map_cardAndClient.get("cardId").toString()); Long clientId = Long.parseLong(map_cardAndClient.get("clientId").toString()); - if(orderNo == null || orderNo.length() <= 0) { + if (orderNo == null || orderNo.length() <= 0) { orderNo = generateOrderNo(); } @@ -617,6 +639,7 @@ /** * 琛ュ崱 + * * @param po * @return */ @@ -627,7 +650,7 @@ map.put("content", null); Map map_canReissue = canReissue(po); - if(map_canReissue.get("success").equals(false)) { + if (map_canReissue.get("success").equals(false)) { map.put("msg", map_canReissue.get("msg").toString()); return map; } @@ -661,6 +684,7 @@ /** * 鎸傚け + * * @param po * @return */ @@ -671,7 +695,7 @@ map.put("content", null); Map map_canReportLoss = canReportLoss(po); - if(map_canReportLoss.get("success").equals(false)) { + if (map_canReportLoss.get("success").equals(false)) { map.put("msg", map_canReportLoss.get("msg").toString()); return map; } @@ -688,7 +712,8 @@ seClientCard.setLossdtdt(new Date()); seClientCard.setState(CardStateENUM.LOSS.getCode()); seClientCard.setLastoper(LastOperateENUM.LOSS.getCode()); - Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0); + Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)) + .orElse(0); if (rec_updateClientCard == 0) { map.put("msg", "鎸傚け澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�"); return map; @@ -718,6 +743,7 @@ /** * 瑙i攣 + * * @param po * @return */ @@ -728,7 +754,7 @@ map.put("content", null); Map map_canUnlock = canUnlock(po); - if(map_canUnlock.get("success").equals(false)) { + if (map_canUnlock.get("success").equals(false)) { map.put("msg", map_canUnlock.get("msg").toString()); return map; } @@ -738,8 +764,8 @@ /** * 淇敼鍐滄埛鍗′俊鎭細 - * 鎸傚け鏃堕棿 - * 鏈�鍚庢搷浣滅被鍨�-4 + * 鎸傚け鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-4 */ SeClientCard seClientCard = new SeClientCard(); seClientCard.setId(cardId); @@ -747,7 +773,8 @@ seClientCard.setMoney(po.getMoney()); seClientCard.setState(CardStateENUM.NORMAL.getCode()); seClientCard.setLastoper(LastOperateENUM.UNLOCK.getCode()); - Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0); + Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)) + .orElse(0); if (rec_updateClientCard == 0) { map.put("msg", "瑙i攣澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�"); return map; @@ -779,6 +806,7 @@ /** * 閿�鍗� + * * @param po * @return */ @@ -789,8 +817,8 @@ map.put("content", null); String orderNo = generateOrderNo(); - Map map_canCancel = canCancel(po); - if(map_canCancel.get("success").equals(false)) { + Map map_canCancel = canCancel(po); + if (map_canCancel.get("success").equals(false)) { map.put("msg", map_canCancel.get("msg").toString()); return map; } @@ -828,6 +856,7 @@ /** * 琛ユ墸 + * * @param po * @return */ @@ -840,8 +869,8 @@ Date operateTime = new Date(); Double waterPrice = Optional.ofNullable(prWaterPriceMapper.getPrice()).orElse(0.0); - Map map_canRepay = canRepay(po); - if(map_canRepay.get("success").equals(false)) { + Map map_canRepay = canRepay(po); + if (map_canRepay.get("success").equals(false)) { map.put("msg", map_canRepay.get("msg").toString()); return map; } @@ -880,6 +909,7 @@ /** * 杩旇繕 + * * @param po * @return */ @@ -892,8 +922,8 @@ Date operateTime = new Date(); Double waterPrice = Optional.ofNullable(prWaterPriceMapper.getPrice()).orElse(0.0); - Map map_canSupplement = canSupplement(po); - if(map_canSupplement.get("success").equals(false)) { + Map map_canSupplement = canSupplement(po); + if (map_canSupplement.get("success").equals(false)) { map.put("msg", map_canSupplement.get("msg").toString()); return map; } @@ -906,7 +936,7 @@ seCardOperate.setClientId(clientId); seCardOperate.setMoney(po.getBalance()); seCardOperate.setRefundAmount(po.getSupplementMoney()); - seCardOperate.setOperateType(OperateTypeENUM.WRITE_BACK.getCode()); + seCardOperate.setOperateType(OperateTypeENUM.SUPPLEMENT.getCode()); seCardOperate.setRemarks(po.getRemarks()); seCardOperate.setOperator(po.getOperator()); seCardOperate.setOperateDt(operateTime); @@ -931,6 +961,7 @@ /** * 鎿嶄綔鍥炶皟 + * * @param po * @return */ @@ -944,21 +975,28 @@ Integer operateType = po.getOperateType(); String orderNumber = po.getOrderNumber(); + // 鍏堟鏌ユ槸鍚︿负绠$悊鍗� + if (operateType.equals(OperateTypeENUM.MANAGEMENT_CARD_WRITE.getCode().intValue())) { + // 绠$悊绫诲瀷鍗″啓鍗¢�昏緫 + return handleManagementCardWrite(cardAddr, orderNumber); + } + + // 澶勭悊鍐滄埛鍗¢�昏緫 Long cardId = seClientCardMapper.getCardIdByAddr(cardAddr); if (cardId == null || cardId.equals(0)) { map.put("msg", "鎮ㄦ寚瀹氱殑姘村崱涓嶅瓨鍦�"); return map; } - if(operateType == 1) { + if (operateType.equals(OperateTypeENUM.ACTIVE.getCode().intValue())) { /** * 寮�鍗℃搷浣滄墽琛岄�氱煡 - * 1.渚濇嵁璁㈠崟鍙峰皢鏃犳晥鐘舵�佺殑鎿嶄綔璁板綍鏀逛负鏈夋晥 - * 2.渚濇嵁姘村崱ID灏嗘棤鏁堢姸鎬佺殑姘村崱璁板綍鏀逛负鏈夋晥 - * 3.濡傛灉寮�鍗″悓姝ュ厖鍊� - * 淇敼鍏呭�兼搷浣滆褰曚负鏈夋晥 - * 淇敼鍏呭�煎巻鍙茶褰曚负鏈夋晥 - * 淇敼姘村崱琛ㄧ殑鎿嶄綔淇℃伅 + * 1.渚濇嵁璁㈠崟鍙峰皢鏃犳晥鐘舵�佺殑鎿嶄綔璁板綍鏀逛负鏈夋晥 + * 2.渚濇嵁姘村崱ID灏嗘棤鏁堢姸鎬佺殑姘村崱璁板綍鏀逛负鏈夋晥 + * 3.濡傛灉寮�鍗″悓姝ュ厖鍊� + * 淇敼鍏呭�兼搷浣滆褰曚负鏈夋晥 + * 淇敼鍏呭�煎巻鍙茶褰曚负鏈夋晥 + * 淇敼姘村崱琛ㄧ殑鎿嶄綔淇℃伅 */ Integer rec_ope = turnOperateValidByOrderNumber(orderNumber); Integer rec_card = turnCardValidByOrderNumber(orderNumber); @@ -967,12 +1005,12 @@ return map; } - if(isMergeRecharge(cardId)) { + if (isMergeRecharge(cardId)) { turnOperateValidByOrderNumber(orderNumber + "p"); turnRechargeHistoryValidByOrderNumber(orderNumber); - updateCard(cardId, orderNumber+"p"); + updateCard(cardId, orderNumber + "p"); } - } else if (operateType == 2) { + } else if (operateType.equals(OperateTypeENUM.RECHARGE.getCode().intValue())) { /** * 鍏呭�兼搷浣滄墽琛岄�氱煡 * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥 @@ -981,8 +1019,8 @@ */ turnOperateValidByOrderNumber(orderNumber + "p"); turnRechargeHistoryValidByOrderNumber(orderNumber); - updateCard(cardId, orderNumber+"p"); - }else if (operateType == 3) { + updateCard(cardId, orderNumber + "p"); + } else if (operateType.equals(OperateTypeENUM.CANCEL.getCode().intValue())) { /** * 閿�鍗℃搷浣滄墽琛岄�氱煡 * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥 @@ -996,13 +1034,13 @@ return map; } - } else if (operateType == 4) { + } else if (operateType.equals(OperateTypeENUM.REISSUE.getCode().intValue())) { /** * 琛ュ崱鎿嶄綔鎵ц閫氱煡 * 1. 鏂版按鍗¤褰曟敼涓烘湁鏁� * 2. 寮�鍗℃搷浣滆褰曟敼涓烘湁鏁� * 3. 濡傛灉瀛樺湪閫�杩橀噾棰� - * 娓呯┖鍘熷崱浣欓 + * 娓呯┖鍘熷崱浣欓 */ Integer rec_card = turnCardValidByOrderNumber(orderNumber); Integer rec_ope = turnOperateValidByOrderNumber(orderNumber); @@ -1011,7 +1049,7 @@ map.put("msg", "琛ュ崱鍥炶皟澶辫触"); return map; } - } else if (operateType == 5) { + } else if (operateType.equals(OperateTypeENUM.REFUND.getCode().intValue())) { /** * 琛ユ墸鎿嶄綔鎵ц閫氱煡 * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥 @@ -1023,7 +1061,7 @@ map.put("msg", "琛ユ墸鍥炶皟澶辫触"); return map; } - } else if (operateType == 6) { + } else if (operateType.equals(OperateTypeENUM.SUPPLEMENT.getCode().intValue())) { /** * 杩旇繕鎿嶄綔鎵ц閫氱煡 * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥 @@ -1039,6 +1077,48 @@ map.put("success", true); map.put("msg", "鎿嶄綔鎴愬姛"); + return map; + } + + /** + * 澶勭悊绠$悊绫诲瀷鍗″啓鍗″洖璋� + * + * @param cardAddr 鍗″湴鍧� + * @param orderNumber 璁㈠崟鍙� + * @return 澶勭悊缁撴灉 + */ + private Map<String, Object> handleManagementCardWrite(String cardAddr, String orderNumber) { + Map<String, Object> map = new HashMap<>(); + map.put("success", false); + map.put("content", null); + + try { + // 鏍规嵁鍗″湴鍧�鍜岃鍗曞彿鏌ユ壘绠$悊鍗� + SeManagementCard managementCard = seManagementCardMapper.selectOne( + com.baomidou.mybatisplus.core.toolkit.Wrappers.<SeManagementCard>lambdaQuery() + .eq(SeManagementCard::getCardAddr, cardAddr) + .eq(SeManagementCard::getOrderNo, orderNumber)); + + if (managementCard == null) { + map.put("msg", "鏈壘鍒板搴旂殑绠$悊鍗¤褰�"); + return map; + } + + // 鏇存柊绠$悊鍗$姸鎬佷负姝e父 + managementCard.setState(ManagementCardStateENUM.NORMAL.getCode()); + + int updateResult = seManagementCardMapper.updateByPrimaryKeySelective(managementCard); + if (updateResult > 0) { + map.put("success", true); + map.put("msg", "绠$悊鍗″啓鍗″畬鎴愶紝鐘舵�佸凡鏇存柊涓烘甯�"); + } else { + map.put("msg", "绠$悊鍗$姸鎬佹洿鏂板け璐�"); + } + } catch (Exception e) { + log.error("澶勭悊绠$悊鍗″啓鍗″洖璋冨紓甯�", e); + map.put("msg", "澶勭悊绠$悊鍗″啓鍗″洖璋冩椂鍙戠敓寮傚父锛�" + e.getMessage()); + } + return map; } @@ -1084,12 +1164,13 @@ /** * 濡傛灉琛ュ崱鏃堕��杩樹簡閲戦锛屾竻绌烘寕澶卞崱浣欓 + * * @param orderNumber */ public Integer emptyCardBalance(String orderNumber) { Integer rec_empty = 0; Float noTradeAmount = seCardOperateMapper.getNoTradeAmount(orderNumber); - if(noTradeAmount != null && noTradeAmount > 0) { + if (noTradeAmount != null && noTradeAmount > 0) { rec_empty = seClientCardMapper.emptyCardBalance(orderNumber); } return rec_empty; @@ -1097,6 +1178,7 @@ /** * 淇敼娉ㄩ攢姘村崱琛ㄧ殑璁板綍鍙婁綑棰濓紙0锛� + * * @param orderNumber * @return */ @@ -1114,6 +1196,7 @@ /** * 淇敼琛ユ墸姘村崱琛ㄨ褰曞強浣欓 + * * @param cardId * @param orderNumber * @return @@ -1135,6 +1218,7 @@ /** * 淇敼杩旇繕姘村崱琛ㄨ褰曞強浣欓 + * * @param cardId * @param orderNumber * @return @@ -1156,6 +1240,7 @@ /** * 鍒ゆ柇鎸囧畾姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏃犺ˉ鍗¤褰� + * * @param cardNum * @return */ @@ -1170,17 +1255,18 @@ /** * 璇诲彇姘村崱淇℃伅 + * * @param cardAddr * @return */ public VoTermCard readCard(String cardAddr) { VoTermCard voTermCard = seClientCardMapper.getTermCardInfo(cardAddr); - if(voTermCard != null) { + if (voTermCard != null) { return voTermCard; } VoTermCard voTermManagerCard = seManagerCardMapper.getTermManagerCardInfo(cardAddr); - if(voTermManagerCard != null) { + if (voTermManagerCard != null) { return voTermManagerCard; } @@ -1189,6 +1275,7 @@ /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃 + * * @param vo 鏌ヨ鏉′欢 * @return 姘村崱鍒楄〃 */ @@ -1214,6 +1301,7 @@ /** * 鑾峰彇宸叉寕澶辩殑姘村崱鍒楄〃 + * * @param vo 鏌ヨ鏉′欢 * @return 宸叉寕澶辩殑姘村崱鍒楄〃 */ @@ -1222,7 +1310,7 @@ params.put("pageCurr", vo.pageCurr); params.put("pageSize", vo.pageSize); params.put("state", 2); // 鎸傚け鐘舵�� - + Long itemTotal = seClientCardMapper.getLostCardsCount(params); QueryResultVo<List<VoCards>> rsVo = new QueryResultVo<>(); @@ -1243,10 +1331,87 @@ /** * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭� + * * @param cardNum 姘村崱缂栧彿 * @return 鍗′俊鎭� */ public VoCardByClientNum getCardByCardNum(String cardNum) { return seClientCardMapper.getCardByCardNum(cardNum); } + + /** + * 鍒涘缓绠$悊鍗� + * + * @param dto 鍒涘缓绠$悊鍗TO + * @return 鍒涘缓缁撴灉 + */ + @Transactional(rollbackFor = Exception.class) + public Map<String, Object> createManagementCard(CreateManagementCardDto dto) { + Map<String, Object> result = new HashMap<>(); + result.put("success", false); + + try { + // 妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦� + if (isCardAddrExists(dto.getCardAddr())) { + result.put("msg", "鍒涘缓澶辫触-姝ゅ崱鍦板潃宸插瓨鍦�"); + return result; + } + + // 鍙傝�僼ermActiveCard閫昏緫锛氱敓鎴愯鍗曞彿 + String orderNo = generateOrderNo(); + + // 浣跨敤IDLongGenerator鐢熸垚鍞竴ID + Long id = idLongGenerator.generate(); + Date createTime = new Date(); + + // 鏋勫缓绠$悊鍗″璞� + SeManagementCard managementCard = SeManagementCard.builder() + .id(id) + .protocol(dto.getProtocol()) + .cardAddr(dto.getCardAddr()) + .securityCode(dto.getSecurityCode()) + .cardType(dto.getCardType()) + .createTime(createTime) + .orderNo(orderNo) + .districtCode(dto.getDistrictCode()) + .projectNo(dto.getProjectNo() != null ? dto.getProjectNo() : this.projectNo) + .ip(dto.getIp()) + .domain(dto.getDomain()) + .openClostTime(dto.getOpenClostTime()) + .remarks(dto.getRemarks()) + .state(ManagementCardStateENUM.UNWRITTEN.getCode()) // 榛樿鐘舵�佷负鏈啓鍗� + .build(); + + // 鎻掑叆鏁版嵁搴� + int insertResult = seManagementCardMapper.insertSelective(managementCard); + + if (insertResult > 0) { + result.put("success", true); + result.put("content", orderNo); // 杩斿洖璁㈠崟鍙� + result.put("msg", "璇锋眰鎴愬姛"); + } else { + result.put("msg", "绠$悊鍗″垱寤哄け璐�-鏁版嵁搴撴彃鍏ュ紓甯�"); + } + + } catch (Exception e) { + log.error("鍒涘缓绠$悊鍗″紓甯�: {}", e.getMessage(), e); + result.put("msg", "绠$悊鍗″垱寤哄け璐�: " + e.getMessage()); + } + + return result; + } + + /** + * 妫�鏌ュ崱鐗囧湴鍧�鏄惁宸插瓨鍦� + * + * @param cardAddr 鍗$墖鍦板潃 + * @return true-宸插瓨鍦紝false-涓嶅瓨鍦� + */ + public boolean isCardAddrExists(String cardAddr) { + // 浣跨敤涓�娆℃煡璇㈡鏌ヤ袱涓〃涓槸鍚﹀瓨鍦ㄨ鍗″湴鍧� + // 1. 绠$悊鍗¤〃锛氭墍鏈夎褰曢兘妫�鏌� + // 2. 鍐滄埛姘村崱琛細鍙鏌ユ甯�(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍 + Long totalCount = seClientCardMapper.checkCardAddrExists(cardAddr); + return totalCount != null && totalCount > 0; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java new file mode 100644 index 0000000..11497e9 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java @@ -0,0 +1,81 @@ +package com.dy.pipIrrTerminal.card.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2025-01-20 + * @Description 鍒涘缓绠$悊鍗TO + */ +@Data +@Schema(name = "鍒涘缓绠$悊鍗TO") +public class CreateManagementCardDto { + + /** + * 閫氳鍗忚 + */ + @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖") + @Schema(description = "閫氳鍗忚", example = "RS485") + private String protocol; + + /** + * 鍗$墖鍦板潃 + */ + @NotBlank(message = "鍗$墖鍦板潃涓嶈兘涓虹┖") + @Schema(description = "鍗$墖鍦板潃", example = "001") + private String cardAddr; + + /** + * 璇嗗埆鐮� + */ + @NotBlank(message = "璇嗗埆鐮佷笉鑳戒负绌�") + @Schema(description = "璇嗗埆鐮�", example = "A0B1C289") + private String securityCode; + + /** + * 鍗$墖绫诲瀷 + * 2-璁剧疆鍖哄煙琛ㄥ彿鍗★紝3-鍙栨暟鍗★紝4-妫�鏌ュ崱锛�5-娴嬭瘯鍗★紝6-娓呴浂鍗★紝7-IP璁剧疆鍗★紝8-鍩熷悕璁剧疆鍗★紝9-GPS鍗★紝10-鏃堕棿閰嶇疆鍗� + */ + @NotNull(message = "鍗$墖绫诲瀷涓嶈兘涓虹┖") + @Schema(description = "鍗$墖绫诲瀷", example = "2", allowableValues = { "2", "3", "4", "5", "6", "7", "8", "9", "10" }) + private Byte cardType; + + /** + * 5绾ц鏀垮尯鍒掔紪鐮� + */ + @Schema(description = "5绾ц鏀垮尯鍒掔紪鐮�", example = "110101") + private String districtCode; + + /** + * 椤圭洰缂栫爜 + */ + @Schema(description = "椤圭洰缂栫爜", example = "1001") + private Integer projectNo; + + /** + * IP鍦板潃 + */ + @Schema(description = "IP鍦板潃", example = "192.168.1.100") + private String ip; + + /** + * 鍩熷悕 + */ + @Schema(description = "鍩熷悕", example = "example.com") + private String domain; + + /** + * 寮�鍏抽榾鏃堕棿 + */ + @Schema(description = "寮�鍏抽榾鏃堕棿(绉�)", example = "30") + private Integer openClostTime; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞淇℃伅", example = "绠$悊鍗″娉�") + private String remarks; +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoCallBack.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoCallBack.java index 678657f..d11f154 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoCallBack.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoCallBack.java @@ -32,7 +32,7 @@ private String orderNumber; /** - * 鎿嶄綔绫诲瀷锛�1-寮�鍗★紝2-鍏呭�硷紝3-閿�鍗★紝4-琛ュ崱锛�5-琛ユ墸 + * 鎿嶄綔绫诲瀷锛�1-寮�鍗★紝2-鍏呭�硷紝3-閿�鍗★紝4-琛ュ崱锛�5-琛ユ墸锛�6-杩旇繕锛�7-绠$悊绫诲瀷鍗″啓鍗� */ @NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖") private Integer operateType; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/ManagementCardStateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/ManagementCardStateENUM.java new file mode 100644 index 0000000..685faae --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/ManagementCardStateENUM.java @@ -0,0 +1,23 @@ +package com.dy.pipIrrTerminal.card.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author ZhuBaoMin + * @date 2025-01-20 + * @LastEditTime 2025-01-20 + * @Description 绠$悊鍗$姸鎬佹灇涓� + */ + +@Getter +@AllArgsConstructor +public enum ManagementCardStateENUM { + NORMAL((byte) 1, "姝e父"), + CANCELLED((byte) 2, "宸叉敞閿�"), + LOSS((byte) 3, "宸叉寕澶�"), + UNWRITTEN((byte) 4, "鏈啓鍗�"); + + private final Byte code; + private final String message; +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/OperateTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/OperateTypeENUM.java index 059420e..bce3ba5 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/OperateTypeENUM.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/OperateTypeENUM.java @@ -7,22 +7,25 @@ * @author ZhuBaoMin * @date 2025-05-08 11:45 * @LastEditTime 2025-05-08 11:45 - * @Description + * @Description 鎿嶄綔绫诲瀷鏋氫妇 */ @Getter @AllArgsConstructor public enum OperateTypeENUM { - ACTIVE((byte)1, "寮�鍗�"), - RECHARGE((byte)2, "鍏呭��"), - CANCEL((byte)3, "閿�鍗�"), - REISSUE((byte)4, "琛ュ崱"), - REFUND((byte)5, "琛ユ墸"), - LOSS((byte)6, "鎸傚け"), - REVERSAL((byte)7, "鍐叉"), - UNLOCK((byte)8, "瑙i攣"), - CONSUME((byte)9, "娑堣垂"), - WRITE_BACK((byte)10, "鍙嶅啓"); + ACTIVE((byte) 1, "寮�鍗�"), + RECHARGE((byte) 2, "鍏呭��"), + CANCEL((byte) 3, "閿�鍗�"), + REISSUE((byte) 4, "琛ュ崱"), + REFUND((byte) 5, "琛ユ墸"), + SUPPLEMENT((byte) 6, "杩旇繕"), + MANAGEMENT_CARD_WRITE((byte) 7, "绠$悊绫诲瀷鍗″啓鍗�"), + // 淇濈暀鍏朵粬绯荤粺浣跨敤鐨勬灇涓惧�� + LOSS((byte) 8, "鎸傚け"), + UNLOCK((byte) 9, "瑙i攣"), + REVERSAL((byte) 10, "鍐叉"), + CONSUME((byte) 11, "娑堣垂"), + WRITE_BACK((byte) 12, "鍙嶅啓"); private final Byte code; private final String message; diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214\350\247\243\345\206\263\345\244\207\345\277\230.docx" similarity index 100% rename from "pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214.docx" rename to "pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214\350\247\243\345\206\263\345\244\207\345\277\230.docx" Binary files differ diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260\345\244\207\345\277\230.docx" similarity index 100% rename from "pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260.docx" rename to "pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260\345\244\207\345\277\230.docx" Binary files differ -- Gitblit v1.8.0