From f74db84df0e3797e0a2db1faa50adcb778a5150a Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 27 六月 2025 11:33:35 +0800 Subject: [PATCH] 1、完善水肥、墒情、气象相关Mapper代码; 2、解决表阀一体机远程关阀出现的订单号不一致专制不能关阀问题(王江海测试发现)。 --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java | 25 +++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java | 6 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java | 6 + pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java | 17 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java | 6 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties | 6 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java | 50 +++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java | 6 + pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java | 18 +++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdSv.java | 25 +++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java | 1 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java | 19 +++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java | 50 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdCtrl.java | 18 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java | 6 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java | 6 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/CommandSv.java | 2 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java | 6 + 18 files changed, 256 insertions(+), 17 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/CommandSv.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/CommandSv.java index a862c21..9bc0238 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/CommandSv.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/CommandSv.java @@ -16,6 +16,7 @@ import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; @@ -81,6 +82,7 @@ * @param operator * @return */ + @Transactional(rollbackFor = Exception.class) public RmCommandHistory saveComHistoryPo(RmCommandHistoryMapper rmCommandHistoryDao, Long comId, String protocol, diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java index c4f3aa0..5197f89 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java @@ -1,7 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.pojoRm.RmManureHistory; import com.dy.pipIrrGlobal.voRm.VoManure; +import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; @@ -11,7 +14,8 @@ * @Date: 2025/6/25 10:03 * @Description */ -public interface RmManureHistoryMapper { +@Mapper +public interface RmManureHistoryMapper extends BaseMapper<RmManureHistory> { int deleteByPrimaryKey(Long id); int insert(RmManureHistory record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java index 1fa5b88..0773fec 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java @@ -1,7 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.pojoRm.RmManureLast; import com.dy.pipIrrGlobal.voRm.VoManure; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,7 +15,8 @@ * @Date: 2025/6/25 10:03 * @Description */ -public interface RmManureLastMapper { +@Mapper +public interface RmManureLastMapper extends BaseMapper<RmManureLast> { int deleteByPrimaryKey(Long id); int insert(RmManureLast record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java index 4310755..7c2397b 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java @@ -1,9 +1,12 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmManureLast; import com.dy.pipIrrGlobal.pojoRm.RmSoilDay; import com.dy.pipIrrGlobal.pojoRm.RmSoilLast; import com.dy.pipIrrGlobal.voRm.VoSoil; import com.dy.pipIrrGlobal.voRm.VoSoilDay; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -14,7 +17,8 @@ * @Date: 2025/6/25 10:04 * @Description */ -public interface RmSoilDayMapper { +@Mapper +public interface RmSoilDayMapper extends BaseMapper<RmSoilDay> { int deleteByPrimaryKey(Long id); int insert(RmSoilDay record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java index 9d07be9..9dcfa07 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java @@ -1,7 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmSoilDay; import com.dy.pipIrrGlobal.pojoRm.RmSoilHistory; import com.dy.pipIrrGlobal.voRm.VoSoil; +import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; @@ -11,7 +14,8 @@ * @Date: 2025/6/25 10:04 * @Description */ -public interface RmSoilHistoryMapper { +@Mapper +public interface RmSoilHistoryMapper extends BaseMapper<RmSoilHistory> { int deleteByPrimaryKey(Long id); int insert(RmSoilHistory record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java index f2f5382..117a542 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java @@ -1,7 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmSoilHistory; import com.dy.pipIrrGlobal.pojoRm.RmSoilLast; import com.dy.pipIrrGlobal.voRm.VoSoil; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,7 +15,8 @@ * @Date: 2025/6/25 10:04 * @Description */ -public interface RmSoilLastMapper { +@Mapper +public interface RmSoilLastMapper extends BaseMapper<RmSoilLast> { int deleteByPrimaryKey(Long id); int insert(RmSoilLast record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java index 10ae489..ffa0532 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java @@ -1,7 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmSoilLast; import com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory; import com.dy.pipIrrGlobal.voRm.VoWeather; +import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; @@ -11,7 +14,8 @@ * @Date: 2025/6/25 10:39 * @Description */ -public interface RmWeatherHistoryMapper { +@Mapper +public interface RmWeatherHistoryMapper extends BaseMapper<RmWeatherHistory> { int deleteByPrimaryKey(Long id); int insert(RmWeatherHistory record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java index d5e33d1..3c7c4fa 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java @@ -1,7 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory; import com.dy.pipIrrGlobal.pojoRm.RmWeatherLast; import com.dy.pipIrrGlobal.voRm.VoWeather; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,7 +15,8 @@ * @Date: 2025/6/25 10:39 * @Description */ -public interface RmWeatherLastMapper { +@Mapper +public interface RmWeatherLastMapper extends BaseMapper<RmWeatherLast> { int deleteByPrimaryKey(Long id); int insert(RmWeatherLast record); diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties index 6b48b8c..42235ec 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties @@ -41,13 +41,13 @@ # 娴嬭瘯锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos= # 姊呮睙锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos= # 121鏈嶅姟鍣細 -# 姘戝嫟锛� mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1;state/1,1 +# 姘戝嫟锛� mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1 # 寤跺簡锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos= # 榛戦緳姹燂細 mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos= # 鐢樺窞锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos= # 鍑夊窞锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos= -# 閲戝窛锛� mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1;state/1,1 -# 鍢夊唱鍏筹細 mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1;state/1,1 +# 閲戝窛锛� mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1 +# 鍢夊唱鍏筹細 mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1 mqtt.enable=false mqtt.ip=127.0.0.1 mqtt.port=1883 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java index b2e5864..27131f2 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java @@ -62,6 +62,7 @@ * @param intakeId * @return */ + @Transactional(rollbackFor = Exception.class) public PrCommonIntakes addOrUpdateOftenUseIntake(Long operatorId, Long intakeId) { PrCommonIntakes po = prCommonIntakesDao.selectByOperatorAndIntake(operatorId, intakeId); if(po == null) { diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java index 26de6cf..fa21331 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdCtrl.java @@ -8,6 +8,7 @@ import com.dy.common.util.Callback; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.common.dto.DtoBase; import com.dy.pipIrrRemote.monitor.common.ComCtrl; @@ -24,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; /** * @Author: liurunyu @@ -87,13 +90,14 @@ if(waterPrice == null){ return BaseResponseUtils.buildErrorMsg("鏈嶅姟绔嚭閿欙紝鏈緱鍒版按浠�") ; } + String orderNo = RandomStringUtils.randomNumeric(16) ; CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) .icCardNo("" + vcPo.getVcNum())//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛� .waterRemain(0.0)//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99 .moneyRemain(vcPo.getMoney())//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99 .waterPrice(waterPrice)//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣 .elePrice(0.0)//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣 - .orderNo(RandomStringUtils.randomNumeric(16))//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 + .orderNo(orderNo)//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 .build(); //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇� res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); @@ -118,6 +122,15 @@ sv.addOrUpdateOftenUseIntake(dto.getOperator(), dto.getIntakeId()) ; //寮�闃�鎴愬姛锛岃櫄鎷熷崱璁板綍涓婃爣璁板凡琚崰鐢� sv.setVcUsed(vcPo.getId(), dto.getIntakeId()); + //璁板綍寮�闃�鍛戒护锛屼互澶囪繙绋嬪叧闃� + RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId()); + if(comOpen == null){ + RmCommandOpen po = newRmCommandOpen(comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; + sv.saveCommandOpen(po); + }else{ + setRmCommandOpen(comOpen, comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; + sv.updateCommandOpen(comOpen); + } } } @Override @@ -173,4 +186,39 @@ } return msg; } + + private RmCommandOpen newRmCommandOpen(Long comId, + String protocol, + String comCode, + String comName, + Long intakeId, + String rtuAddr, + Long vcNum, + String orderNo, + Long operator){ + RmCommandOpen po = new RmCommandOpen() ; + this.setRmCommandOpen(po, comId, protocol, comCode, comName, intakeId, rtuAddr, vcNum, orderNo, operator); + return po ; + } + private void setRmCommandOpen(RmCommandOpen po, + Long comId, + String protocol, + String comCode, + String comName, + Long intakeId, + String rtuAddr, + Long vcNum, + String orderNo, + Long operator){ + po.comId = comId ; + po.protocol = protocol ; + po.commandCode = comCode ; + po.commandName = comName ; + po.intakeId = intakeId ; + po.rtuAddr = rtuAddr ; + po.vcNum = vcNum ; + po.orderNo = orderNo ; + po.operator = operator ; + po.sendTime = new Date() ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdSv.java index afd477b..9328b6b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd92/CdSv.java @@ -2,15 +2,19 @@ import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper; import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; +import com.dy.pipIrrGlobal.daoRm.RmCommandOpenMapper; import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.monitor.common.ComSv; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; +import java.util.List; /** * @Author: liurunyu @@ -26,6 +30,8 @@ protected PrWaterPriceMapper prWaterPriceDao ; @Autowired protected PrIntakeVcMapper prIntakeVcDao ; + @Autowired + protected RmCommandOpenMapper rmCommandOpenDao ; public VoVirtualCard selectClientVtCardById(Long id){ return seVirtualCardDao.getVcById(id) ; @@ -44,6 +50,7 @@ /** * 璁剧疆铏氭嫙鍗¤鍗犵敤 */ + @Transactional(rollbackFor = Exception.class) public void setVcUsed(Long id, Long intakeId){ SeVirtualCard po = new SeVirtualCard() ; po.setId(id); @@ -52,4 +59,22 @@ po.setOpenTime(new Date()); seVirtualCardDao.updateByPrimaryKeySelective(po); } + + public RmCommandOpen getCommandOpen(Long intakeId){ + List<RmCommandOpen> list = rmCommandOpenDao.selectByIntakeId(intakeId) ; + if(list != null && list.size() > 0){ + return list.get(0) ; + } + return null ; + } + + @Transactional(rollbackFor = Exception.class) + public void saveCommandOpen(RmCommandOpen po){ + rmCommandOpenDao.insert(po) ; + } + + @Transactional(rollbackFor = Exception.class) + public void updateCommandOpen(RmCommandOpen po){ + rmCommandOpenDao.updateByPrimaryKeySelective(po) ; + } } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdCtrl.java index 4755282..9f00fbe 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdCtrl.java @@ -8,7 +8,7 @@ import com.dy.common.util.Callback; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; -import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrRemote.common.dto.DtoBase; import com.dy.pipIrrRemote.monitor.common.ComCtrl; import io.swagger.v3.oas.annotations.tags.Tag; @@ -60,6 +60,8 @@ res = super.pre2(sv, ComCode, dto, bindingResult); if (res == null) { //鑾峰彇寮�闃�鍛戒护鍙傛暟 + /* + 2025-06-27鍘熸潵鐨勫疄鐜帮紝鍘熸潵娌℃湁璁捐RmCommandOpen瀵硅薄鍙婂叾瀵瑰簲鐨勬暟鎹簱琛� VoUnclosedParam opPa = sv.selectUncloseParam(dto.getIntakeId(), ctrlPo.getRtuAddr()); if(opPa == null) { return BaseResponseUtils.buildFail("璇ュ彇姘村彛涓婃棤鎮ㄦ渶杩戠殑寮�闃�鎿嶄綔"); @@ -73,6 +75,20 @@ .icCardNo(opPa.getVcNum())//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛� .orderNo(opPa.getOrderNo())//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 .build(); + */ + RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId()) ; + if(comOpen == null) { + return BaseResponseUtils.buildFail("璇ュ彇姘村彛涓婃棤鎮ㄦ渶杩戠殑寮�闃�鎿嶄綔"); + } + Long vcId = sv.getVcIdByNum("" + comOpen.vcNum) ; + if(vcId == null) { + return BaseResponseUtils.buildFail("鏈嶅姟绔嚭閿欙紝鏈緱鍒拌櫄鎷熷崱ID"); + } + //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇� + CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) + .icCardNo("" + comOpen.vcNum)//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛� + .orderNo(comOpen.orderNo)//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 + .build(); res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); if (res == null) { //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java index fa1a23a..6b64a55 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd93/CdSv.java @@ -1,13 +1,18 @@ package com.dy.pipIrrRemote.monitor.p202404V201.cd93; import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; +import com.dy.pipIrrGlobal.daoRm.RmCommandOpenMapper; import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.monitor.common.ComSv; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * @Author: liurunyu @@ -20,13 +25,14 @@ @Autowired protected SeVirtualCardMapper seVirtualCardDao ; - @Autowired protected PrWaterPriceMapper prWaterPriceDao ; - + @Autowired + protected RmCommandOpenMapper rmCommandOpenDao ; /** * 瑙i櫎铏氭嫙鍗¤鍗犵敤 */ + @Transactional(rollbackFor = Exception.class) public void setVcNoUsed(Long id){ SeVirtualCard po = new SeVirtualCard() ; po.setId(id); @@ -44,4 +50,13 @@ public Long getVcIdByNum(String vcNum){ return seVirtualCardDao.getVcIdByNum(vcNum) ; } + + + public RmCommandOpen getCommandOpen(Long intakeId){ + List<RmCommandOpen> list = rmCommandOpenDao.selectByIntakeId(intakeId) ; + if(list != null && list.size() > 0){ + return list.get(0) ; + } + return null ; + } } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java index e7e393a..ee7a855 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdCtrl.java @@ -8,6 +8,7 @@ import com.dy.common.util.Callback; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.common.dto.DtoBase; import com.dy.pipIrrRemote.monitor.common.ComCtrl; @@ -24,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; /** * @Author: liurunyu @@ -87,13 +90,14 @@ if(waterPrice == null){ return BaseResponseUtils.buildErrorMsg("鏈嶅姟绔嚭閿欙紝鏈緱鍒版按浠�") ; } + String orderNo = RandomStringUtils.randomNumeric(16) ; CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) .icCardNo("" + vcPo.getVcNum())//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛� .waterRemain(0.0)//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99 .moneyRemain(vcPo.getMoney())//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99 .waterPrice(waterPrice)//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣 .elePrice(0.0)//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣 - .orderNo(RandomStringUtils.randomNumeric(16))//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 + .orderNo(orderNo)//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 .build(); //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇� res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); @@ -118,6 +122,15 @@ sv.addOrUpdateOftenUseIntake(dto.getOperator(), dto.getIntakeId()) ; //寮�闃�鎴愬姛锛岃櫄鎷熷崱璁板綍涓婃爣璁板凡琚崰鐢� sv.setVcUsed(vcPo.getId(), dto.getIntakeId()); + //璁板綍寮�闃�鍛戒护锛屼互澶囪繙绋嬪叧闃� + RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId()); + if(comOpen == null){ + RmCommandOpen po = newRmCommandOpen(comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; + sv.saveCommandOpen(po); + }else{ + setRmCommandOpen(comOpen, comId, ctrlPo.getProtocol(), ComCode, comName, dto.getIntakeId(), ctrlPo.getRtuAddr(), vcPo.getVcNum(), orderNo, dto.getOperator()) ; + sv.updateCommandOpen(comOpen); + } } } @Override @@ -173,4 +186,39 @@ } return msg; } + + private RmCommandOpen newRmCommandOpen(Long comId, + String protocol, + String comCode, + String comName, + Long intakeId, + String rtuAddr, + Long vcNum, + String orderNo, + Long operator){ + RmCommandOpen po = new RmCommandOpen() ; + this.setRmCommandOpen(po, comId, protocol, comCode, comName, intakeId, rtuAddr, vcNum, orderNo, operator); + return po ; + } + private void setRmCommandOpen(RmCommandOpen po, + Long comId, + String protocol, + String comCode, + String comName, + Long intakeId, + String rtuAddr, + Long vcNum, + String orderNo, + Long operator){ + po.comId = comId ; + po.protocol = protocol ; + po.commandCode = comCode ; + po.commandName = comName ; + po.intakeId = intakeId ; + po.rtuAddr = rtuAddr ; + po.vcNum = vcNum ; + po.orderNo = orderNo ; + po.operator = operator ; + po.sendTime = new Date() ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java index 0a1fad3..4b2c04c 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA2/CdSv.java @@ -2,15 +2,19 @@ import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper; import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; +import com.dy.pipIrrGlobal.daoRm.RmCommandOpenMapper; import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.monitor.common.ComSv; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; +import java.util.List; /** * @Author: liurunyu @@ -26,6 +30,8 @@ protected PrWaterPriceMapper prWaterPriceDao ; @Autowired protected PrIntakeVcMapper prIntakeVcDao ; + @Autowired + protected RmCommandOpenMapper rmCommandOpenDao ; public VoVirtualCard selectClientVtCardById(Long id){ return seVirtualCardDao.getVcById(id) ; @@ -52,4 +58,23 @@ po.setOpenTime(new Date()); seVirtualCardDao.updateByPrimaryKeySelective(po); } + + public RmCommandOpen getCommandOpen(Long intakeId){ + List<RmCommandOpen> list = rmCommandOpenDao.selectByIntakeId(intakeId) ; + if(list != null && list.size() > 0){ + return list.get(0) ; + } + return null ; + } + + @Transactional(rollbackFor = Exception.class) + public void saveCommandOpen(RmCommandOpen po){ + rmCommandOpenDao.insert(po) ; + } + + @Transactional(rollbackFor = Exception.class) + public void updateCommandOpen(RmCommandOpen po){ + rmCommandOpenDao.updateByPrimaryKeySelective(po) ; + } + } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java index 2c5626f..c7b5924 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdCtrl.java @@ -8,9 +8,11 @@ import com.dy.common.util.Callback; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; import com.dy.pipIrrRemote.common.dto.DtoBase; import com.dy.pipIrrRemote.monitor.common.ComCtrl; +import com.dy.pipIrrRemote.monitor.p202404V201.cd93.CdParam; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -60,6 +62,8 @@ res = super.pre2(sv, ComCode, dto, bindingResult); if (res == null) { //鑾峰彇寮�闃�鍛戒护鍙傛暟 + /* + 2025-06-27鍘熸潵鐨勫疄鐜帮紝鍘熸潵娌℃湁璁捐RmCommandOpen瀵硅薄鍙婂叾瀵瑰簲鐨勬暟鎹簱琛� VoUnclosedParam opPa = sv.selectUncloseParam(dto.getIntakeId(), ctrlPo.getRtuAddr()); if(opPa == null) { return BaseResponseUtils.buildFail("璇ュ彇姘村彛涓婃棤鎮ㄦ渶杩戠殑寮�闃�鎿嶄綔"); @@ -73,6 +77,20 @@ .icCardNo(opPa.getVcNum())//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛� .orderNo(opPa.getOrderNo())//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 .build(); + */ + RmCommandOpen comOpen = sv.getCommandOpen(dto.getIntakeId()) ; + if(comOpen == null) { + return BaseResponseUtils.buildFail("璇ュ彇姘村彛涓婃棤鎮ㄦ渶杩戠殑寮�闃�鎿嶄綔"); + } + Long vcId = sv.getVcIdByNum("" + comOpen.vcNum) ; + if(vcId == null) { + return BaseResponseUtils.buildFail("鏈嶅姟绔嚭閿欙紝鏈緱鍒拌櫄鎷熷崱ID"); + } + //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇� + com.dy.pipIrrRemote.monitor.p202404V201.cd93.CdParam comParam = CdParam.builder().commandCode(ComCode).projectNo(projectNo).controllerType(controllerType) + .icCardNo("" + comOpen.vcNum)//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛� + .orderNo(comOpen.orderNo)//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 + .build(); res = super.pre3(sv, dto.getIntakeId(), dto.getOperator(), ComCode, comParam); if (res == null) { //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java index 7c37b0d..a4304df 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cdA3/CdSv.java @@ -1,13 +1,17 @@ package com.dy.pipIrrRemote.monitor.p202404V201.cdA3; import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; +import com.dy.pipIrrGlobal.daoRm.RmCommandOpenMapper; import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; +import com.dy.pipIrrGlobal.pojoRm.RmCommandOpen; import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; import com.dy.pipIrrRemote.monitor.common.ComSv; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.List; /** * @Author: liurunyu @@ -20,10 +24,10 @@ @Autowired protected SeVirtualCardMapper seVirtualCardDao ; - @Autowired protected PrWaterPriceMapper prWaterPriceDao ; - + @Autowired + protected RmCommandOpenMapper rmCommandOpenDao ; /** * 瑙i櫎铏氭嫙鍗¤鍗犵敤 */ @@ -44,4 +48,13 @@ public Long getVcIdByNum(String vcNum){ return seVirtualCardDao.getVcIdByNum(vcNum) ; } + + + public RmCommandOpen getCommandOpen(Long intakeId){ + List<RmCommandOpen> list = rmCommandOpenDao.selectByIntakeId(intakeId) ; + if(list != null && list.size() > 0){ + return list.get(0) ; + } + return null ; + } } \ No newline at end of file -- Gitblit v1.8.0