diff --git a/src/main/java/org/springblade/common/event/ApiLogListener.java b/src/main/java/org/springblade/common/event/ApiLogListener.java index be62e81..666fa1a 100644 --- a/src/main/java/org/springblade/common/event/ApiLogListener.java +++ b/src/main/java/org/springblade/common/event/ApiLogListener.java @@ -1,5 +1,3 @@ - - package org.springblade.common.event; import lombok.AllArgsConstructor; @@ -17,7 +15,6 @@ import org.springframework.scheduling.annotation.Async; import java.util.Map; - /** * 异步监听日志事件 * diff --git a/src/main/java/org/springblade/common/event/UsualLogListener.java b/src/main/java/org/springblade/common/event/UsualLogListener.java index 81687b5..5343e3e 100644 --- a/src/main/java/org/springblade/common/event/UsualLogListener.java +++ b/src/main/java/org/springblade/common/event/UsualLogListener.java @@ -1,7 +1,5 @@ - package org.springblade.common.event; - import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.launch.props.BladeProperties; diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java index f3f4638..86b5db2 100644 --- a/src/main/java/org/springblade/modules/system/controller/DeptController.java +++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java @@ -169,8 +169,7 @@ public class DeptController extends BladeController { @ApiOperationSupport(order = 9) @ApiOperation(value = "获取维修班组") public R> repairsDept() { - Dept dept = deptService.getById(AuthUtil.getDeptId()); - List list = deptService.list(Wrappers.lambdaQuery().eq(Dept::getDeptCategory, 4).in(Dept::getParentId, dept.getParentId())); + List list = deptService.list(Wrappers.lambdaQuery().eq(Dept::getDeptCategory, 4).eq(Dept::getParentId, AuthUtil.getDeptId())); return R.data(list); } diff --git a/src/main/java/org/springblade/modules/system/controller/LogApiController.java b/src/main/java/org/springblade/modules/system/controller/LogApiController.java index 4d250f5..ce53324 100644 --- a/src/main/java/org/springblade/modules/system/controller/LogApiController.java +++ b/src/main/java/org/springblade/modules/system/controller/LogApiController.java @@ -1,22 +1,29 @@ - package org.springblade.modules.system.controller; - import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; +import org.springblade.common.cache.UserCache; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.log.model.LogApi; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.WebUtil; +import org.springblade.modules.system.dto.LogDTO; +import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.ILogApiService; +import org.springblade.modules.system.vo.LogVO; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletRequest; +import java.awt.*; +import java.util.List; import java.util.Map; /** @@ -50,4 +57,15 @@ public class LogApiController { return R.data(pages); } + /** + * 查询多条(分页) + */ + @GetMapping("/logOnList") + public R>> logOnList(@ApiIgnore LogDTO log, Query query) { +// HttpServletRequest request = WebUtil.getRequest(); + User user = UserCache.getUser("", ""); + Map> logList = logService.logOnList(log); + return R.data(logList); + } + } diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java index 3d5c9e6..04fd964 100644 --- a/src/main/java/org/springblade/modules/system/controller/UserController.java +++ b/src/main/java/org/springblade/modules/system/controller/UserController.java @@ -303,8 +303,9 @@ public class UserController { */ @GetMapping("/repairPersons") public R> repairPersons(boolean isRepair) { - User user = UserCache.getUser(AuthUtil.getUserId()); - List users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getDeptId, user.getDeptId()).ne(isRepair, User::getRoleId, user.getRoleId())); +// User user = UserCache.getUser(AuthUtil.getUserId()); +// List users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getDeptId, user.getDeptId()).ne(isRepair, User::getRoleId, user.getRoleId())); + List users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346")); return R.data(users); } diff --git a/src/main/java/org/springblade/modules/system/dto/LogDTO.java b/src/main/java/org/springblade/modules/system/dto/LogDTO.java new file mode 100644 index 0000000..3ea852f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/dto/LogDTO.java @@ -0,0 +1,17 @@ + +package org.springblade.modules.system.dto; + +import lombok.Data; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +public class LogDTO { + private static final long serialVersionUID = 1L; + + private String startTime; + private String endTime; +} diff --git a/src/main/java/org/springblade/modules/system/entity/User.java b/src/main/java/org/springblade/modules/system/entity/User.java index bf88380..460f61c 100644 --- a/src/main/java/org/springblade/modules/system/entity/User.java +++ b/src/main/java/org/springblade/modules/system/entity/User.java @@ -76,6 +76,12 @@ public class User extends TenantEntity { * 岗位id */ private String postId; - - + /** + * 详细地址 + */ + private String address; + /** + * 坐标 + */ + private String coordinate; } diff --git a/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java index 4543af7..ceae132 100644 --- a/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java +++ b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java @@ -3,6 +3,10 @@ package org.springblade.modules.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springblade.core.log.model.LogApi; +import org.springblade.modules.system.dto.LogDTO; +import org.springblade.modules.system.vo.LogVO; + +import java.util.List; /** * Mapper 接口 @@ -11,4 +15,5 @@ import org.springblade.core.log.model.LogApi; */ public interface LogApiMapper extends BaseMapper { + List logOnList(LogDTO log); } diff --git a/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml index 39b6194..8031518 100644 --- a/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml +++ b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml @@ -22,5 +22,19 @@ + diff --git a/src/main/java/org/springblade/modules/system/service/ILogApiService.java b/src/main/java/org/springblade/modules/system/service/ILogApiService.java index 6a15d21..dd141dd 100644 --- a/src/main/java/org/springblade/modules/system/service/ILogApiService.java +++ b/src/main/java/org/springblade/modules/system/service/ILogApiService.java @@ -3,6 +3,11 @@ package org.springblade.modules.system.service; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.log.model.LogApi; +import org.springblade.modules.system.dto.LogDTO; +import org.springblade.modules.system.vo.LogVO; + +import java.util.List; +import java.util.Map; /** * 服务类 @@ -11,4 +16,5 @@ import org.springblade.core.log.model.LogApi; */ public interface ILogApiService extends IService { + Map> logOnList(LogDTO log); } diff --git a/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java index f13e77f..d824e3b 100644 --- a/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java +++ b/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java @@ -3,10 +3,20 @@ package org.springblade.modules.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.log.model.LogApi; +import org.springblade.modules.system.dto.LogDTO; import org.springblade.modules.system.mapper.LogApiMapper; import org.springblade.modules.system.service.ILogApiService; +import org.springblade.modules.system.vo.LogVO; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.stream.Collectors; + /** * 服务实现类 * @@ -16,4 +26,18 @@ import org.springframework.stereotype.Service; public class LogApiServiceImpl extends ServiceImpl implements ILogApiService { + @Override + public Map> logOnList(LogDTO log) { + SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List logs = baseMapper.logOnList(log); + + logs.forEach(logVO -> { + logVO.setTime(formatter2.format(logVO.getCreateTime())); + logVO.setTitle(logVO.getCreateBy() + ":" + logVO.getTitle()); + }); + + Map> groupedByMonth = logs.stream().collect(Collectors.groupingBy(date -> date.getTime().substring(0, 7))); + + return groupedByMonth; + } } diff --git a/src/main/java/org/springblade/modules/system/vo/LogVO.java b/src/main/java/org/springblade/modules/system/vo/LogVO.java new file mode 100644 index 0000000..c586d3a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/vo/LogVO.java @@ -0,0 +1,26 @@ + +package org.springblade.modules.system.vo; + +import lombok.Data; + +import java.util.Date; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +public class LogVO { + private static final long serialVersionUID = 1L; + + private String tenantId; + + private String createBy; + + private Date createTime; + + private String time; + + private String title; +} diff --git a/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java b/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java index 055cc5a..be31fe8 100644 --- a/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java +++ b/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java @@ -92,7 +92,7 @@ public class DeviceController extends BladeController { wrapper.like(StringUtils.isNotBlank(sanitizeInput(device.getName())), Device::getName, device.getName()); wrapper.eq(StringUtils.isNotBlank(sanitizeInput(device.getPosition())), Device::getPosition, device.getPosition()); wrapper.eq(StringUtils.isNotBlank(sanitizeInput(device.getType())), Device::getType, device.getType()); - wrapper.eq(Device::getCreateUser, AuthUtil.getUserId()); +// wrapper.eq(Device::getCreateUser, AuthUtil.getUserId()); wrapper.orderByDesc(Device::getCreateTime); try { IPage pages = deviceService.page(Condition.getPage(query), wrapper); diff --git a/src/main/java/org/springblade/modules/workOrder/controller/WorkOrderController.java b/src/main/java/org/springblade/modules/workOrder/controller/WorkOrderController.java index 7439cfd..678bc3a 100644 --- a/src/main/java/org/springblade/modules/workOrder/controller/WorkOrderController.java +++ b/src/main/java/org/springblade/modules/workOrder/controller/WorkOrderController.java @@ -12,7 +12,9 @@ import lombok.AllArgsConstructor; import javax.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.json.JSONObject; import org.springblade.core.log.annotation.ApiLog; +import org.springblade.core.log.logger.BladeLogger; import org.springblade.core.secure.BladeUser; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; @@ -33,9 +35,17 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.tool.constant.BladeConstant; +import org.springframework.web.client.RestTemplate; import springfox.documentation.annotations.ApiIgnore; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.Map; import java.util.List; import java.util.stream.Collectors; @@ -94,27 +104,24 @@ public class WorkOrderController extends BladeController { } // 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序 - eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation()) - .eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType()) - .between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime()) - .orderByDesc(WorkOrder::getCreateTime); + eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation()).eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType()).between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime()).orderByDesc(WorkOrder::getCreateTime); // 执行分页查询 IPage pages = workOrderService.page(Condition.getPage(query), eq); // 获取查询结果列表 - List records = pages.getRecords(); +// List records = pages.getRecords(); // 批量查询设备名称 - List deviceIds = records.stream().map(WorkOrder::getDeviceId).collect(Collectors.toList()); - Map deviceNameMap = getDeviceNameMap(deviceIds); +// List deviceIds = records.stream().map(WorkOrder::getDeviceId).collect(Collectors.toList()); +// Map deviceNameMap = getDeviceNameMap(deviceIds); - for (WorkOrder record : records) { - record.setDeviceName(deviceNameMap.getOrDefault(record.getDeviceId(), "")); - } +// for (WorkOrder record : records) { +// record.setDeviceName(deviceNameMap.getOrDefault(record.getDeviceId(), "")); +// } // 更新查询结果列表 - pages.setRecords(records); +// pages.setRecords(records); // 返回查询结果 return R.data(pages); @@ -127,6 +134,7 @@ public class WorkOrderController extends BladeController { break; case "2": eq.in(WorkOrder::getCreateDept, Func.toLongList(AuthUtil.getDeptId())); // 客服 + eq.ne(WorkOrder::getStatus, -1); break; case "3": eq.eq(WorkOrder::getMaintenanceTeam, AuthUtil.getDeptId()); // 维修负责人 @@ -272,4 +280,61 @@ public class WorkOrderController extends BladeController { public R clone(@Valid @RequestBody WorkOrder workOrder) { return R.status(workOrderService.updateById(workOrder)); } + + /** + * 封装百度接口 + * + * @param query + * @return + * @throws Exception + */ + @GetMapping("/suggestion") + public R suggestion(String query) throws Exception { + String ak = "NqGy7LGcdxNUNqR7pBwPqeOkZ11Arn5Y"; + String url = "https://api.map.baidu.com/place/v2/suggestion?"; + Map params = new LinkedHashMap(); + params.put("query", query); + params.put("region", "全国"); + params.put("city_limit", "true"); + params.put("output", "json"); + params.put("ak", ak); + String resultStr = requestGetAK(url, params); + JSONObject jsonObject = new JSONObject(resultStr); + Map map = jsonObject.toMap(); + return R.data(map); + } + + private String requestGetAK(String strUrl, Map param) throws Exception { + if (strUrl == null || strUrl.length() <= 0 || param == null || param.size() <= 0) { + return null; + } + + StringBuffer queryString = new StringBuffer(); + queryString.append(strUrl); + for (Map.Entry pair : param.entrySet()) { + queryString.append(pair.getKey() + "="); + // 第一种方式使用的 jdk 自带的转码方式 第二种方式使用的 spring 的转码方法 两种均可 + queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8").replace("+", "%20") + "&"); + } + + if (queryString.length() > 0) { + queryString.deleteCharAt(queryString.length() - 1); + } + + URL url = new URL(queryString.toString()); + URLConnection httpConnection = url.openConnection(); + httpConnection.connect(); + + InputStreamReader isr = new InputStreamReader(httpConnection.getInputStream()); + BufferedReader reader = new BufferedReader(isr); + StringBuffer buffer = new StringBuffer(); + String line; + while ((line = reader.readLine()) != null) { + buffer.append(line); + } + reader.close(); + isr.close(); +// System.out.println("AK: " + buffer.toString()); + return buffer.toString(); + } } diff --git a/src/main/java/org/springblade/modules/workOrder/entity/WorkOrder.java b/src/main/java/org/springblade/modules/workOrder/entity/WorkOrder.java index de3b689..239e8d2 100644 --- a/src/main/java/org/springblade/modules/workOrder/entity/WorkOrder.java +++ b/src/main/java/org/springblade/modules/workOrder/entity/WorkOrder.java @@ -28,6 +28,11 @@ public class WorkOrder extends BaseEntity { */ private String faultLocation; + /** + * 客服意见 + */ + private String customerOpinion; + /** * 设备id */ @@ -36,7 +41,6 @@ public class WorkOrder extends BaseEntity { /** * 设备名称 */ - @TableField(exist = false) private String deviceName; /** diff --git a/src/main/java/org/springblade/modules/workOrder/service/impl/WorkOrderServiceImpl.java b/src/main/java/org/springblade/modules/workOrder/service/impl/WorkOrderServiceImpl.java index f5e9a27..36b9a58 100644 --- a/src/main/java/org/springblade/modules/workOrder/service/impl/WorkOrderServiceImpl.java +++ b/src/main/java/org/springblade/modules/workOrder/service/impl/WorkOrderServiceImpl.java @@ -15,11 +15,9 @@ import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.vo.PostVO; import org.springblade.modules.workOrder.dto.WorkOrderDTO; -import org.springblade.modules.workOrder.entity.KnowledgeBaseAttach; -import org.springblade.modules.workOrder.entity.WorkOrder; -import org.springblade.modules.workOrder.entity.WorkOrderAttach; -import org.springblade.modules.workOrder.entity.WorkOrderRepairMaterial; +import org.springblade.modules.workOrder.entity.*; import org.springblade.modules.workOrder.mapper.WorkOrderAttachMapper; +import org.springblade.modules.workOrder.service.IDeviceService; import org.springblade.modules.workOrder.service.IWorkOrderAttachService; import org.springblade.modules.workOrder.service.IWorkOrderRepairMaterialService; import org.springblade.modules.workOrder.vo.WorkOrderVO; @@ -57,6 +55,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectWorkOrderPage(IPage page, WorkOrderVO workOrder) { return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder)); @@ -95,6 +95,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl materials = workOrder.getMaterials(); + workOrderRepairMaterialService.remove(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId())); // 维修材料 if (CollectionUtil.isNotEmpty(materials)) { materials.forEach(material -> material.setOrderId(workOrder.getId()));