diff --git a/docs/sql/pile_basic_info_program_version.sql b/docs/sql/pile_basic_info_program_version.sql new file mode 100644 index 000000000..75b8d032a --- /dev/null +++ b/docs/sql/pile_basic_info_program_version.sql @@ -0,0 +1,2 @@ +ALTER TABLE `pile_basic_info` + ADD COLUMN `program_version` varchar(64) DEFAULT NULL COMMENT '程序版本' AFTER `software_protocol`; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBasicInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBasicInfo.java index 768ff90a6..e422036c5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBasicInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileBasicInfo.java @@ -61,6 +61,12 @@ public class PileBasicInfo extends BaseEntity { @Excel(name = "软件协议", readConverterExp = "yunkuaichongV150--云快充V1.5;yunkuaichongV160--云快充V1.6;yonglianV1--永联;youdianV1--友电") private String softwareProtocol; + /** + * 程序版本 + */ + @Excel(name = "程序版本") + private String programVersion; + /** * 生产日期 */ @@ -126,6 +132,7 @@ public class PileBasicInfo extends BaseEntity { .append("businessType", getBusinessType()) .append("secretKey", getSecretKey()) .append("softwareProtocol", getSoftwareProtocol()) + .append("programVersion", getProgramVersion()) .append("productionDate", getProductionDate()) .append("licenceId", getLicenceId()) .append("modelId", getModelId()) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBasicInfoMapper.java index 474d7fae0..6cdf3caaa 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBasicInfoMapper.java @@ -65,6 +65,11 @@ public interface PileBasicInfoMapper { */ int updatePileBasicInfo(PileBasicInfo pileBasicInfo); + /** + * 更新充电桩程序版本 + */ + int updateProgramVersion(@Param("pileSn") String pileSn, @Param("programVersion") String programVersion); + /** * 删除设备管理 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileBasicInfoService.java index 5f069c91a..a17d40641 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileBasicInfoService.java @@ -65,6 +65,15 @@ public interface PileBasicInfoService { */ int updateSimInfo(PileBasicInfo pileBasicInfo); + /** + * 更新充电桩程序版本 + * + * @param pileSn 充电桩编号 + * @param programVersion 程序版本 + * @return 更新行数 + */ + int updateProgramVersion(String pileSn, String programVersion); + /** * 批量删除设备管理 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index 0b276b0fe..b01b6e936 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -220,6 +220,32 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService { return pileBasicInfoMapper.updatePileBasicInfo(pileBasicInfo); } + /** + * 更新充电桩程序版本 + * + * @param pileSn 充电桩编号 + * @param programVersion 程序版本 + * @return 更新行数 + */ + @Override + public int updateProgramVersion(String pileSn, String programVersion) { + String normalizedProgramVersion = PileProgramVersionUtils.normalize(programVersion); + if (StringUtils.isBlank(pileSn) || StringUtils.isBlank(normalizedProgramVersion)) { + return 0; + } + + PileBasicInfo basicInfo = selectPileBasicInfoBySN(pileSn); + if (basicInfo == null || StringUtils.equals(normalizedProgramVersion, basicInfo.getProgramVersion())) { + return 0; + } + + int row = pileBasicInfoMapper.updateProgramVersion(pileSn, normalizedProgramVersion); + if (row > 0) { + cleanRedisCache(pileSn); + } + return row; + } + /** * 批量删除设备管理 * diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml index 578f321e8..fffd3ba40 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml @@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -29,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - id, sn, name, business_type, secret_key, software_protocol, production_date, licence_id, model_id, sim_id, + id, sn, name, business_type, secret_key, software_protocol, program_version, production_date, licence_id, model_id, sim_id, iccid, merchant_id, station_id, fault_reason, create_by, create_time, update_by, update_time, del_flag, remark @@ -46,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and business_type = #{businessType} and secret_key = #{secretKey} and software_protocol = #{softwareProtocol} + and program_version = #{programVersion} and licence_id = #{licenceId} and model_id = #{modelId} @@ -77,6 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" business_type, secret_key, software_protocol, + program_version, production_date, licence_id, model_id, @@ -98,6 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{businessType}, #{secretKey}, #{softwareProtocol}, + #{programVersion}, #{productionDate}, #{licenceId}, #{modelId}, @@ -123,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" business_type = #{businessType}, secret_key = #{secretKey}, software_protocol = #{softwareProtocol}, + program_version = #{programVersion}, production_date = #{productionDate}, licence_id = #{licenceId}, model_id = #{modelId}, @@ -141,6 +146,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + update pile_basic_info + set program_version = #{programVersion,jdbcType=VARCHAR}, + update_time = now() + where del_flag = '0' + and sn = #{pileSn,jdbcType=VARCHAR} + and (program_version is null or program_version != #{programVersion,jdbcType=VARCHAR}) + + delete from pile_basic_info where id = #{id} @@ -208,7 +222,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into pile_basic_info - (sn, name, business_type, secret_key, software_protocol, production_date, licence_id, model_id, sim_id, iccid, + (sn, name, business_type, secret_key, software_protocol, program_version, production_date, licence_id, model_id, sim_id, iccid, merchant_id, station_id, fault_reason, create_by, update_by, del_flag, remark) values @@ -218,6 +232,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item.businessType,jdbcType=VARCHAR}, #{item.secretKey,jdbcType=VARCHAR}, #{item.softwareProtocol,jdbcType=VARCHAR}, + #{item.programVersion,jdbcType=VARCHAR}, #{item.productionDate,jdbcType=TIMESTAMP}, #{item.licenceId,jdbcType=BIGINT}, #{item.modelId,jdbcType=BIGINT},