Browse Source

贞达市政后端代码增加时区区分,导致导出时时间少了8个小时
小程序端增加部分接口和后端增加审批时增加乐观锁
更改服务器地址

wang_xy 2 years ago
parent
commit
f77e5e209f

+ 1 - 1
pom.xml

@@ -50,7 +50,7 @@
         <minio.version>8.3.3</minio.version>
 
         <!-- docker 配置 -->
-        <docker.registry.url>120.46.131.184</docker.registry.url>
+        <docker.registry.url>123.249.30.140</docker.registry.url>
         <docker.registry.host>http://${docker.registry.url}:2375</docker.registry.host>
         <docker.namespace>ruoyi</docker.namespace>
         <docker.plugin.version>1.2.2</docker.plugin.version>

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/Backup.java

@@ -16,7 +16,7 @@ public class Backup {
 //
 //        DsConfigEntity dsConfig=new DsConfigEntity();
 //
-//        dsConfig.setAdress("120.46.131.184");
+//        dsConfig.setAdress("123.249.30.140");
 //        dsConfig.setDatabase("gas");
 //        dsConfig.setDbType("mysql5.x");
 //        dsConfig.setName("测试");

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GHouseController.java

@@ -58,7 +58,7 @@ public class GHouseController extends BaseController {
 //
 //        DsConfigEntity dsConfig=new DsConfigEntity();
 //
-//        dsConfig.setAdress("120.46.131.184");
+//        dsConfig.setAdress("123.249.30.140");
 //        dsConfig.setDatabase("gas");
 //        dsConfig.setDbType("mysql5.x");
 //        dsConfig.setName("测试");

+ 31 - 5
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GOrderController.java

@@ -112,10 +112,23 @@ public class GOrderController extends BaseController {
      * @return
      */
     @GetMapping("/submitY")
-    public AjaxResult submitY(Long[] ids,String reason,Integer version) {
-        iGOrderService.submitY(Arrays.asList(ids),reason,version);
+    public AjaxResult submitY(Long[] ids,String reason,Integer[] versions) {
+        int num = 0;
+        String msg = "";
+        for (int i = 0; i < ids.length; i++) {
+            if(iGOrderService.getByIdAndVersion(ids[i],versions[i]) == 0){
+                num++;
+            }
+        }
+        if(num > 0&&ids.length > 1){
+            msg = "已有人审批过其中"+num+"条工单!剩余"+(ids.length-num)+"审核成功!";
+        }else if(num > 0&&ids.length == 1){
+            msg = "已有人审批过其中此条工单!当前操作已取消并为您刷新菜单!";
+        }
+
+        iGOrderService.submitY(Arrays.asList(ids),reason,versions);
         areaService.write(Arrays.asList(ids));
-        return AjaxResult.success();
+        return AjaxResult.success(num > 0 ? msg:"审核成功!");
     }
     /**
      * 批量不合格
@@ -123,8 +136,21 @@ public class GOrderController extends BaseController {
      * @return
      */
     @GetMapping("/submitN")
-    public AjaxResult<Void> submitN(Long[] ids,String reason,Integer version) {
-        return toAjax(iGOrderService.submitN(Arrays.asList(ids),reason,version) ? 1 : 0);
+    public AjaxResult<Void> submitN(Long[] ids,String reason,Integer[] versions) {
+        int num = 0;
+        String msg = "";
+        for (int i = 0; i < ids.length; i++) {
+            if(iGOrderService.getByIdAndVersion(ids[i],versions[i]) == 0){
+                num++;
+            }
+        }
+        if(num > 0&&ids.length > 1){
+            msg = "已有人审批过其中"+num+"条工单!剩余"+(ids.length-num)+"审核成功!";
+        }else if(num > 0&&ids.length == 1){
+            msg = "已有人审批过其中此条工单!当前操作已取消并为您刷新菜单!";
+        }
+        iGOrderService.submitN(Arrays.asList(ids),reason,versions);
+        return AjaxResult.success(num > 0 ? msg:"审核成功!");
     }
     /**
      * 删除工程管理

+ 5 - 5
ruoyi-admin/src/main/resources/application-dev.yml

@@ -51,12 +51,12 @@ spring:
         # 主库数据源
         master:
           driverClassName: com.mysql.cj.jdbc.Driver
-#          url: jdbc:mysql://localhost:3306/zdsz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#          username: root
-#          password: 123456
-          url: jdbc:mysql://120.46.131.184:3307/gas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+          url: jdbc:mysql://localhost:3306/zdsz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
           username: root
-          password: szrqwx123456
+          password: 123456
+#          url: jdbc:mysql://123.249.30.140:3307/gas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+#          username: root
+#          password: szrqwx123456
 #          szrqwx123456
         # 从库数据源
         slave:

+ 16 - 7
ruoyi-admin/src/main/resources/application-prod.yml

@@ -51,7 +51,7 @@ spring:
         # 主库数据源
         master:
           driverClassName: com.mysql.cj.jdbc.Driver
-          url: jdbc:mysql://120.46.131.184:3307/gas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+          url: jdbc:mysql://123.249.30.140:3307/gas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
           username: root
           password: szrqwx123456
         # 从库数据源
@@ -113,7 +113,7 @@ spring:
 spring:
   redis:
     # 地址
-    host: 120.46.131.184
+    host: 123.249.30.140
     # 端口,默认为6379
     port: 6379
     # 数据库索引
@@ -156,15 +156,24 @@ redisson:
     subscriptionsPerConnection: 5
     # DNS监测时间间隔,单位:毫秒
     dnsMonitoringInterval: 5000
+#huawei:
+#  obs:
+#    ak: X54NQCIWAVXPIR6QB4BK
+#    sk: x7J3k8VjIt5zY5SITeb5JYaXbeY5ZPwE3XTw3FI0
+#    upload:
+#      endPoint: obs.cn-north-4.myhuaweicloud.com
+#    access:
+#      endPoint: https://szrqgz.obs.cn-north-4.myhuaweicloud.com
+#    bucketName: szrqgz
 huawei:
   obs:
-    ak: X54NQCIWAVXPIR6QB4BK
-    sk: x7J3k8VjIt5zY5SITeb5JYaXbeY5ZPwE3XTw3FI0
+    ak: KZVKAAUQENCKITHZ3EWO
+    sk: B7tLa82CJ5EdNOh5a2G9i77sPYh8skcydTk3C8sb
     upload:
       endPoint: obs.cn-north-4.myhuaweicloud.com
     access:
-      endPoint: https://szrqgz.obs.cn-north-4.myhuaweicloud.com
-    bucketName: szrqgz
+      endPoint: https://szrqgz1.obs.cn-north-4.myhuaweicloud.com
+    bucketName: szrqgz1
 
 # 临时文件路径
-filePath: /temporary/
+filePath: /temporary/

+ 1 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -83,6 +83,7 @@ spring:
     template-resolver-order: 1
   jackson:
     # 日期格式化
+    time-zone: GMT+8
     date-format: yyyy-MM-dd HH:mm:ss
     serialization:
       # 格式化输出

+ 34 - 5
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GOrderExportVoAnJian.java

@@ -10,6 +10,7 @@ import lombok.Data;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
+import java.util.TimeZone;
 
 
 /**
@@ -38,13 +39,13 @@ public class GOrderExportVoAnJian {
 	@ExcelProperty(value = "房屋")
 	private String house;
 
+	@ApiModelProperty("订单时间")
 	@ExcelProperty(value = "订单时间")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date time;
-	@ExcelProperty(value = "修改时间")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+	private String time;
+
 	@ApiModelProperty("修改时间")
-	private Date updateTime;
+	@ExcelProperty(value = "修改时间")
+	private String updateTime;
 
 	@ExcelProperty(value = "是否合格")
 	private String whether;
@@ -55,4 +56,32 @@ public class GOrderExportVoAnJian {
 	@ExcelProperty(value = "备注")
 	private String remark;
 
+	public String getTime() {
+		return time;
+	}
+
+	public void setTime(Date time) {
+		this.time = DateToString(time);
+	}
+
+	public String getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = DateToString(updateTime);
+	}
+
+	/**
+	 * date类型时间转String类型时间(设置时区)
+	 * @param time
+	 * @return
+	 */
+	public static String DateToString(Date time){
+		TimeZone timeZoneSH = TimeZone.getTimeZone("Asia/Shanghai");
+		SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
+		outputFormat.setTimeZone(timeZoneSH);
+		return outputFormat.format(time);
+	}
+
 }

+ 30 - 4
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GOrderExportVoWeiXiu.java

@@ -43,12 +43,10 @@ public class GOrderExportVoWeiXiu {
 	private String house;
 
 	@ExcelProperty(value = "订单时间")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date time;
+	private String time;
 	@ExcelProperty(value = "修改时间")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty("修改时间")
-	private Date updateTime;
+	private String updateTime;
 
 	@ExcelProperty(value = "是否维修")
 	private String whether;
@@ -59,4 +57,32 @@ public class GOrderExportVoWeiXiu {
 	@ExcelProperty(value = "备注")
 	private String remark;
 
+	public String getTime() {
+		return time;
+	}
+
+	public void setTime(Date time) {
+		this.time = DateToString(time);
+	}
+
+	public String getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = DateToString(updateTime);
+	}
+
+	/**
+	 * date类型时间转String类型时间(设置时区)
+	 * @param time
+	 * @return
+	 */
+	public static String DateToString(Date time){
+		TimeZone timeZoneSH = TimeZone.getTimeZone("Asia/Shanghai");
+		SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
+		outputFormat.setTimeZone(timeZoneSH);
+		return outputFormat.format(time);
+	}
+
 }

+ 1 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GOrderMapper.java

@@ -22,6 +22,7 @@ public interface GOrderMapper extends BaseMapperPlus<GOrder> {
     Page<GOrderVo> getListExamine(@Param("p") GOrderBo bo, Page<?> page);
 
     GOrderVo getById(Long id);
+    Long getByIdAndVersion(@Param("id")Long id,@Param("version")Integer version);
 
     //小区订单完成数
     int getCount(Long id);

+ 3 - 2
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGOrderService.java

@@ -48,8 +48,8 @@ public interface IGOrderService extends IServicePlus<GOrder, GOrderVo> {
 	 * @return
 	 */
 	Boolean updateByBo(GOrderBo bo);
-	Boolean submitY(List<Long> ids,String reason,Integer version);
-	Boolean submitN(List<Long> ids,String reason,Integer version);
+	Boolean submitY(List<Long> ids,String reason,Integer[] version);
+	Boolean submitN(List<Long> ids,String reason,Integer[] version);
 
 	/**
 	 * 校验并删除数据
@@ -63,6 +63,7 @@ public interface IGOrderService extends IServicePlus<GOrder, GOrderVo> {
 	TableDataInfo<GOrderVo> getListExamine(GOrderBo bo);
 
 	GOrderVo getById(Long id);
+	Long getByIdAndVersion(Long id,Integer version);//乐观锁用查询修改时是否有条数
 	List<GCensusVo> getExaminePipeType(Long id);
 	List<GCensusVo> getExaminePipeLength(Long id);
 	List<GCensusVo> getExamineValveType(Long id);

+ 9 - 4
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GOrderServiceImpl.java

@@ -120,7 +120,7 @@ public class GOrderServiceImpl extends ServicePlusImpl<GOrderMapper, GOrder, GOr
     }
 
     @Override
-    public Boolean submitY(List<Long> ids, String reason,Integer version) {
+    public Boolean submitY(List<Long> ids, String reason,Integer[] version) {
         Collection<GOrder> order = new ArrayList<>();
         for (int i = 0; i < ids.size(); i++) {
             GOrderBo bo = new GOrderBo();
@@ -132,7 +132,7 @@ public class GOrderServiceImpl extends ServicePlusImpl<GOrderMapper, GOrder, GOr
                     bo.setReason(reason);
                 }
             }
-            bo.setVersion(version);
+            bo.setVersion(version[i]);
             GOrder update = BeanUtil.toBean(bo, GOrder.class);
             order.add(update);
         }
@@ -140,7 +140,7 @@ public class GOrderServiceImpl extends ServicePlusImpl<GOrderMapper, GOrder, GOr
     }
 
     @Override
-    public Boolean submitN(List<Long> ids, String reason,Integer version) {
+    public Boolean submitN(List<Long> ids, String reason,Integer[] version) {
         Collection<GOrder> order = new ArrayList<>();
         for (int i = 0; i < ids.size(); i++) {
             GOrderBo bo = new GOrderBo();
@@ -152,7 +152,7 @@ public class GOrderServiceImpl extends ServicePlusImpl<GOrderMapper, GOrder, GOr
                     bo.setReason(reason);
                 }
             }
-            bo.setVersion(version);
+            bo.setVersion(version[i]);
             GOrder update = BeanUtil.toBean(bo, GOrder.class);
             order.add(update);
         }
@@ -211,6 +211,11 @@ public class GOrderServiceImpl extends ServicePlusImpl<GOrderMapper, GOrder, GOr
     }
 
     @Override
+    public Long getByIdAndVersion(Long id,Integer version) {
+        return gOrderMapper.getByIdAndVersion(id,version);
+    }
+
+    @Override
     public List<GCensusVo> getExaminePipeType(Long id) {
         List<GCensusVo> list1 = gOrderMapper.getExaminePipeType(id);
         List<GCensusVo> list = new ArrayList<>();

+ 3 - 1
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GUserServiceImpl.java

@@ -84,7 +84,9 @@ public class GUserServiceImpl extends ServicePlusImpl<GUserMapper, GUser, GUserV
         if (StringUtils.isEmpty(update.getPassword())) {
             update.setPassword(SecurityUtils.encryptPassword("123456"));
         }else {
-            update.setPassword(update.getPassword());
+            if(!getVoById(update.getId()).getPassword().equals(update.getPassword())){
+                update.setPassword(SecurityUtils.encryptPassword(update.getPassword()));
+            }
         }
         return updateById(update);
     }

+ 10 - 0
ruoyi-gas/src/main/resources/mapper/GOrderMapper.xml

@@ -37,6 +37,7 @@
         a.remark as remark,
         a.time as time,
         a.whether as whether,
+        a.version as version,
         CONCAT(e.name,'-',d.name,'-',c.name,'-',b.name) as house
         from g_order a
         left join g_house b on a.house_id = b.id
@@ -98,6 +99,7 @@
         a.time as exportTime,
         CONCAT(e.name,'-',d.name,'-',c.name,'-',b.name) as house,
         a.whether as whether,
+        a.version as version,
         a.house_id as houseId
         from g_order a
         left join g_house b on a.house_id = b.id
@@ -158,6 +160,7 @@
         a.remark as remark,
         a.time as time,
         a.whether as whether,
+        a.version as version,
         CONCAT(e.name,'-',d.name,'-',c.name,'-',b.name) as house
         from g_order a
         left join g_house b on a.house_id = b.id
@@ -195,6 +198,10 @@
                               left join g_building d on c.building_id = d.id
         where a.id = #{id} and a.del_flag = '0'
     </select>
+    <select id="getByIdAndVersion" resultType="java.lang.Long">
+        select count(*) from g_order
+        where id = #{id} and del_flag = '0' and version = #{version}
+    </select>
     <select id="getCount" resultType="java.lang.Integer">
         select count(DISTINCT o.house_id)
         from g_order o
@@ -296,6 +303,7 @@
         a.remark as remark,
         a.time as time,
         a.whether as whether,
+        a.version as version,
         CONCAT(e.name,'-',d.name,'-',c.name,'-',b.name) as house
         from g_order a
         left join g_house b on a.house_id = b.id
@@ -322,6 +330,7 @@
         a.time as time,
         a.update_time as updateTime,
         a.whether as whether,
+        a.version as version,
         CONCAT(e.name,'-',d.name,'-',c.name,'-',b.name) as house
         from g_order a
         left join g_house b on a.house_id = b.id
@@ -414,6 +423,7 @@
         a.time as time,
         a.update_time as updateTime,
         a.whether as whether,
+        a.version as version,
         CONCAT(e.name,'-',d.name,'-',c.name,'-',b.name) as house
         from g_order a
         left join g_house b on a.house_id = b.id