1. 终端,
This commit is contained in:
parent
4cfe7c1436
commit
d2cac150a1
|
|
@ -1,6 +1,7 @@
|
|||
package com.chushang.common.dict.utils;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.chushang.common.core.web.Result;
|
||||
|
|
@ -22,9 +23,7 @@ public class DictUtils {
|
|||
private static final RemoteDictDataService remoteService = SpringUtil.getBean(RemoteDictDataService.class);
|
||||
private static final RedissonClient redissonClient = SpringUtil.getBean(RedissonClient.class);
|
||||
private static final String DICT_MAP_KEY = "dict_map_key:";
|
||||
|
||||
private static final Map<String, Map<String, String>> DICT_CACHE = MapUtil.newConcurrentHashMap(25);
|
||||
|
||||
private static final String DICT_MAP_LABEL = "dict_map_label:";
|
||||
/**
|
||||
* 远程调用
|
||||
*/
|
||||
|
|
@ -37,14 +36,7 @@ public class DictUtils {
|
|||
return new HashMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字段值获取字典标签
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param value 字典值
|
||||
* @return 字典标签
|
||||
*/
|
||||
public static String getDictLabel(String dictType, String value) {
|
||||
private static Map<String, String> getDictMap(String dictType){
|
||||
RBucket<Map<String, String>> bucket = redissonClient.getBucket(DICT_MAP_KEY + dictType);
|
||||
Map<String, String> dictMap = bucket.get();
|
||||
if (CollUtil.isEmpty(dictMap)) {
|
||||
|
|
@ -54,6 +46,37 @@ public class DictUtils {
|
|||
}
|
||||
bucket.set(dictMap);
|
||||
}
|
||||
return dictMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字段值获取字典标签
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param value 字典值
|
||||
* @return 字典标签
|
||||
*/
|
||||
public static String getDictLabel(String dictType, String value) {
|
||||
Map<String, String> dictMap = getDictMap(dictType);
|
||||
assert dictMap != null;
|
||||
return dictMap.get(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典标签获取字段值
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param label 字典标签
|
||||
* @return 字典值
|
||||
*/
|
||||
public static String getDictValue(String dictType, String label) {
|
||||
Map<String, String> dictMap = getDictMap(dictType);
|
||||
assert dictMap != null;
|
||||
if (CollUtil.isEmpty(dictMap)){
|
||||
return null;
|
||||
}
|
||||
return dictMap.values().stream().filter(value -> value.equals(label))
|
||||
.findFirst().orElse(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,6 +83,11 @@
|
|||
<!--nacos 心跳 INFO 屏蔽-->
|
||||
<logger name="com.alibaba.cloud.nacos" level="info">
|
||||
</logger>
|
||||
<logger name="org.redisson.connection.SentinelConnectionManager" level="OFF" />
|
||||
<logger name="org.redisson.connection.MasterSlaveEntry" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.PubSubConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.SlaveConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.balancer.LoadBalancerManager" level="OFF" />
|
||||
|
||||
<!-- 使用kafka启用下面配置 -->
|
||||
<!-- <appender name="plumelog" class="com.plumelog.logback.appender.KafkaAppender">-->
|
||||
|
|
|
|||
|
|
@ -83,6 +83,11 @@
|
|||
<!--nacos 心跳 INFO 屏蔽-->
|
||||
<logger name="com.alibaba.cloud.nacos" level="info">
|
||||
</logger>
|
||||
<logger name="org.redisson.connection.SentinelConnectionManager" level="OFF" />
|
||||
<logger name="org.redisson.connection.MasterSlaveEntry" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.PubSubConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.SlaveConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.balancer.LoadBalancerManager" level="OFF" />
|
||||
|
||||
<!-- 使用kafka启用下面配置 -->
|
||||
<!-- <appender name="plumelog" class="com.plumelog.logback.appender.KafkaAppender">-->
|
||||
|
|
@ -108,4 +113,6 @@
|
|||
<!-- 输出plumelog -->
|
||||
<!-- <appender-ref ref="redisPlumelog"/>-->
|
||||
</root>
|
||||
|
||||
|
||||
</configuration>
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ public class PollingTask extends BaseEntity {
|
|||
private LocalDateTime endTime;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
* 任务状态 false 未使用, 1 已启用
|
||||
*/
|
||||
@TableField(value = "enabled")
|
||||
private Boolean enabled;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,101 @@
|
|||
package com.chushang.inspection.project.vo;
|
||||
|
||||
import com.chushang.common.dict.annotation.DictFormat;
|
||||
import com.chushang.inspection.terminal.vo.StoreVO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TerminalApp implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long terminalId;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long storeId;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long lowerTaskId;
|
||||
|
||||
/**
|
||||
* 终端sn号
|
||||
*/
|
||||
private String terminalSn;
|
||||
|
||||
/**
|
||||
* 终端编号
|
||||
*/
|
||||
private String terminalNo;
|
||||
|
||||
/**
|
||||
* 终端类型
|
||||
*/
|
||||
@DictFormat(dictType = "terminal_type")
|
||||
private Integer terminalType;
|
||||
|
||||
/**
|
||||
* 终端型号
|
||||
*/
|
||||
private String terminalModel;
|
||||
|
||||
/**
|
||||
* 终端版本号
|
||||
*/
|
||||
private String terminalVersion;
|
||||
|
||||
/**
|
||||
* 终端地址
|
||||
*/
|
||||
private String terminalAddress;
|
||||
|
||||
/**
|
||||
* 终端来源
|
||||
*/
|
||||
@DictFormat(dictType = "terminal_source")
|
||||
private Integer terminalSource;
|
||||
|
||||
/**
|
||||
* 机构名称
|
||||
* taskId
|
||||
*/
|
||||
private String taskName;
|
||||
|
||||
/**
|
||||
* 商户信息
|
||||
* storeId
|
||||
*/
|
||||
private StoreVO store;
|
||||
/**
|
||||
* 上次工单处理时间
|
||||
* wrk_info_ id
|
||||
* (state = :state) order by dispose_time desc limit 1
|
||||
*/
|
||||
private LocalDateTime processingTime;
|
||||
|
||||
/**
|
||||
* 上次服务结果
|
||||
* wrk_info id
|
||||
* (state = :state) order by dispose_time desc limit 1
|
||||
*/
|
||||
@DictFormat(dictType = "service_results")
|
||||
private Integer serviceResults;
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
package com.chushang.inspection.project.vo;
|
||||
|
||||
import com.chushang.common.dict.annotation.DictFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TerminalAppVO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long terminalId;
|
||||
|
||||
/**
|
||||
* 商户名称
|
||||
*/
|
||||
private String storeName;
|
||||
|
||||
/**
|
||||
* 商户联系人
|
||||
*/
|
||||
private String storeContact;
|
||||
|
||||
/**
|
||||
* 商户地址
|
||||
*/
|
||||
private String storeAddress;
|
||||
|
||||
/**
|
||||
* 终端地址
|
||||
*/
|
||||
private String terminalAddress;
|
||||
|
||||
/**
|
||||
* 巡检频次
|
||||
*/
|
||||
@DictFormat(dictType = "ins_fre")
|
||||
private Integer insFre;
|
||||
|
||||
/**
|
||||
* 上次工单处理时间
|
||||
*/
|
||||
private LocalDateTime inspectionTime;
|
||||
|
||||
/**
|
||||
* 上次服务结果
|
||||
*/
|
||||
@DictFormat(dictType = "service_results")
|
||||
private Integer serviceResults;
|
||||
|
||||
/**
|
||||
* 审核通过次数
|
||||
*/
|
||||
private Integer timesPass;
|
||||
|
||||
/**
|
||||
* 机构名称
|
||||
*/
|
||||
private String taskName;
|
||||
|
||||
/**
|
||||
* 终端编号
|
||||
*/
|
||||
private String terminalNo;
|
||||
}
|
||||
|
|
@ -128,99 +128,5 @@ public class Terminal extends BaseEntity {
|
|||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 银行资产管理码
|
||||
*/
|
||||
@TableField(value = "management_code")
|
||||
private String managementCode;
|
||||
|
||||
/**
|
||||
* 地理位置信息
|
||||
*/
|
||||
@TableField(value = "geographic_location")
|
||||
private String geographicLocation;
|
||||
|
||||
/**
|
||||
* 地理位置信息地址
|
||||
*/
|
||||
@TableField(value = "geographic_address")
|
||||
private String geographicAddress;
|
||||
|
||||
/**
|
||||
* 巡检位置信息
|
||||
*/
|
||||
@TableField(value = "work_location")
|
||||
private String workLocation;
|
||||
|
||||
/**
|
||||
* 巡检位置信息
|
||||
*/
|
||||
@TableField(value = "work_address")
|
||||
private String workAddress;
|
||||
|
||||
/**
|
||||
* 偏差(直线距离 米)
|
||||
*/
|
||||
@TableField(value = "deviation")
|
||||
private Long deviation;
|
||||
|
||||
/**
|
||||
* 入库时间
|
||||
*/
|
||||
@TableField(value = "storage_time")
|
||||
private LocalDateTime storageTime;
|
||||
|
||||
/**
|
||||
* 出库时间
|
||||
*/
|
||||
@TableField(value = "delivery_time")
|
||||
private LocalDateTime deliveryTime;
|
||||
|
||||
/**
|
||||
* 出库原因
|
||||
*/
|
||||
@TableField(value = "reason_for_shipment")
|
||||
private Integer reasonForShipment;
|
||||
|
||||
/**
|
||||
* 操作员编号
|
||||
*/
|
||||
@TableField(value = "operator_id")
|
||||
private String operatorId;
|
||||
|
||||
/**
|
||||
* 预制码编码
|
||||
*/
|
||||
@TableField(value = "pre_code_encoding")
|
||||
private String preCodeEncoding;
|
||||
|
||||
/**
|
||||
* 是否为业务员录入(1是 2否)
|
||||
*/
|
||||
@TableField(value = "is_enter")
|
||||
private Integer isEnter;
|
||||
|
||||
/**
|
||||
* 上次服务结果
|
||||
*/
|
||||
@TableField(value = "service_result")
|
||||
private Integer serviceResult;
|
||||
|
||||
/**
|
||||
* 审核通过次数
|
||||
*/
|
||||
@TableField(value = "times_pass")
|
||||
private Integer timesPass;
|
||||
|
||||
/**
|
||||
* 巡检状态 1 已巡检 2 未巡检
|
||||
*/
|
||||
@TableField(value = "inspection_status")
|
||||
private Integer inspectionStatus;
|
||||
|
||||
/**
|
||||
* 巡检时间(上次业务员处理时间)
|
||||
*/
|
||||
@TableField(value = "inspection_time")
|
||||
private LocalDateTime inspectionTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,152 @@
|
|||
package com.chushang.inspection.terminal.po;
|
||||
|
||||
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.chushang.common.mybatis.base.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @auther: zhao
|
||||
* @date: 2024/6/26 15:25
|
||||
* 终端 工单表
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper=true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "st_terminal_ins")
|
||||
public class TerminalIns extends BaseEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "terminal_id", type = IdType.ASSIGN_ID)
|
||||
private Long terminalId;
|
||||
|
||||
/**
|
||||
* 租户id
|
||||
*/
|
||||
@TableField(value = "dept_id")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
@TableField(value = "task_id")
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 下级任务id
|
||||
*/
|
||||
@TableField(value = "lower_task_id")
|
||||
private Long lowerTaskId;
|
||||
|
||||
/**
|
||||
* 所属商户id
|
||||
*/
|
||||
@TableField(value = "store_id")
|
||||
private Long storeId;
|
||||
|
||||
/**
|
||||
* 银行资产管理码
|
||||
*/
|
||||
@TableField(value = "management_code")
|
||||
private String managementCode;
|
||||
|
||||
/**
|
||||
* 地理位置信息
|
||||
*/
|
||||
@TableField(value = "geographic_location")
|
||||
private String geographicLocation;
|
||||
|
||||
/**
|
||||
* 地理位置信息地址
|
||||
*/
|
||||
@TableField(value = "geographic_address")
|
||||
private String geographicAddress;
|
||||
|
||||
/**
|
||||
* 巡检位置信息
|
||||
*/
|
||||
@TableField(value = "work_location")
|
||||
private String workLocation;
|
||||
|
||||
/**
|
||||
* 巡检位置信息
|
||||
*/
|
||||
@TableField(value = "work_address")
|
||||
private String workAddress;
|
||||
|
||||
/**
|
||||
* 偏差(直线距离 米)
|
||||
*/
|
||||
@TableField(value = "deviation")
|
||||
private Long deviation;
|
||||
|
||||
/**
|
||||
* 入库时间
|
||||
*/
|
||||
@TableField(value = "storage_time")
|
||||
private LocalDateTime storageTime;
|
||||
|
||||
/**
|
||||
* 出库时间
|
||||
*/
|
||||
@TableField(value = "delivery_time")
|
||||
private LocalDateTime deliveryTime;
|
||||
|
||||
/**
|
||||
* 出库原因
|
||||
*/
|
||||
@TableField(value = "reason_for_shipment")
|
||||
private Integer reasonForShipment;
|
||||
|
||||
/**
|
||||
* 操作员编号
|
||||
*/
|
||||
@TableField(value = "operator_id")
|
||||
private String operatorId;
|
||||
|
||||
/**
|
||||
* 预制码编码
|
||||
*/
|
||||
@TableField(value = "pre_code_encoding")
|
||||
private String preCodeEncoding;
|
||||
|
||||
/**
|
||||
* 是否为业务员录入(1是 2否)
|
||||
*/
|
||||
@TableField(value = "is_enter")
|
||||
private Integer isEnter;
|
||||
|
||||
/**
|
||||
* 上次服务结果
|
||||
*/
|
||||
@TableField(value = "service_result")
|
||||
private Integer serviceResult;
|
||||
|
||||
/**
|
||||
* 审核通过次数
|
||||
*/
|
||||
@TableField(value = "times_pass")
|
||||
private Integer timesPass;
|
||||
|
||||
/**
|
||||
* 巡检状态 1 已巡检 2 未巡检
|
||||
*/
|
||||
@TableField(value = "inspection_status")
|
||||
private Integer inspectionStatus;
|
||||
|
||||
/**
|
||||
* 巡检时间(上次业务员处理时间)
|
||||
*/
|
||||
@TableField(value = "inspection_time")
|
||||
private LocalDateTime inspectionTime;
|
||||
|
||||
}
|
||||
|
|
@ -24,7 +24,7 @@ public class TerminalAppQuery extends CommonParam {
|
|||
/**
|
||||
* 商户编号
|
||||
*/
|
||||
@Condition(name = "no")
|
||||
@Condition(name = "store_no")
|
||||
@Size(max = 64, message = "商户编号不能超过64个字符")
|
||||
private String storeNo;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.chushang.inspection.project.service;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.chushang.common.mybatis.page.CommonParam;
|
||||
import com.chushang.inspection.project.dto.TaskDTO;
|
||||
|
|
@ -8,6 +9,7 @@ import com.chushang.inspection.project.dto.TaskQuery;
|
|||
import com.chushang.inspection.project.po.PollingTask;
|
||||
import com.chushang.inspection.project.vo.ConfigVO;
|
||||
import com.chushang.inspection.project.vo.TaskVO;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -35,4 +37,6 @@ public interface PollingTaskService extends IService<PollingTask>{
|
|||
|
||||
void importSave(List<TaskExcelDTO> taskExcel, Long parentId);
|
||||
|
||||
PollingTask getTopTask(Long taskId);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ import com.chushang.task.enums.TaskTypeEnum;
|
|||
import com.chushang.task.feign.RemoteTaskService;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.cache.annotation.CacheConfig;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.chushang.inspection.project.mapper.PollingTaskMapper;
|
||||
|
|
@ -51,6 +53,7 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@CacheConfig(cacheNames = "task")
|
||||
public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, PollingTask> implements PollingTaskService {
|
||||
/**
|
||||
* 通过远程调用的方式进行入库
|
||||
|
|
@ -220,6 +223,21 @@ public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, Polli
|
|||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Cacheable(key = "'top-one:' + #taskId")
|
||||
public PollingTask getTopTask(Long taskId) {
|
||||
PollingTask task = baseMapper.selectById(taskId);
|
||||
Assert.notNull(task, "此任务不存在");
|
||||
if (task.getParentId() == 0) {
|
||||
return task;
|
||||
}
|
||||
String searchNum = task.getSearchNum().split("-")[0] + "-";
|
||||
LambdaQueryWrapper<PollingTask> taskSql = WrapperUtils.builder();
|
||||
taskSql.eq(PollingTask::getSearchNum, searchNum)
|
||||
.last(Operator.LIMIT_ONE.getCharacter());
|
||||
return baseMapper.selectOne(taskSql);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Result<Boolean> importTask(String params)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import org.springframework.validation.annotation.Validated;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 终端信息表(st_terminal)表控制层
|
||||
|
|
@ -49,5 +50,27 @@ public class TerminalController {
|
|||
return AjaxResult.success(terminalService.queryPageApp(query));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询终端
|
||||
*/
|
||||
@SysLog(value = "终端详情", businessType = BusinessType.QUERY)
|
||||
@PostMapping("/info/{terminalId}")
|
||||
@RequiresPermissions("terminal:info")
|
||||
public AjaxResult info(@PathVariable Long terminalId) {
|
||||
return AjaxResult.success(terminalService.getById(terminalId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询终端app
|
||||
*/
|
||||
@SysLog(value = "终端详情app", businessType = BusinessType.QUERY)
|
||||
@PostMapping("/info/app/{terminalId}")
|
||||
@RequiresPermissions("terminal:info:app")
|
||||
public AjaxResult infoApp(@PathVariable Long terminalId,
|
||||
@RequestParam("taskId") Long taskId) {
|
||||
|
||||
return AjaxResult.success(terminalService.getAppById(terminalId, taskId));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ package com.chushang.inspection.terminal.mapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.chushang.datascope.annotation.DataScope;
|
||||
import com.chushang.inspection.project.vo.TerminalAppVO;
|
||||
import com.chushang.inspection.terminal.po.Store;
|
||||
import com.chushang.inspection.terminal.po.Terminal;
|
||||
import com.chushang.inspection.terminal.query.TerminalAppQuery;
|
||||
import com.chushang.inspection.terminal.query.TerminalQuery;
|
||||
import com.chushang.inspection.terminal.vo.TerminalVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
|
@ -16,7 +18,9 @@ import java.util.List;
|
|||
* @date: 2024/6/21 16:39
|
||||
*/
|
||||
public interface TerminalMapper extends BaseMapper<Terminal> {
|
||||
|
||||
@DataScope(deptAlias = "t")
|
||||
List<TerminalVO> pageList(@Param("query") TerminalQuery query,
|
||||
Page<Store> page);
|
||||
Page<TerminalVO> page);
|
||||
@DataScope(deptAlias = "t")
|
||||
List<TerminalAppVO> selectPageApp(@Param("query") TerminalAppQuery query, Page<TerminalAppVO> page);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.chushang.inspection.terminal.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.chushang.common.mybatis.utils.PageResult;
|
||||
import com.chushang.inspection.project.vo.TerminalApp;
|
||||
import com.chushang.inspection.terminal.po.Terminal;
|
||||
import com.chushang.inspection.terminal.query.TerminalAppQuery;
|
||||
import com.chushang.inspection.terminal.query.TerminalQuery;
|
||||
|
|
@ -24,4 +25,12 @@ public interface TerminalService extends IService<Terminal>{
|
|||
* 查询终端app
|
||||
*/
|
||||
PageResult queryPageApp(TerminalAppQuery query);
|
||||
|
||||
/**
|
||||
* 终端详情app id
|
||||
* @param terminalId
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
TerminalApp getAppById(Long terminalId, Long taskId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +1,30 @@
|
|||
package com.chushang.inspection.terminal.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.chushang.common.dict.utils.DictUtils;
|
||||
import com.chushang.common.mybatis.enums.Operator;
|
||||
import com.chushang.common.mybatis.page.CommonParam;
|
||||
import com.chushang.common.mybatis.utils.PageResult;
|
||||
import com.chushang.common.mybatis.utils.WrapperUtils;
|
||||
import com.chushang.datascope.annotation.DataScope;
|
||||
import com.chushang.inspection.project.vo.TerminalApp;
|
||||
import com.chushang.inspection.project.vo.TerminalAppVO;
|
||||
import com.chushang.inspection.terminal.po.Store;
|
||||
import com.chushang.inspection.terminal.po.Terminal;
|
||||
import com.chushang.inspection.terminal.query.TerminalAppQuery;
|
||||
import com.chushang.inspection.terminal.query.TerminalQuery;
|
||||
import com.chushang.inspection.terminal.service.StoreService;
|
||||
import com.chushang.inspection.terminal.service.TerminalService;
|
||||
import com.chushang.inspection.terminal.vo.TerminalVO;
|
||||
import com.chushang.inspection.utils.TaskConfigUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.chushang.inspection.terminal.mapper.TerminalMapper;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -24,18 +33,44 @@ import java.util.List;
|
|||
*/
|
||||
@Service
|
||||
public class TerminalServiceImpl extends ServiceImpl<TerminalMapper, Terminal> implements TerminalService {
|
||||
@Resource
|
||||
private StoreService storeService;
|
||||
|
||||
@Override
|
||||
@DataScope(deptAlias = "t")
|
||||
public PageResult pageList(TerminalQuery query) {
|
||||
CommonParam commonParam = CommonParam.buildPageRequest();
|
||||
Page<Store> page = new Page<>(commonParam.getPage(), commonParam.getLimit());
|
||||
Page<TerminalVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit());
|
||||
List<TerminalVO> terminalVOS = baseMapper.pageList(query, page);
|
||||
return new PageResult(terminalVOS, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult queryPageApp(TerminalAppQuery query) {
|
||||
CommonParam commonParam = CommonParam.buildPageRequest();
|
||||
Page<TerminalAppVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit());
|
||||
List<TerminalAppVO> terminalVOS = baseMapper.selectPageApp(query, page);
|
||||
return new PageResult(terminalVOS, page);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 终端app
|
||||
* @param terminalId
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public TerminalApp getAppById(Long terminalId, Long taskId) {
|
||||
String label = TaskConfigUtils.reviewMethod(taskId) == 3 ? "复审通过" : "初审通过";
|
||||
String wrkStatus = DictUtils.getDictValue("wrk_status", label);
|
||||
Integer state = Convert.toInt(wrkStatus);
|
||||
LambdaQueryWrapper<Terminal> terminalSql = new LambdaQueryWrapper<Terminal>()
|
||||
.eq(Terminal::getTerminalId, terminalId)
|
||||
.eq(Terminal::getTaskId, taskId).last(Operator.LIMIT_ONE.getCharacter());
|
||||
Terminal terminal = getOne(terminalSql);
|
||||
if (ObjectUtil.isNotEmpty(terminal)){
|
||||
Store store = storeService.getById(terminal.getStoreId());
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
package com.chushang.inspection.utils;
|
||||
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.chushang.inspection.project.po.PollingTask;
|
||||
import com.chushang.inspection.project.service.PollingTaskService;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class TaskConfigUtils {
|
||||
|
||||
private static final PollingTaskService TASK_SERVICE = SpringUtil.getBean(PollingTaskService.class);
|
||||
|
||||
|
||||
/**
|
||||
* 获取巡检任务
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @return 任务信息
|
||||
*/
|
||||
public static PollingTask getConfig(Long taskId) {
|
||||
PollingTask config = TASK_SERVICE.getTopTask(taskId);
|
||||
Assert.isTrue(config.getEnabled(), "此任务未开通");
|
||||
if (config.getEndTime() != null && config.getStartTime() != null) {
|
||||
Assert.isTrue(LocalDateTimeUtil.isIn(LocalDateTime.now(), config.getStartTime(), config.getEndTime()),
|
||||
"此任务不在执行日期内");
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否复审
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
public static Integer reviewMethod(Long taskId) {
|
||||
Integer isRecheck = getConfig(taskId).getReviewMethod();
|
||||
Assert.notNull(isRecheck, "未指定审核方式");
|
||||
return isRecheck;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否重复派单
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
public static boolean isRepeat(Long taskId) {
|
||||
Integer isRepeat = getConfig(taskId).getIsRepeat();
|
||||
return isRepeat != null && isRepeat == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否有巡检单
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
public static boolean isisInspection(Long taskId) {
|
||||
Integer isRepeat = getConfig(taskId).getIsInspection();
|
||||
return isRepeat != null && isRepeat == 1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
public static Integer dispatchMethod(Long taskId) {
|
||||
Integer method = getConfig(taskId).getDispatchMethod();
|
||||
return method == null ? 0 : method;
|
||||
}
|
||||
}
|
||||
|
|
@ -100,12 +100,48 @@
|
|||
<!-- </appender>-->
|
||||
|
||||
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
|
||||
<root level="info">
|
||||
<appender-ref ref="console"/>
|
||||
<appender-ref ref="info"/>
|
||||
<appender-ref ref="debug"/>
|
||||
<appender-ref ref="error"/>
|
||||
<!-- 输出plumelog -->
|
||||
<!-- <appender-ref ref="redisPlumelog"/>-->
|
||||
<!-- <root level="info">-->
|
||||
<!-- <appender-ref ref="console"/>-->
|
||||
<!-- <appender-ref ref="info"/>-->
|
||||
<!-- <appender-ref ref="debug"/>-->
|
||||
<!-- <appender-ref ref="error"/>-->
|
||||
<!-- <!– 输出plumelog –>-->
|
||||
<!-- <!– <appender-ref ref="redisPlumelog"/>–>-->
|
||||
<!-- </root>-->
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
<springProfile name="dev">
|
||||
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
|
||||
<logger name="com.chushang" level="DEBUG"/>
|
||||
<logger name="org.redisson.connection.SentinelConnectionManager" level="OFF" />
|
||||
<logger name="org.redisson.connection.MasterSlaveEntry" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.PubSubConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.SlaveConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.balancer.LoadBalancerManager" level="OFF" />
|
||||
<root level="DEBUG">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
|
||||
<!--测试环境:打印控制台-->
|
||||
<springProfile name="test">
|
||||
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
|
||||
<logger name="com.chushang" level="INFO"/>
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
<!--测试环境:打印控制台-->
|
||||
<springProfile name="prod">
|
||||
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
|
||||
<logger name="com.chushang" level="INFO"/>
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="plumelog"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
|
|
|
|||
|
|
@ -166,4 +166,66 @@
|
|||
</where>
|
||||
ORDER BY #{query.orderBy} #{query.isAsc}
|
||||
</select>
|
||||
|
||||
<select id="selectPageApp" resultType="com.chushang.inspection.project.vo.TerminalAppVO">
|
||||
SELECT
|
||||
t.terminal_id,
|
||||
t.terminal_no,
|
||||
t.terminal_address,
|
||||
t.inspection_status,
|
||||
t.inspection_time,
|
||||
t.times_pass,
|
||||
t.service_result,
|
||||
s.store_contact,
|
||||
s.store_address,
|
||||
s.ins_fre,
|
||||
s.store_name,
|
||||
pt.`name` AS taskName
|
||||
FROM
|
||||
st_terminal t
|
||||
LEFT JOIN ta_polling_task pt on pt.id = t.lower_task_id
|
||||
INNER JOIN st_store s ON s.store_id = t.store_id
|
||||
<where>
|
||||
<if test="query.taskId != null">
|
||||
AND t.task_id = #{query.taskId}
|
||||
</if>
|
||||
<if test="query.storeNo != null">
|
||||
AND t.store_no = #{query.storeNo}
|
||||
</if>
|
||||
<if test="query.terminalNo != null">
|
||||
AND t.terminal_no = #{query.terminalNo}
|
||||
</if>
|
||||
<if test="query.terminalSn != null">
|
||||
AND t.terminal_no = #{query.terminalSn}
|
||||
</if>
|
||||
<if test="query.terminalAddress != null and query.terminalAddress != ''">
|
||||
AND t.terminal_address like concat('%',#{query.terminalAddress},'%')
|
||||
</if>
|
||||
<if test="query.occupy != null ">
|
||||
AND t.occupy = #{query.occupy}
|
||||
</if>
|
||||
<if test="query.storeState != null">
|
||||
AND t.state = #{query.storeState}
|
||||
</if>
|
||||
<if test="query.shopName != null and query.shopName != ''">
|
||||
AND s.shop_name like concat('%',#{query.shopName},'%')
|
||||
</if>
|
||||
<if test="query.lowerTaskName != null and query.lowerTaskName != ''">
|
||||
AND pt.name like concat('%',#{query.lowerTaskName},'%')
|
||||
</if>
|
||||
<if test="query.storeName != null and query.storeName != ''">
|
||||
AND s.store_name like concat('%',#{query.storeName},'%')
|
||||
</if>
|
||||
<if test="query.storeContact != null and query.storeContact != ''">
|
||||
AND s.store_contact like concat('%',#{query.storeContact},'%')
|
||||
</if>
|
||||
<if test="query.storeAddress != null and query.storeAddress != ''">
|
||||
AND s.store_address like concat('%',#{query.storeAddress},'%')
|
||||
</if>
|
||||
<if test="1 == 1">
|
||||
${query.sqlParam.get('dataScope')}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY t.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -81,9 +81,12 @@
|
|||
</appender>
|
||||
|
||||
<!--nacos 心跳 INFO 屏蔽-->
|
||||
<logger name="com.alibaba.cloud.nacos" level="info">
|
||||
</logger>
|
||||
|
||||
<logger name="com.alibaba.cloud.nacos" level="info" />
|
||||
<logger name="org.redisson.connection.SentinelConnectionManager" level="OFF" />
|
||||
<logger name="org.redisson.connection.MasterSlaveEntry" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.PubSubConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.pool.SlaveConnectionPool" level="OFF" />
|
||||
<logger name="org.redisson.connection.balancer.LoadBalancerManager" level="OFF" />
|
||||
<!-- 使用kafka启用下面配置 -->
|
||||
<!-- <appender name="plumelog" class="com.plumelog.logback.appender.KafkaAppender">-->
|
||||
<!-- <appName>${spring.application.name}</appName>-->
|
||||
|
|
@ -108,4 +111,14 @@
|
|||
<!-- 输出plumelog -->
|
||||
<!-- <appender-ref ref="redisPlumelog"/>-->
|
||||
</root>
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
<springProfile name="dev">
|
||||
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
|
||||
<logger name="com.chushang" level="DEBUG"/>
|
||||
<root level="DEBUG">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
|
|
|
|||
Loading…
Reference in New Issue