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},