1. 工单数据相关

2. 江苏工行代码创建
This commit is contained in:
ant 2024-07-29 15:17:10 +08:00
parent 3110b37f5d
commit a8e997e260
24 changed files with 251 additions and 75 deletions

View File

@ -42,8 +42,8 @@ public class WrapperUtils {
if (ObjectUtil.isEmpty(value)) { if (ObjectUtil.isEmpty(value)) {
continue; continue;
} }
// 检查 值是否包含关键字 // 检查 值是否包含关键字 不做关键字检查
SqlUtil.filterKeyword(String.valueOf(value)); // SqlUtil.filterKeyword(String.valueOf(value));
String name = condition.name(); String name = condition.name();
String tableName = condition.tableName(); String tableName = condition.tableName();
String[] split = name.split(","); String[] split = name.split(",");

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import com.chushang.inspection.terminal.enums.MerTypeOperation; import com.chushang.inspection.terminal.enums.MerTypeOperation;
import com.chushang.inspection.work.dto.WrkIcbcJsReceive; import com.chushang.inspection.work.dto.WrkIcbcJsReceive;
@ -170,7 +169,7 @@ public class Store extends BaseEntity {
@TableField(value = "project_id") @TableField(value = "project_id")
private Long projectId; private Long projectId;
public Store save(WrkIcbcJsReceive dto) { public Store saveJcIcbc(WrkIcbcJsReceive dto) {
this.storeNo = dto.getMerId(); this.storeNo = dto.getMerId();
this.storeName = dto.getMerName(); this.storeName = dto.getMerName();
this.storeContact = dto.getLinkName(); this.storeContact = dto.getLinkName();

View File

@ -185,7 +185,7 @@ public class DispatchDTO implements Serializable {
*/ */
protected LocalDateTime createTime; protected LocalDateTime createTime;
public DispatchDTO dispatch(WrkIcbcJs entity) { public DispatchDTO dispatchJcIcbc(WrkIcbcJs entity) {
this.terminalId = entity.getTerminalId(); this.terminalId = entity.getTerminalId();
// todo 此处应当为 江苏工行的部门id // todo 此处应当为 江苏工行的部门id
this.deptId = 200L; this.deptId = 200L;

View File

@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/** /**
* TODO 此处需要改下 对应的本级任务id * TODO 此处需要改下 对应的本级任务id 江苏工行
*/ */
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor

View File

@ -151,4 +151,7 @@ public class WrkInfoStoreRecord extends BaseEntity {
*/ */
@TableField(value = "state") @TableField(value = "state")
private Integer state; private Integer state;
@TableField(value = "project_id")
private Long projectId;
} }

View File

@ -106,4 +106,8 @@ public class WrkInfoTerminalRecord extends BaseEntity {
*/ */
@TableField(value = "remark") @TableField(value = "remark")
private String remark; private String remark;
@TableField(value = "project_id")
private Long projectId;
} }

View File

@ -0,0 +1,23 @@
package com.chushang.inspection.work.query;
import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.page.CommonParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
public class WrkDataQuery extends CommonParam {
@Condition(name = "project_name", tableName = "p", type = Condition.ConditionType.like)
private String projectName;
@Condition(name = "name", tableName = "pt", type = Condition.ConditionType.like)
private String taskName;
@Condition(name = "dept_id", tableName = "wi")
private Long deptId;
@Condition(name = "dispose_time", tableName = "wi", type = Condition.ConditionType.in)
private List<LocalDateTime> disposeTimes;
}

View File

@ -0,0 +1,48 @@
package com.chushang.inspection.work.vo;
import lombok.Data;
@Data
public class WrkDataVO {
/**
* 项目id
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 部门id
*/
private Long deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 任务id
*/
private Long taskId;
/**
* 任务名称
*/
private String taskName;
/**
* 终端数
*/
private Integer totalTer;
/**
* 工单数
*/
private Integer totalWrk;
/**
* 完成数
*/
private Integer totalSuc;
/**
* 超时
*/
private Integer totalTimeOut;
}

View File

@ -185,7 +185,7 @@ public class WrkProjectController {
*/ */
@SysLog(value = "项目数据", businessType = BusinessType.EXPORT) @SysLog(value = "项目数据", businessType = BusinessType.EXPORT)
@GetMapping(value = "/project/data/export") @GetMapping(value = "/project/data/export")
// @RequiresPermissions("inspection:project:export") @RequiresPermissions("inspection:project:export")
public AjaxResult projectDataExport(ProjectQuery projectQuery) public AjaxResult projectDataExport(ProjectQuery projectQuery)
{ {
return AjaxResult.success("项目数据导出成功, 请在后台任务中查看, 任务id: ["+ projectService.projectDataExport(projectQuery) +"]"); return AjaxResult.success("项目数据导出成功, 请在后台任务中查看, 任务id: ["+ projectService.projectDataExport(projectQuery) +"]");

View File

@ -45,7 +45,6 @@ public class StoreImportController {
StoreImportService storeImportService; StoreImportService storeImportService;
/** /**
* todo
* 需要 以下接口 * 需要 以下接口
* 1. 导入列表页查询 * 1. 导入列表页查询
* 2. 导出修改 * 2. 导出修改

View File

@ -3,7 +3,6 @@ package com.chushang.inspection.terminal.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.inspection.project.po.Template;
import com.chushang.inspection.project.vo.CountVO; import com.chushang.inspection.project.vo.CountVO;
import com.chushang.inspection.terminal.po.Store; import com.chushang.inspection.terminal.po.Store;
import com.chushang.inspection.terminal.query.StoreQuery; import com.chushang.inspection.terminal.query.StoreQuery;
@ -26,7 +25,7 @@ public interface StoreService extends IService<Store>{
void upload(MultipartFile file, Long taskId); void upload(MultipartFile file, Long taskId);
Store save(WrkIcbcJsReceive dto); Store saveJcIcbc(WrkIcbcJsReceive dto);
List<CountVO> countByProjectIds(Set<Long> projectIds); List<CountVO> countByProjectIds(Set<Long> projectIds);
default Map<Long, Integer> countByProjectIdsMap(Set<Long> projectIds){ default Map<Long, Integer> countByProjectIdsMap(Set<Long> projectIds){

View File

@ -14,6 +14,7 @@ import com.chushang.inspection.work.dto.DispatchDTO;
import com.chushang.inspection.work.dto.WrkIcbcJsReceive; import com.chushang.inspection.work.dto.WrkIcbcJsReceive;
import com.chushang.inspection.work.query.DispatchQuery; import com.chushang.inspection.work.query.DispatchQuery;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -56,7 +57,7 @@ public interface TerminalService extends IService<Terminal>{
* @param i * @param i
* @return * @return
*/ */
void updateOccupy(List<Long> terminalIds, int i); void updateOccupy(Collection<Long> terminalIds, int i);
/** /**
* 查询终端商户巡检信息 * 查询终端商户巡检信息

View File

@ -97,7 +97,6 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
} }
/** /**
* todo 使用后台任务时, 可能导致无法获取对应dataScope数据
* 参考 com.chushang.inspection.project.service.WrkProjectService#projectDataExport * 参考 com.chushang.inspection.project.service.WrkProjectService#projectDataExport
* @param params * @param params
* @return * @return

View File

@ -1,26 +1,16 @@
package com.chushang.inspection.terminal.service.impl; package com.chushang.inspection.terminal.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.util.StringUtils;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.po.PollingTask;
import com.chushang.inspection.project.po.Template;
import com.chushang.inspection.project.service.PollingTaskService;
import com.chushang.inspection.project.service.TbTemplateService;
import com.chushang.inspection.project.vo.CountVO; import com.chushang.inspection.project.vo.CountVO;
import com.chushang.inspection.terminal.po.Store; import com.chushang.inspection.terminal.po.Store;
import com.chushang.inspection.terminal.query.StoreQuery; import com.chushang.inspection.terminal.query.StoreQuery;
import com.chushang.inspection.terminal.service.StoreService; import com.chushang.inspection.terminal.service.StoreService;
import com.chushang.inspection.terminal.vo.StoreTerminalVO;
import com.chushang.inspection.terminal.vo.StoreVO; import com.chushang.inspection.terminal.vo.StoreVO;
import com.chushang.inspection.work.dto.WrkIcbcJsReceive; import com.chushang.inspection.work.dto.WrkIcbcJsReceive;
import com.chushang.system.feign.RemoteDeptService; import com.chushang.system.feign.RemoteDeptService;
@ -72,13 +62,13 @@ public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements
* @return * @return
*/ */
@Override @Override
public Store save(WrkIcbcJsReceive dto) { public Store saveJcIcbc(WrkIcbcJsReceive dto) {
Store store = getOne(new LambdaQueryWrapper<Store>() Store store = getOne(new LambdaQueryWrapper<Store>()
.eq(Store::getTaskId, "") .eq(Store::getTaskId, "")
.eq(Store::getStoreNo, dto.getMerId()) .eq(Store::getStoreNo, dto.getMerId())
); );
if (store == null) { if (store == null) {
store = new Store().save(dto); store = new Store().saveJcIcbc(dto);
save(store); save(store);
} }
return store; return store;

View File

@ -46,6 +46,7 @@ import com.chushang.inspection.terminal.mapper.TerminalMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -122,7 +123,7 @@ public class TerminalServiceImpl extends ServiceImpl<TerminalMapper, Terminal> i
} }
@Override @Override
public void updateOccupy(List<Long> terminalIds, int i) { public void updateOccupy(Collection<Long> terminalIds, int i) {
for (Long terminalId : terminalIds) { for (Long terminalId : terminalIds) {
Terminal terminal = getById(terminalId); Terminal terminal = getById(terminalId);
terminal.setOccupy(i); terminal.setOccupy(i);

View File

@ -8,10 +8,7 @@ import com.chushang.common.log.enums.BusinessType;
import com.chushang.inspection.project.dto.Delete; import com.chushang.inspection.project.dto.Delete;
import com.chushang.inspection.utils.TaskConfigUtils; import com.chushang.inspection.utils.TaskConfigUtils;
import com.chushang.inspection.work.dto.WrkInfoDTO; import com.chushang.inspection.work.dto.WrkInfoDTO;
import com.chushang.inspection.work.query.DispatchQuery; import com.chushang.inspection.work.query.*;
import com.chushang.inspection.work.query.ReviewedQuery;
import com.chushang.inspection.work.query.WrkAppQuery;
import com.chushang.inspection.work.query.WrkInfoQuery;
import com.chushang.inspection.work.service.WrkInfoService; import com.chushang.inspection.work.service.WrkInfoService;
import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.annotation.RequiresPermissions;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -42,7 +39,6 @@ public class WrkInfoController {
/** /**
* 导出 * 导出
* todo
*/ */
@SysLog(value = "导出列表", businessType = BusinessType.EXPORT) @SysLog(value = "导出列表", businessType = BusinessType.EXPORT)
@GetMapping("/exportDispatchPage") @GetMapping("/exportDispatchPage")
@ -55,7 +51,6 @@ public class WrkInfoController {
/** /**
* 查询派单/领取列表 --> 查询派单领取 * 查询派单/领取列表 --> 查询派单领取
* todo
*/ */
@SysLog(value = "派单/领取列表", businessType = BusinessType.QUERY) @SysLog(value = "派单/领取列表", businessType = BusinessType.QUERY)
@GetMapping("/dispatch/page") @GetMapping("/dispatch/page")
@ -241,10 +236,25 @@ public class WrkInfoController {
return AjaxResult.success(); return AjaxResult.success();
} }
/**
* 工单数据
*/
@GetMapping(value = "/data") @GetMapping(value = "/data")
@RequiresPermissions("wrk:info:dispatch") // @RequiresPermissions("wrk:info:data")
public AjaxResult wrkData(){ public AjaxResult wrkData(WrkDataQuery wrkDataQuery)
return AjaxResult.success(); {
return AjaxResult.success(wrkInfoService.wrkData(wrkDataQuery));
}
/**
* 工单数据导出
* @param wrkDataQuery 查询条件
*/
@GetMapping(value = "/data/export")
@RequiresPermissions("wrk:data:export")
public AjaxResult wrkDataExport(WrkDataQuery wrkDataQuery)
{
return AjaxResult.success("工单数据导出成功, 请在后台任务中查看, 任务id: ["+ wrkInfoService.wrkDataExport(wrkDataQuery) +"]");
} }

View File

@ -73,12 +73,11 @@ public class WrkInfoPhoneController {
} }
/** /**
* todo
* 单条修改 * 单条修改
*/ */
@SysLog(value = "电话工单", businessType = BusinessType.UPDATE) @SysLog(value = "电话工单", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{wrkId}") @PostMapping(value = "/update/{wrkId}")
@RequiresPermissions("wrk:phone:save") @RequiresPermissions("wrk:phone:update")
public AjaxResult delInfo(@RequestBody WrkInfoPhoneImportDTO info, public AjaxResult delInfo(@RequestBody WrkInfoPhoneImportDTO info,
@PathVariable Long wrkId) @PathVariable Long wrkId)
{ {
@ -90,7 +89,7 @@ public class WrkInfoPhoneController {
*/ */
@SysLog(value = "电话工单", businessType = BusinessType.DELETE) @SysLog(value = "电话工单", businessType = BusinessType.DELETE)
@DeleteMapping(value = "/del/{wrkId}") @DeleteMapping(value = "/del/{wrkId}")
@RequiresPermissions("wrk:phone:save") @RequiresPermissions("wrk:phone:del")
public AjaxResult delInfo(@PathVariable Long wrkId) public AjaxResult delInfo(@PathVariable Long wrkId)
{ {
return AjaxResult.success(infoPhoneService.removeById(wrkId)); return AjaxResult.success(infoPhoneService.removeById(wrkId));

View File

@ -7,6 +7,7 @@ import com.chushang.inspection.project.vo.CountVO;
import com.chushang.inspection.work.po.WrkInfo; import com.chushang.inspection.work.po.WrkInfo;
import com.chushang.inspection.work.query.ReviewedQuery; import com.chushang.inspection.work.query.ReviewedQuery;
import com.chushang.inspection.work.query.WrkAppQuery; import com.chushang.inspection.work.query.WrkAppQuery;
import com.chushang.inspection.work.query.WrkDataQuery;
import com.chushang.inspection.work.query.WrkInfoQuery; import com.chushang.inspection.work.query.WrkInfoQuery;
import com.chushang.inspection.work.vo.*; import com.chushang.inspection.work.vo.*;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -37,4 +38,12 @@ public interface WrkInfoMapper extends BaseMapper<WrkInfo> {
List<CountVO> countByProjectIds(@Param("projectIds") Set<Long> projectIds, List<CountVO> countByProjectIds(@Param("projectIds") Set<Long> projectIds,
@Param("wrkTypes") Set<Integer> wrkTypes); @Param("wrkTypes") Set<Integer> wrkTypes);
/**
* 工单数据
* @param wrkDataQuery query
* @param page 分页
*/
List<WrkDataVO> wrkData(@Param("query") WrkDataQuery wrkDataQuery, Page<WrkDataVO> page);
} }

View File

@ -10,10 +10,7 @@ import com.chushang.inspection.terminal.po.TerminalIns;
import com.chushang.inspection.work.dto.WrkInfoDTO; import com.chushang.inspection.work.dto.WrkInfoDTO;
import com.chushang.inspection.work.po.WrkInfo; import com.chushang.inspection.work.po.WrkInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.inspection.work.query.DispatchQuery; import com.chushang.inspection.work.query.*;
import com.chushang.inspection.work.query.ReviewedQuery;
import com.chushang.inspection.work.query.WrkAppQuery;
import com.chushang.inspection.work.query.WrkInfoQuery;
import com.chushang.inspection.work.vo.WrkInfoDetailsVO; import com.chushang.inspection.work.vo.WrkInfoDetailsVO;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -64,4 +61,8 @@ public interface WrkInfoService extends IService<WrkInfo> {
} }
return Map.of(); return Map.of();
} }
PageResult wrkData(WrkDataQuery wrkDataQuery);
Long wrkDataExport(WrkDataQuery wrkDataQuery);
} }

View File

@ -9,11 +9,8 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.core.exception.utils.AssertUtil;
@ -23,7 +20,6 @@ import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope; import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.po.PollingTask; import com.chushang.inspection.project.po.PollingTask;
import com.chushang.inspection.project.po.WrkProjectPayment;
import com.chushang.inspection.project.service.PollingTaskService; import com.chushang.inspection.project.service.PollingTaskService;
import com.chushang.inspection.terminal.po.Store; import com.chushang.inspection.terminal.po.Store;
import com.chushang.inspection.terminal.po.Terminal; import com.chushang.inspection.terminal.po.Terminal;
@ -93,7 +89,7 @@ public class WrkIcbcJsServiceImpl extends ServiceImpl<WrkIcbcJsMapper, WrkIcbcJs
@Override @Override
@Transactional @Transactional
public void receive(WrkIcbcJsReceive dto) { public void receive(WrkIcbcJsReceive dto) {
Store store = storeService.save(dto); Store store = storeService.saveJcIcbc(dto);
JSONObject terJson = terminalService.save(store, dto); JSONObject terJson = terminalService.save(store, dto);
WrkIcbcJs wrkIcbcJs = save(dto, terJson, store); WrkIcbcJs wrkIcbcJs = save(dto, terJson, store);
// 派单 // 派单
@ -150,10 +146,6 @@ public class WrkIcbcJsServiceImpl extends ServiceImpl<WrkIcbcJsMapper, WrkIcbcJs
/** /**
* TODO 需要创建对应的任务以及 业务员信息 * TODO 需要创建对应的任务以及 业务员信息
* @param entity
* @param terJson
* @param store
* @param userId
*/ */
public void dispatchOrder(WrkIcbcJs entity, JSONObject terJson, Store store, Long userId) public void dispatchOrder(WrkIcbcJs entity, JSONObject terJson, Store store, Long userId)
{ {
@ -162,7 +154,7 @@ public class WrkIcbcJsServiceImpl extends ServiceImpl<WrkIcbcJsMapper, WrkIcbcJs
WrkIcbcJs icbcJs = entity.getArea() != null ? entity : getById(entity.getId()); WrkIcbcJs icbcJs = entity.getArea() != null ? entity : getById(entity.getId());
AssertUtil.invalidate(icbcJs.getStatus() != 1, "只有下发状态才能派单"); AssertUtil.invalidate(icbcJs.getStatus() != 1, "只有下发状态才能派单");
DispatchDTO dispatch = new DispatchDTO().dispatch(icbcJs); DispatchDTO dispatch = new DispatchDTO().dispatchJcIcbc(icbcJs);
WrkInfo wrkInfo; WrkInfo wrkInfo;
if (null == userId){ if (null == userId){
Long lowerTaskId = BankBranchesEnum.getByCode(icbcJs.getArea()); Long lowerTaskId = BankBranchesEnum.getByCode(icbcJs.getArea());

View File

@ -28,12 +28,16 @@ import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.ins.GeneratedInsFactory; import com.chushang.inspection.ins.GeneratedInsFactory;
import com.chushang.inspection.project.dto.AuditDTO; import com.chushang.inspection.project.dto.AuditDTO;
import com.chushang.inspection.project.po.InspectionData; import com.chushang.inspection.project.po.InspectionData;
import com.chushang.inspection.project.po.WrkProject;
import com.chushang.inspection.project.query.ProjectQuery;
import com.chushang.inspection.project.service.InspectionDataService; import com.chushang.inspection.project.service.InspectionDataService;
import com.chushang.inspection.project.service.PollingTaskService; import com.chushang.inspection.project.service.PollingTaskService;
import com.chushang.inspection.project.vo.CountVO; import com.chushang.inspection.project.vo.CountVO;
import com.chushang.inspection.project.vo.ProjectVO;
import com.chushang.inspection.terminal.po.FiveStore; import com.chushang.inspection.terminal.po.FiveStore;
import com.chushang.inspection.terminal.po.Store; import com.chushang.inspection.terminal.po.Store;
import com.chushang.inspection.terminal.po.Terminal; import com.chushang.inspection.terminal.po.Terminal;
@ -45,12 +49,12 @@ import com.chushang.inspection.utils.TaskConfigUtils;
import com.chushang.inspection.work.dto.WrkInfoDTO; import com.chushang.inspection.work.dto.WrkInfoDTO;
import com.chushang.inspection.work.enums.WorkTypeOperation; import com.chushang.inspection.work.enums.WorkTypeOperation;
import com.chushang.inspection.work.po.*; import com.chushang.inspection.work.po.*;
import com.chushang.inspection.work.query.DispatchQuery; import com.chushang.inspection.work.query.*;
import com.chushang.inspection.work.query.ReviewedQuery;
import com.chushang.inspection.work.query.WrkAppQuery;
import com.chushang.inspection.work.query.WrkInfoQuery;
import com.chushang.inspection.work.service.*; import com.chushang.inspection.work.service.*;
import com.chushang.inspection.work.vo.*; import com.chushang.inspection.work.vo.*;
import com.chushang.oss.entity.dto.UploadBytesDTO;
import com.chushang.oss.entity.vo.FileSourceVo;
import com.chushang.oss.feign.RemoteOssService;
import com.chushang.security.utils.SecurityUtils; import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.feign.RemoteDeptService; import com.chushang.system.feign.RemoteDeptService;
import com.chushang.task.entity.dto.CreateTaskDTO; import com.chushang.task.entity.dto.CreateTaskDTO;
@ -68,6 +72,8 @@ import com.chushang.inspection.work.mapper.WrkInfoMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
@ -104,6 +110,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
private final RemoteUserService userFeignService; private final RemoteUserService userFeignService;
private final RemoteDeptService remoteDeptService; private final RemoteDeptService remoteDeptService;
private final DispatchRecordService dispatchRecordService; private final DispatchRecordService dispatchRecordService;
private final RemoteOssService remoteOssService;
@Value("${push.icbc-js.enable:false}") @Value("${push.icbc-js.enable:false}")
private boolean enable; private boolean enable;
@ -360,10 +367,11 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
tempStorageTerminalRecord.setWrkId(wrkInfo.getWrkId()); tempStorageTerminalRecord.setWrkId(wrkInfo.getWrkId());
tempStorageTerminalInsRecord.setWrkId(wrkInfo.getWrkId()); tempStorageTerminalInsRecord.setWrkId(wrkInfo.getWrkId());
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 工单状态
tempStorageWrkInfo.setWrkStatus(info.getWrkStatus());
tempStorageWrkInfo.setDisposeTime(now);
// 工单状态比较 -- 7应该是暂存 // 工单状态比较 -- 7应该是暂存
if (info.getWrkStatus() != 9) { if (info.getWrkStatus() != 9) {
tempStorageWrkInfo.setWrkStatus(info.getWrkStatus());
tempStorageWrkInfo.setDisposeTime(now);
// // 修改 工单信息 // // 修改 工单信息
// updateById(tempStorageWrkInfo); // updateById(tempStorageWrkInfo);
// // 修改 商户信息 // // 修改 商户信息
@ -457,18 +465,22 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
List<WrkInfo> list = list(queryWrapper); List<WrkInfo> list = list(queryWrapper);
Assert.notEmpty(list, "请确认此工单是否存在或已经审核成功了"); Assert.notEmpty(list, "请确认此工单是否存在或已经审核成功了");
List<Long> wrkIds = list.stream().map(WrkInfo::getWrkId).collect(Collectors.toList()); List<Long> wrkIds = list.stream().map(WrkInfo::getWrkId).collect(Collectors.toList());
removeBatchByIds(wrkIds); removeBatchByIds(wrkIds);
wrkImgService.remove(new LambdaQueryWrapper<WrkImg>().in(WrkImg::getWrkId, wrkIds)); wrkImgService.remove(new LambdaQueryWrapper<WrkImg>().in(WrkImg::getWrkId, wrkIds));
inspectionDataService.remove(new LambdaQueryWrapper<InspectionData>().in(InspectionData::getInsId, wrkIds)); inspectionDataService.remove(new LambdaQueryWrapper<InspectionData>().in(InspectionData::getInsId, wrkIds));
// todo 终端占用状态和江西内蒙古
wrkInfoStoreRecordService.removeBatchByIds(wrkIds); wrkInfoStoreRecordService.removeBatchByIds(wrkIds);
// 修改 终端信息 // 修改 终端信息
wrkInfoTerminalRecordService.removeBatchByIds(wrkIds); wrkInfoTerminalRecordService.removeBatchByIds(wrkIds);
// 修改 终端对应巡检信息 // 修改 终端对应巡检信息
wrkInfoTerminalInsRecordService.removeBatchByIds(wrkIds); wrkInfoTerminalInsRecordService.removeBatchByIds(wrkIds);
// 终端数据
// todo 解除终端的占用 List<WrkInfoTerminalRecord> wrkInfoTerminalRecords = wrkInfoTerminalRecordService.listByIds(wrkIds);
// todo 江苏工行, 建行内蒙古的撤回 Set<Long> terminalIds = wrkInfoTerminalRecords.stream().map(WrkInfoTerminalRecord::getTerminalId)
.collect(Collectors.toSet());
// 解除终端占用 --> 原本会删除业务员录入 终端以及商户信息, 这里不删除, 只修改终端占用
terminalService.updateOccupy(terminalIds, 0);
// 建行内蒙古的撤回 本身需要删除五统一商户信息, 此处不删除
} }
@ -486,8 +498,8 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
* 6. 复审驳回 * 6. 复审驳回
* 7. 初审通过 * 7. 初审通过
* 8. 默认审核通过 * 8. 默认审核通过
* todo 当任务为只需要初审时, 点击初审通过, 则其状态由2 变为 7 * 当任务为只需要初审时, 点击初审通过, 则其状态由2 变为 7
* todo 当任务需要复审时, 点击初审通过, 其状态由2 变为3 * 当任务需要复审时, 点击初审通过, 其状态由2 变为3
* 当任务不需要审核时, 点击提交, 工单状态, 由1 变为8 * 当任务不需要审核时, 点击提交, 工单状态, 由1 变为8
*/ */
@Override @Override
@ -669,6 +681,72 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
return baseMapper.countByProjectIds(projectIds, wrkType); return baseMapper.countByProjectIds(projectIds, wrkType);
} }
@Override
@DataScope(deptAlias = "wi")
public PageResult wrkData(WrkDataQuery wrkDataQuery) {
CommonParam commonParam = CommonParam.buildPageRequest();
WrapperUtils.buildSql(wrkDataQuery);
Page<WrkDataVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit());
List<WrkDataVO> records = baseMapper.wrkData(wrkDataQuery, page);
return new PageResult(records, page);
}
/**
* 工单数据导出
*/
@Override
public Long wrkDataExport(WrkDataQuery wrkDataQuery) {
CommonParam commonParam = CommonParam.buildPageRequest();
WrapperUtils.buildSql(wrkDataQuery);
Page<WrkDataVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit());
List<WrkDataVO> records = baseMapper.wrkData(wrkDataQuery, page);
AssertUtil.invalidate (records.size() <= 0, "导出数据为空");
return remoteTaskService.createTask(CreateTaskDTO.builder()
.params(JSON.toJSONString(wrkDataQuery))
.taskName("工单数据导出")
.applicationName(ServiceEnum.INSPECTION)
.methodName("exportWrkData")
.className(this.getClass().getName())
.deptId(SecurityUtils.getDeptId())
.taskType(TaskTypeEnum.DOWN)
.remark("五统一商户明细导出")
.createBy(SecurityUtils.getUsername())
.build(), SecurityConstants.INNER).getData();
}
/**
* 导出工单数据
* @param params 所需参数
*/
public Result<String> exportWrkData(String params)
{
WrkDataQuery projectQuery = JSON.parseObject(params, WrkDataQuery.class);
WrapperUtils.buildSql(projectQuery);
List<WrkDataVO> list = baseMapper.wrkData(projectQuery, null);
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){
// 如果为空时 创建一个空excel
if (CollectionUtil.isEmpty(list)){
}else {
ExcelUtils.exportList(outputStream, WrkDataVO.class, list, "工单数据");
}
// 上传到oss fileStore 是五统一的商户文件
Result<List<FileSourceVo>> listResult = remoteOssService.uploadBytes(UploadBytesDTO.builder()
.bytes(outputStream.toByteArray()).build(), "工单数据导出.xlsx", false, "", "wrkData", SecurityConstants.INNER);
if (listResult.isSuccess() && CollectionUtil.isNotEmpty(listResult.getData())){
List<FileSourceVo> data = listResult.getData();
FileSourceVo fileSourceVo = data.get(0);
String filePath = fileSourceVo.getFilePath();
return Result.ok(filePath);
}else {
log.error("生成文件异常, {}, {}", listResult.getCode(), listResult.getMsg());
return Result.failed(listResult.getCode(), listResult.getMsg());
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/** /**
* 计算经纬度 偏差 * 计算经纬度 偏差
*/ */

View File

@ -268,4 +268,36 @@
</if> </if>
GROUP BY wi.project_id GROUP BY wi.project_id
</select> </select>
<select id="wrkData" resultType="com.chushang.inspection.work.vo.WrkDataVO">
SELECT wi.dept_id AS deptId,
p.project_name AS projectName,
pt.project_id AS projectId,
pt.`name` AS taskName,
pt.id AS taskId,
(SELECT count(*)
FROM wrk_info_terminal_record
WHERE wi.project_id = project_id) AS totalTer,
(SELECT COUNT(*) FROM wrk_info WHERE project_id = wi.project_id) AS totalwrk,
(SELECT COUNT(*)
FROM wrk_info
WHERE project_id = wi.project_id
AND wrk_status in (4, 7, 8)) AS totalSuc,
(SELECT COUNT(*)
FROM wrk_info
WHERE project_id = wi.project_id
AND end_time IS not NULL
AND end_time &lt;= wi.dispose_time) AS totalTimeOut
FROM wrk_info wi
LEFT JOIN ta_polling_task pt ON pt.id = wi.lower_task_id
LEFT JOIN wrk_project p ON pt.project_id = p.project_id
WHERE wi.del_state = 0
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
GROUP BY pt.project_id
</select>
</mapper> </mapper>

View File

@ -52,19 +52,8 @@ public class RemoteUserController implements RemoteUserService {
sysUserVo.setRoles(roles); sysUserVo.setRoles(roles);
sysUserVo.setScopes(dataScopes); sysUserVo.setScopes(dataScopes);
sysUserVo.setPermissions(permissions); sysUserVo.setPermissions(permissions);
// todo 用户拥有的数据权限
// List<SysUserData> userDataList = userDataService.listUserData(sysUser);
// 默认传递一个空Map --> 拥有管理员 // 默认传递一个空Map --> 拥有管理员
sysUserVo.setAuthDataMap(new HashMap<>()); sysUserVo.setAuthDataMap(new HashMap<>());
// if (CollectionUtil.isNotEmpty(userDataList)){
// Map<String, Set<String>> authDataMap = new HashMap<>();
// // 对应的数据权限
// for (SysUserData sysUserData : userDataList) {
// authDataMap.put(sysUserData.getDataType().getCodeType(),
// new HashSet<>(JSONUtil.toList(sysUserData.getDataValue(), String.class)));
// }
// sysUserVo.setAuthDataMap(authDataMap);
// }
return Result.ok(sysUserVo); return Result.ok(sysUserVo);
} }

View File

@ -33,7 +33,7 @@ public interface ISysDictTypeService extends IService<SysDictType> {
default boolean checkDictTypeUnique(SysDictType dictType, CommonParam commonParam){ default boolean checkDictTypeUnique(SysDictType dictType, CommonParam commonParam){
return this.count(buildWrapper(dictType, commonParam)) > 0; return this.count(buildWrapper(dictType, commonParam)) > 0;
} }
// todo // todo 字典缓存刷新
default void resetDictCache(){} default void resetDictCache(){}
} }