Commit d1e7f194 authored by 刘林's avatar 刘林

Merge branch 'refs/heads/develop_tzs_bugfix' into develop_tzs_register

parents c75c8efd b3311585
......@@ -6,6 +6,7 @@ import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.*;
/**
......@@ -660,10 +661,25 @@ public class DateUtils {
return now;
}
public static Date getDateByStr(String dateStr) {
//String dateStr = "2025-08-20T10:41:02.584+08:00";
OffsetDateTime offsetDateTime = OffsetDateTime.parse(dateStr);
// 转换为Date对象
Date date = Date.from(offsetDateTime.toInstant());
return date;
}
public static void main(String[] args) throws Exception {
System.out.println(DateUtils.convertDateToString(new Date(), DateUtils.CHN_DATE_PATTERN));
String dateStr = "2025-08-20T10:41:02.584+08:00";
// 解析为OffsetDateTime(包含时区信息)
OffsetDateTime offsetDateTime = OffsetDateTime.parse(dateStr);
// 转换为Date对象
Date date = Date.from(offsetDateTime.toInstant());
System.out.println(date); // 输出对应的Date对象
// System.out.println(DateUtils.convertDateToString(new Date(), DateUtils.CHN_DATE_PATTERN));
/*System.out.println(dateTimeToDate(new Date()));
System.out.println(dateParse("2017-02-04 14:58:20", null));
......@@ -690,10 +706,10 @@ public class DateUtils {
// System.out.println(secondsToTimeStr(3600));
// System.out.println(getTimeString(dateParse("2023-09-07 16:15:15", DATE_TIME_PATTERN), dateParse("2023-09-06 " +
// "16:15:15", DATE_TIME_PATTERN)));
long diff = dateParse("2022-09-07 16:16:16", DATE_TIME_PATTERN).getTime() - dateParse("2023-09-06 10:15:15",
DATE_TIME_PATTERN).getTime();
System.out.println(diff/1000);
System.out.println(secondsToTimeStr((int) diff/1000));
// long diff = dateParse("2022-09-07 16:16:16", DATE_TIME_PATTERN).getTime() - dateParse("2023-09-06 10:15:15",
// DATE_TIME_PATTERN).getTime();
// System.out.println(diff/1000);
// System.out.println(secondsToTimeStr((int) diff/1000));
}
/**
......
......@@ -8,14 +8,14 @@ import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 单位下摄像头表
* 单位下摄像头配置
*
* @author system_generator
* @date 2024-10-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="BaseEnterpriseVideoDto", description="单位下摄像头表")
@ApiModel(value="BaseEnterpriseVideoDto", description="单位下摄像头配置表")
public class BaseEnterpriseVideoDto extends BaseDto {
private static final long serialVersionUID = 1L;
......
package com.yeejoin.amos.boot.module.common.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 单位下摄像头表
*
* @author system_generator
* @date 2024-10-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="BaseEnterpriseVideoNodeDto", description="单位下摄像头表")
public class BaseEnterpriseVideoNodeDto extends BaseDto {
private static final long serialVersionUID = 1L;
/**
* 使用单位名称
*/
@ApiModelProperty(value = "使用单位名称")
private String useUnitName;
/**
* 使用单位统一信用代码
*/
@ApiModelProperty(value = "使用单位统一信用代码")
private String useUnitCode;
/**
* 区域名称
*/
@ApiModelProperty(value = "区域名称")
private String regionName;
/**
* 区域代码
*/
@ApiModelProperty(value = "区域代码")
private String regionCode;
/**
* 视频名称
*/
@ApiModelProperty(value = "视频名称")
private String videoName;
/**
* 设备使用登记代码
*/
@ApiModelProperty(value = "设备使用登记代码")
private String devUseCode;
/**
* 是否删除
*/
@ApiModelProperty(value = "是否删除")
private Boolean isDelete;
/**
* 组织代码
*/
@ApiModelProperty(value = "组织代码")
private String orgCode;
/**
* 视频ID
*/
@ApiModelProperty(value = "视频ID")
private String cameraIndexCode;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updatesTime;
@ApiModelProperty(value = "标识什么设种类使用的摄像头")
private String equListCode;
/**
* 视频配置表主键
*/
@ApiModelProperty(value = "视频配置表主键")
private Long videoSeq;
}
......@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 单位下摄像头表
* 单位下摄像头配置
*
* @author system_generator
* @date 2024-10-09
......
package com.yeejoin.amos.boot.module.common.api.entity;
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.yeejoin.amos.boot.biz.common.entity.BaseRelationEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 单位下摄像头表
*
* @author system_generator
* @date 2024-10-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tz_base_enterprise_video_node")
public class BaseEnterpriseVideoNode extends BaseRelationEntity {
private static final long serialVersionUID = 1L;
/**
* 使用单位名称
*/
@TableField("use_unit_name")
private String useUnitName;
/**
* 使用单位统一信用代码
*/
@TableField("use_unit_code")
private String useUnitCode;
/**
* 区域名称
*/
@TableField("region_name")
private String regionName;
/**
* 区域代码
*/
@TableField("region_code")
private String regionCode;
/**
* 视频名称
*/
@TableField("video_name")
private String videoName;
/**
* 设备使用登记代码
*/
@TableField("dev_use_code")
private String devUseCode;
/**
* 是否删除
*/
@TableField("is_delete")
private Boolean isDelete;
/**
* 组织代码
*/
@TableField("org_code")
private String orgCode;
/**
* 视频ID
*/
@TableField("camera_index_code")
private String cameraIndexCode;
/**
* 更新时间
*/
@TableField("updates_time")
private Date updatesTime;
/**
* 标识什么设种类使用的摄像头
*/
@TableField("equ_list_code")
private String equListCode;
/**
* 视频配置表主键
*/
@TableField(value = "video_seq")
private Long videoSeq;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseVideo;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseVideoNode;
/**
* 单位下摄像头表 Mapper 接口
*
* @author system_generator
* @date 2024-10-09
*/
public interface BaseEnterpriseVideoNodeMapper extends BaseMapper<BaseEnterpriseVideoNode> {
}
package com.yeejoin.amos.boot.module.common.api.service;
/**
* 单位下摄像头表接口类
*
* @author system_generator
* @date 2024-10-09
*/
public interface IBaseEnterpriseVideoNodeService {
}
......@@ -6,6 +6,8 @@ import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
* @description: 时间工具类
......@@ -285,6 +287,14 @@ public class DateUtils {
return null;
}
public static Date dateParseWithZonedDateTime(String dateTimeString) throws ParseException {
// 1. 解析原始字符串为ZonedDateTime(含时区信息)
ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateTimeString);
// 2. 定义目标格式:yyyy-MM-dd HH:mm:ss
DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = zonedDateTime.format(targetFormatter);
return dateParseWithPattern(formattedDateTime);
}
/**
* 将日期时间格式成只有日期的字符串(可以直接使用dateFormat,Pattern为Null进行格式化)
*
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseVideoNodeMapper">
</mapper>
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseVideoNodeDto;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseVideoNode;
import com.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseVideoNodeMapper;
import com.yeejoin.amos.boot.module.common.api.service.IBaseEnterpriseVideoNodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
/**
* 单位下摄像头表服务实现类
*
* @author system_generator
* @date 2024-10-09
*/
@Service
@Slf4j
public class BaseEnterpriseVideoNodeServiceImpl extends BaseService<BaseEnterpriseVideoNodeDto, BaseEnterpriseVideoNode, BaseEnterpriseVideoNodeMapper> implements IBaseEnterpriseVideoNodeService {
public Boolean saveOrUpdates(BaseEnterpriseVideoNode enterpriseVideoNode, String cameraIndexCode){
return this.saveOrUpdate(enterpriseVideoNode, new QueryWrapper<BaseEnterpriseVideoNode>().lambda().eq(BaseEnterpriseVideoNode::getCameraIndexCode, cameraIndexCode));
}
}
\ No newline at end of file
......@@ -2721,7 +2721,7 @@
FROM
tzs_user_permission tup
LEFT JOIN tzs_user_info tui ON tup.user_seq = tui.sequence_nbr
LEFT JOIN tz_base_enterprise_info ei ON ei.use_unit_code = tui.unit_code
LEFT JOIN tz_base_enterprise_info ei ON ei.use_code = tui.unit_code
WHERE
tup.expiry_date <![CDATA[<]]> CURRENT_DATE AND tup.permission_post IN ('permissionData66151', 'permissionData66152', 'permissionData6552');
......
......@@ -1150,7 +1150,8 @@ public class CommonEquipDataProcessService {
public void beforeCheckForUseOrgCode(ProjectContraptionChangeDataDto dto) {
LambdaQueryWrapper<IdxBizJgProjectContraption> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IdxBizJgProjectContraption::getUseRegistrationCode, dto.getUseRegistrationCode())
.ne(BaseEntity::getSequenceNbr, dto.getProjectContraptionId());
.ne(BaseEntity::getSequenceNbr, dto.getProjectContraptionId())
.ne(IdxBizJgProjectContraption::getUseUnitCreditCode, dto.getUseUnitCreditCode());
if (idxBizJgProjectContraptionServiceImpl.count(queryWrapper) > 0) {
throw new BadRequest("使用登记证编号已存在!");
}
......
......@@ -158,6 +158,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private static final Logger logger = LogManager.getLogger(JgUseRegistrationServiceImpl.class);
private static final String DEFINITION_KEY = "useRegistration";
private static final String JIAN_CHA_ROLE_ID = "1864242478501093377";
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");;
private static final int BATCH_SIZE = 1000;
private final List<String> NOT_FLOWING_STATE = Arrays.asList("使用单位待提交", "一级受理已驳回", "使用单位已撤回", "已作废");
......@@ -2236,6 +2237,20 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
//通过
//一级通过,且是特殊登记,需要监察,approvalStatus=2
if ("2".equals(jgUseRegistration.getRegType()) && (WorkFlowStatusEnum.USE_RECEIVE.getPass().equals(jgUseRegistration.getStatus()) || WorkFlowStatusEnum.USE_RECEIVE.getReject().equals(jgUseRegistration.getStatus()))) {
List<AgencyUserModel> taskExecutor = Privilege.agencyUserClient
.queryByRoleId(String.join(",", JIAN_CHA_ROLE_ID), null,
true, true, "", buildOrgCodePrefixes(orgCode)).getResult();
if (!ValidationUtil.isEmpty(taskExecutor)) {
String companyCodes = taskExecutor.stream()
.map(AgencyUserModel::getCompanys)
.filter(Objects::nonNull)
.filter(list -> !list.isEmpty())
.map(list -> list.get(0).getCompanyCode())
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.joining(","));
dto.setNextExecuteUserCompanyCode(companyCodes);
}
dto.setResultCode("approvalStatus");
map.put("approvalStatus", "9");
map.put("nextExecuteUserOrgCode", orgCode);
......@@ -2270,6 +2285,15 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
}
public static String buildOrgCodePrefixes(String orgCode) {
if (orgCode == null || orgCode.isEmpty()) return "";
String[] parts = orgCode.split("\\*");
List<String> prefixes = new ArrayList<>();
if (parts.length >= 3) prefixes.add(String.join("*", Arrays.copyOfRange(parts, 0, 3)));
if (parts.length >= 2) prefixes.add(String.join("*", Arrays.copyOfRange(parts, 0, 2)));
return String.join(",", prefixes);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 6000000)
public void withdraw(String instanceId, String nextTaskId, String manageType) {
......
......@@ -466,7 +466,7 @@
v.use_unit_code useUnitCode,
(SELECT use_unit FROM tz_base_enterprise_info WHERE use_code = v.use_unit_code) useUnit
FROM
tz_base_enterprise_video v
tz_base_enterprise_video_node v
WHERE
region_code LIKE CONCAT('%', #{cityCode}, '%')
GROUP BY
......
......@@ -60,4 +60,11 @@ public class VideoController {
List<CommonVideoDto> re = videoService.getVideoList(useUnitCode, regionCode);
return ResponseHelper.buildResponse(re);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "查询骏景视频平台的视频数据并写入数据库", httpMethod = "GET")
@GetMapping(value = "/junjing/hk")
public ResponseModel<Boolean> saveOrUpdateVideos(@RequestParam(value = "sequenceNbr") String sequenceNbr) {
boolean re = videoService.saveOrUpdateVideos(sequenceNbr);
return ResponseHelper.buildResponse(re);
}
}
{
"西安":"610000#610100",
"铜川":"610000#610200",
"宝鸡":"610000#610300",
"咸阳":"610000#610400",
"渭南":"610000#610500",
"延安":"610000#610600",
"汉中":"610000#610700",
"榆林":"610000#610800",
"安康":"610000#610900",
"商洛":"610000#611000"
}
\ No newline at end of file
......@@ -208,4 +208,9 @@ public class TzBaseEnterpriseInfo extends BaseEntity {
*/
@TableField(value = "create_date")
private Date createDate;
/**
* 组织机构
*/
@TableField(value = "org_code")
private String orgCode;
}
......@@ -81,8 +81,7 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Autowired
StartPlatformTokenService platformTokenService;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment