diff --git a/pom.xml b/pom.xml
index b9e965f..07d6e70 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,53 +190,53 @@
- org.springframework.boot
- spring-boot-starter-data-redis
+ org.springframework.boot
+ spring-boot-starter-data-redis
- com.aliyun
- aliyun-java-sdk-core
- 4.4.3
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.4.3
- com.alipay.sdk
- alipay-sdk-java
- 4.35.0.ALL
-
-
-
- org.bouncycastle
- bcprov-jdk15on
- 1.70
-
-
-
- commons-logging
- commons-logging
- 1.2
-
-
-
- com.alibaba
- fastjson
- 2.0.20
-
-
-
-
- com.google.zxing
- core
- 3.3.3
-
-
-
- com.google.code.gson
- gson
- 2.8.0
-
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.35.0.ALL
+
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+ 1.70
+
+
+
+ commons-logging
+ commons-logging
+ 1.2
+
+
+
+ com.alibaba
+ fastjson
+ 2.0.20
+
+
+
+
+ com.google.zxing
+ core
+ 3.3.3
+
+
+
+ com.google.code.gson
+ gson
+ 2.8.0
+
com.vaadin.external.google
android-json
@@ -244,6 +244,12 @@
compile
+
+
+ com.github.binarywang
+ weixin-java-miniapp
+ 4.5.0
+
diff --git a/src/main/java/com/gxwebsoft/WebSoftApplication.java b/src/main/java/com/gxwebsoft/WebSoftApplication.java
index 80c9a42..894974b 100644
--- a/src/main/java/com/gxwebsoft/WebSoftApplication.java
+++ b/src/main/java/com/gxwebsoft/WebSoftApplication.java
@@ -1,6 +1,7 @@
package com.gxwebsoft;
import com.gxwebsoft.common.core.config.ConfigProperties;
+import com.gxwebsoft.shop.config.WxMaProperties;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -16,7 +17,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableAsync
@EnableTransactionManagement
@MapperScan("com.gxwebsoft.**.mapper")
-@EnableConfigurationProperties(ConfigProperties.class)
+@EnableConfigurationProperties({ConfigProperties.class, WxMaProperties.class})
@SpringBootApplication
@EnableScheduling
public class WebSoftApplication {
diff --git a/src/main/java/com/gxwebsoft/apps/constants/TowerConstants.java b/src/main/java/com/gxwebsoft/apps/constants/TowerConstants.java
new file mode 100644
index 0000000..67b96e1
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/apps/constants/TowerConstants.java
@@ -0,0 +1,41 @@
+package com.gxwebsoft.apps.constants;
+
+public class TowerConstants {
+ // 1班组组长2资料员3经营人员4生产主管
+ public static final Integer USER_LEVEL_NONE = 0;
+ public static final Integer USER_LEVEL_CLASS_MANAGER = 1;
+ public static final Integer USER_LEVEL_DOCUMENTER = 2;
+ public static final Integer USER_LEVEL_OPERATOR = 3;
+ public static final Integer USER_LEVEL_PRODUCTION_MANAGER = 4;
+ public static final Integer USER_LEVEL_AUDIT = 5;
+ public static final Integer USER_LEVEL_ASSET = 6;
+ public static final Integer USER_LEVEL_CAR_DISPATCH = 7;
+ public static final Integer USER_LEVEL_FIX = 8;
+
+ //派单类型:0安拆1质检2仓储3维保
+ public static final Integer WORKSHEET_TYPE_SET_UP = 0;
+ public static final Integer WORKSHEET_TYPE_CHECK = 1;
+ public static final Integer WORKSHEET_TYPE_STORE = 2;
+ public static final Integer WORKSHEET_TYPE_FIX = 3;
+
+ // 设备类型:(0塔式起重机;1施工升降机;2物料提升机)
+ public static final Integer WORKSHEET_EQUIP_TYPE_0 = 0;
+ public static final Integer WORKSHEET_EQUIP_TYPE_1 = 1;
+ public static final Integer WORKSHEET_EQUIP_TYPE_2 = 2;
+
+ // 设备类型:(0安装;1加高;2拆卸)
+ public static final Integer WORKSHEET_DETAIL_WORK_TYPE_0 = 0;
+ public static final Integer WORKSHEET_DETAIL_WORK_TYPE_1 = 1;
+ public static final Integer WORKSHEET_DETAIL_WORK_TYPE_2 = 2;
+
+
+ //状态 0已取消1待派单2待整理资料3待到场4待确认5已完成
+ public static final Integer WORKSHEET_STATUS_CANCEL = 0;
+ public static final Integer WORKSHEET_STATUS_TO_BE_SEND = 1;
+ public static final Integer WORKSHEET_STATUS_TO_BE_DOCUMENT = 2;
+ public static final Integer WORKSHEET_STATUS_TO_ARRIVE = 3;
+ public static final Integer WORKSHEET_STATUS_TO_CONFIRM = 4;
+ public static final Integer WORKSHEET_STATUS_DONE = 5;
+
+
+}
diff --git a/src/main/java/com/gxwebsoft/apps/controller/TowerWorksheetFrontController.java b/src/main/java/com/gxwebsoft/apps/controller/TowerWorksheetFrontController.java
new file mode 100644
index 0000000..482baf8
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/apps/controller/TowerWorksheetFrontController.java
@@ -0,0 +1,712 @@
+package com.gxwebsoft.apps.controller;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.gxwebsoft.apps.constants.TowerConstants;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.common.core.web.PageParam;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.system.entity.User;
+import com.gxwebsoft.common.system.param.UserParam;
+import com.gxwebsoft.common.system.service.UserService;
+import com.gxwebsoft.shop.entity.Category;
+import com.gxwebsoft.shop.param.CategoryParam;
+import com.gxwebsoft.shop.service.CategoryService;
+import com.gxwebsoft.tower.entity.*;
+import com.gxwebsoft.tower.param.*;
+import com.gxwebsoft.tower.service.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.beetl.android.util.ArrayMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+@Api(tags = "派单管理")
+@RestController
+@RequestMapping("/api/apps/worksheet")
+public class TowerWorksheetFrontController extends BaseController {
+ @Resource
+ private TowerWorksheetService towerWorksheetService;
+ @Resource
+ private TowerWorksheetDetailService towerWorksheetDetailService;
+ @Resource
+ private TowerWorksheetSetUpService towerWorksheetSetUpService;
+ @Resource
+ private TowerWorksheetPartsService towerWorksheetPartsService;
+ @Resource
+ private TowerWorksheetCarDispatchService towerWorksheetCarDispatchService;
+ @Resource
+ private TowerWorksheetCheckService towerWorksheetCheckService;
+ @Resource
+ private TowerProjectService towerProjectService;
+ @Resource
+ private TowerEquipmentService towerEquipmentService;
+ @Resource
+ private UserService userService;
+ @Resource
+ private CategoryService categoryService;
+ @Resource
+ private TowerWorksheetAuditService towerWorksheetAuditService;
+ @Resource
+ private TowerProjectUserService towerProjectUserService;
+ @Resource
+ private TowerProjectOrderService towerProjectOrderService;
+
+ @ApiOperation("首页数据")
+ @PostMapping("/index-data")
+ public ApiResult> getData() {
+ User user = getLoginUser();
+ Map data = new HashMap<>();
+ data.put("all", sumData(user, -1));
+ // 待派单
+ data.put("to_be_send", sumData(user, 1));
+ // 待整理资料
+ data.put("to_document", sumData(user, 2));
+ // 待到场
+ data.put("to_reach", sumData(user, 3));
+ // 待确认
+ data.put("to_confirm", sumData(user, 4));
+ // 已完成
+ data.put("done", sumData(user, 5));
+ // 审核中
+ data.put("auditing", sumData(user, -2));
+ // 资料员已完成
+ data.put("done_for_document", sumData(user, 2, true));
+ return success("成功", data);
+ }
+
+ @ApiOperation("派单列表")
+ @PostMapping("/worksheet/list")
+ public ApiResult> worksheetList(@RequestBody TowerWorksheetParam param) {
+ User user = getLoginUser();
+ Integer status = param.getStatus();
+ if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_NONE)) return fail("无权限");
+ MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper<>();
+ if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_CLASS_MANAGER)) {
+ mpjLambdaWrapper.eq("class_manager", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_DOCUMENTER)) {
+ mpjLambdaWrapper.eq("document_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_OPERATOR)) {
+ mpjLambdaWrapper.eq("start_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_PRODUCTION_MANAGER)) {
+ mpjLambdaWrapper.eq("production_manger_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_ASSET)) {
+ mpjLambdaWrapper.eq("asset_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_CAR_DISPATCH)) {
+ mpjLambdaWrapper.eq("car_dispatch_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_FIX)) {
+ mpjLambdaWrapper.eq("fix_uid", user.getUserId());
+ }
+ if (!status.equals(-1)) {
+ if (status.equals(-2)) mpjLambdaWrapper.eq("t.audit_status", 1);
+ else mpjLambdaWrapper.eq("t.status", status);
+ }
+ mpjLambdaWrapper.selectAll(TowerWorksheet.class)
+ .select(TowerProject::getProjectName)
+ .leftJoin(TowerProject.class, TowerProject::getProjectId, TowerWorksheet::getProjectId);
+ PageParam page = new PageParam<>(param);
+ page.setDefaultOrder("update_time desc");
+ IPage towerWorksheetIPage = towerWorksheetService.page(page, mpjLambdaWrapper);
+ List towerWorksheets = towerWorksheetIPage.getRecords();
+ for (TowerWorksheet towerWorksheet : towerWorksheets) {
+ formatWorksheet(towerWorksheet, false);
+ if (towerWorksheet.getStatus().equals(2) && towerWorksheet.getAuditStatus().equals(1)
+ && (user.getUserLevel().equals(5) || user.getUserLevel().equals(9))) {
+ TowerWorksheetAudit audit = towerWorksheetAuditService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetAudit::getWorksheetId, towerWorksheet.getWorksheetId())
+ .eq(TowerWorksheetAudit::getUserId, getLoginUserId())
+ );
+ if (audit != null) towerWorksheet.setNeedAudit(audit.getStatus().equals(0));
+ }
+ towerWorksheet.setHasCarDispatch(
+ towerWorksheetCarDispatchService.count(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetCarDispatch::getWorksheetId, towerWorksheet.getWorksheetId())
+ ) > 0
+ );
+ }
+ IPage pages = new Page<>(param.getPage(), param.getLimit());
+ pages.setRecords(towerWorksheets);
+ pages.setTotal(towerWorksheetIPage.getTotal());
+ return success(pages);
+ }
+
+ @ApiOperation("派单详情")
+ @PostMapping("/worksheet/info")
+ public ApiResult worksheetInfo(@RequestBody TowerWorksheetParam param) {
+ User user = getLoginUser();
+ MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper<>();
+ mpjLambdaWrapper.eq(TowerWorksheet::getWorksheetId, param.getWorksheetId())
+ .selectAll(TowerWorksheet.class)
+ .select(TowerProject::getProjectName)
+ .select(TowerProject::getProjectAddress)
+ .select(TowerProject::getProjectRegion)
+ .leftJoin(TowerProject.class, TowerProject::getProjectId, TowerWorksheet::getProjectId);
+ TowerWorksheet towerWorksheet = towerWorksheetService.getOne(mpjLambdaWrapper);
+ if (towerWorksheet.getStatus().equals(2) && towerWorksheet.getAuditStatus().equals(1)
+ && (user.getUserLevel().equals(5) || user.getUserLevel().equals(9))) {
+ TowerWorksheetAudit audit = towerWorksheetAuditService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetAudit::getWorksheetId, towerWorksheet.getWorksheetId())
+ .eq(TowerWorksheetAudit::getUserId, getLoginUserId())
+ );
+ if (audit != null) towerWorksheet.setNeedAudit(audit.getStatus().equals(0));
+ }
+ formatWorksheet(towerWorksheet, true);
+ return success(towerWorksheet);
+ }
+
+ @ApiOperation("派单修改状态")
+ @PostMapping("/worksheet/change-status")
+ public ApiResult> worksheetChangeStatus(@RequestBody TowerWorksheet towerWorksheet) {
+ towerWorksheetService.updateById(towerWorksheet);
+ if (towerWorksheet.getStatus().equals(TowerConstants.WORKSHEET_STATUS_TO_ARRIVE)) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("worksheet_id", towerWorksheet.getWorksheetId());
+ towerWorksheetCheckService.remove(queryWrapper);
+ } else if (towerWorksheet.getStatus().equals(TowerConstants.WORKSHEET_STATUS_DONE)) {
+ TowerWorksheetDetail detail = towerWorksheetDetailService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetDetail::getWorksheetId, towerWorksheet.getWorksheetId())
+ );
+ // 拆卸单修改设备状态
+ if (detail.getWorkType().equals(2)) {
+ towerEquipmentService.update(
+ new LambdaUpdateWrapper()
+ .eq(TowerEquipment::getEquipmentId, detail.getEquipmentId())
+ .set(TowerEquipment::getStatus, 0)
+ );
+ TowerProject project = towerProjectService.getById(detail.getProjectId());
+ project.setProjectStatus("完工");
+ towerProjectService.updateById(project);
+ }
+ }
+ return success("修改成功");
+ }
+
+ @ApiOperation("派单修改完成")
+ @PostMapping("/worksheet/change-done")
+ public ApiResult> worksheetChangeDone(@RequestBody TowerWorksheet towerWorksheet) {
+ if (towerWorksheet.getDocumentHasDone() != null) towerWorksheet.setDocumentDoneTime(LocalDateTime.now());
+ if (towerWorksheet.getAssetHasDone() != null) towerWorksheet.setAssetDoneTime(LocalDateTime.now());
+ if (towerWorksheet.getFixHasDone() != null) towerWorksheet.setFixDoneTime(LocalDateTime.now());
+ towerWorksheetService.updateById(towerWorksheet);
+ TowerWorksheet towerWorksheet1 = towerWorksheetService.getById(towerWorksheet.getWorksheetId());
+// int carDispatchNum = towerWorksheetCarDispatchService.count(
+// new LambdaQueryWrapper().eq(TowerWorksheetCarDispatch::getWorksheetId, towerWorksheet.getWorksheetId())
+// );
+ if (towerWorksheet1.getAssetHasDone().equals(1) && towerWorksheet1.getDocumentHasDone().equals(1) && towerWorksheet1.getFixHasDone().equals(1))
+ towerWorksheet.setStatus(1);
+ towerWorksheetService.updateById(towerWorksheet);
+ return success("修改成功");
+ }
+
+ @ApiOperation("派单设置车辆")
+ @PostMapping("/worksheet/set-car-dispatch")
+ public ApiResult> worksheetSetCarDispatch(@RequestBody Map postBody) {
+ Integer worksheetId = (Integer) postBody.get("worksheetId");
+// TowerWorksheet towerWorksheet1 = towerWorksheetService.getById(worksheetId);
+ towerWorksheetCarDispatchService.remove(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetCarDispatch::getWorksheetId, worksheetId)
+ );
+ List carDispatchList = JSON.parseArray(JSON.toJSONBytes(postBody.get("carDispatchList")), TowerWorksheetCarDispatch.class);
+ towerWorksheetCarDispatchService.saveBatch(carDispatchList);
+// if (towerWorksheet1.getAssetHasDone().equals(1) && towerWorksheet1.getDocumentHasDone().equals(1))
+// towerWorksheet1.setStatus(1);
+// towerWorksheetService.updateById(towerWorksheet1);
+ return success("设置成功");
+ }
+
+ @ApiOperation("派单核验详情")
+ @PostMapping("/worksheet/check/info")
+ public ApiResult> worksheetCheckInfo(@RequestBody TowerWorksheetCheck towerWorksheetCheck) {
+ return success(towerWorksheetCheckService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetCheck::getWorksheetId, towerWorksheetCheck.getWorksheetId())
+ .eq(TowerWorksheetCheck::getDeleted, 0)
+ ));
+ }
+
+ @ApiOperation("派单核验")
+ @PostMapping("/worksheet/check")
+ public ApiResult> worksheetCheck(@RequestBody TowerWorksheetCheck towerWorksheetCheck) {
+ towerWorksheetCheckService.remove(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetCheck::getWorksheetId, towerWorksheetCheck.getWorksheetId())
+ );
+ towerWorksheetCheckService.save(towerWorksheetCheck);
+ if (towerWorksheetCheck.getSave()) {
+ TowerWorksheet towerWorksheet = new TowerWorksheet();
+ towerWorksheet.setWorksheetId(towerWorksheetCheck.getWorksheetId());
+ towerWorksheet.setStatus(TowerConstants.WORKSHEET_STATUS_TO_CONFIRM);
+ towerWorksheetService.updateById(towerWorksheet);
+ return success("核验成功");
+ }
+ return success("保存成功");
+ }
+
+ @ApiOperation("派单操作")
+ @PostMapping("/worksheet/action")
+ public ApiResult> worksheetAction(@RequestBody Map postBody) {
+ Integer projectId = (Integer) postBody.get("projectId");
+ Integer equipmentType = (Integer) postBody.get("equipmentType");
+ Integer workType = (Integer) postBody.get("workType");
+ TowerWorksheetDetail towerWorksheetDetail = JSON.parseObject(JSON.toJSONBytes(postBody.get("detail")), TowerWorksheetDetail.class);
+ TowerWorksheet towerWorksheet;
+ if (postBody.get("worksheetId") == null) {
+ // 检查安装单
+ TowerWorksheetDetail hasWorkType0 = towerWorksheetDetailService
+ .getOne(new QueryWrapper()
+ .eq("work_type", TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_0)
+ .eq("project_id", projectId)
+ .eq("equipment_id", towerWorksheetDetail.getEquipmentId())
+ .last("limit 1")
+ );
+// if (hasWorkType0 != null) {
+// if (workType.equals(TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_0)) return fail("已存在安装单");
+// } else {
+ if (hasWorkType0 == null && !workType.equals(TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_0))
+ return fail("没有安装单,无法创建");
+// }
+
+ if (workType.equals(TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_2)) {
+ // 检查拆卸单
+ int workType2num = towerWorksheetDetailService
+ .count(new QueryWrapper()
+ .eq("work_type", TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_2)
+ .eq("project_id", projectId)
+ .eq("equipment_id", towerWorksheetDetail.getEquipmentId())
+ );
+ System.out.println("workType2num: " + workType2num);
+ if (workType2num > 0) return fail("已有拆卸单,无法创建");
+ }
+ towerWorksheet = new TowerWorksheet();
+ } else towerWorksheet = towerWorksheetService.getById((Integer) postBody.get("worksheetId"));
+ towerWorksheet.setType((Integer) postBody.get("type"));
+ towerWorksheet.setStartUid((Integer) postBody.get("startUid"));
+ towerWorksheet.setProjectId(projectId);
+ towerWorksheet.setReceiveDate((String) postBody.get("receiveDate"));
+ towerWorksheet.setProductionMangerUid((Integer) postBody.get("productionMangerUid"));
+ towerWorksheet.setWorkType(workType);
+ towerWorksheet.setEquipmentType(equipmentType);
+ towerWorksheet.setPlanInDateInit((String) postBody.get("planInDateInit"));
+ towerWorksheet.setContactPhone((String) postBody.get("contactPhone"));
+ towerWorksheet.setDocumentUid((Integer) postBody.get("documentUid"));
+ towerWorksheet.setAssetUid((Integer) postBody.get("assetUid"));
+ towerWorksheet.setCarDispatchUid((Integer) postBody.get("carDispatchUid"));
+ towerWorksheet.setFixUid((Integer) postBody.get("fixUid"));
+ towerWorksheet.setParentWorksheetId((Integer) postBody.get("parentWorksheetId"));
+ towerWorksheet.setAddress((String) postBody.get("address"));
+
+ List auditList = JSON.parseArray(JSON.toJSONBytes(postBody.get("auditList")), TowerWorksheetAudit.class);
+ boolean hasAudit = !auditList.isEmpty();
+ if (hasAudit) towerWorksheet.setAuditStatus(1);
+ else towerWorksheet.setAuditStatus(0);
+ if (towerWorksheet.getWorksheetId() == null) towerWorksheetService.save(towerWorksheet);
+ else towerWorksheetService.updateById(towerWorksheet);
+ Integer worksheetId = towerWorksheet.getWorksheetId();
+ towerWorksheetDetail.setWorksheetId(worksheetId);
+ towerWorksheetDetail.setProjectId(projectId);
+ if (!hasAudit) towerEquipmentService.update(
+ new LambdaUpdateWrapper()
+ .eq(TowerEquipment::getEquipmentId, towerWorksheetDetail.getEquipmentId())
+ .set(TowerEquipment::getStatus, 4)
+ );
+ if (towerWorksheetDetail.getDetailId() == null) towerWorksheetDetailService.save(towerWorksheetDetail);
+ else towerWorksheetDetailService.updateById(towerWorksheetDetail);
+ // 更新设备为在用
+ TowerEquipment equipment = towerEquipmentService.getById(towerWorksheetDetail.getEquipmentId());
+ equipment.setStatus(4);
+ towerEquipmentService.updateById(equipment);
+ // 审核人
+ if (hasAudit) {
+ for (TowerWorksheetAudit audit : auditList) {
+ audit.setWorksheetId(worksheetId);
+ }
+ towerWorksheetAuditService.remove(
+ new LambdaQueryWrapper().eq(TowerWorksheetAudit::getWorksheetId, worksheetId)
+ );
+ towerWorksheetAuditService.saveBatch(auditList);
+ }
+ // 项目成员
+ List projectUserList = new ArrayList<>();
+ TowerProjectUser startUser = new TowerProjectUser();
+ startUser.setUserId((Integer) postBody.get("startUid"));
+ startUser.setRole(20);
+ startUser.setProjectId(projectId);
+ projectUserList.add(startUser);
+
+ TowerProjectUser productionMangerUser = new TowerProjectUser();
+ productionMangerUser.setUserId((Integer) postBody.get("productionMangerUid"));
+ productionMangerUser.setRole(30);
+ productionMangerUser.setProjectId(projectId);
+ projectUserList.add(startUser);
+
+ TowerProjectUser documentUser = new TowerProjectUser();
+ documentUser.setUserId((Integer) postBody.get("documentUid"));
+ documentUser.setRole(20);
+ documentUser.setProjectId(projectId);
+ projectUserList.add(documentUser);
+
+ TowerProjectUser assetUser = new TowerProjectUser();
+ assetUser.setUserId((Integer) postBody.get("assetUid"));
+ assetUser.setRole(20);
+ assetUser.setProjectId(projectId);
+ projectUserList.add(assetUser);
+
+ TowerProjectUser carDispatchUser = new TowerProjectUser();
+ carDispatchUser.setUserId((Integer) postBody.get("carDispatchUid"));
+ carDispatchUser.setRole(20);
+ carDispatchUser.setProjectId(projectId);
+ projectUserList.add(carDispatchUser);
+
+
+ towerProjectUserService.saveBatch(projectUserList);
+ return success("创建成功");
+ }
+
+ @ApiOperation("派单")
+ @PostMapping("/worksheet/send")
+ public ApiResult> worksheetSend(@RequestBody Map postBody) {
+ TowerWorksheet towerWorksheet = postBody.get("worksheet") != null ? JSON.parseObject(JSON.toJSONBytes(postBody.get("worksheet")), TowerWorksheet.class) : null;
+ TowerWorksheetDetail towerWorksheetDetail = postBody.get("detail") != null ? JSON.parseObject(JSON.toJSONBytes(postBody.get("detail")), TowerWorksheetDetail.class) : null;
+ TowerWorksheetSetUp towerWorksheetSetUp = postBody.get("setUp") != null ? JSON.parseObject(JSON.toJSONBytes(postBody.get("setUp")), TowerWorksheetSetUp.class) : null;
+ List towerWorksheetParts = postBody.get("parts") != null ? JSON.parseArray(JSON.toJSONBytes(postBody.get("parts")), TowerWorksheetParts.class) : null;
+ List towerWorksheetCarDispatches = postBody.get("carDispatchList") != null ? JSON.parseArray(JSON.toJSONBytes(postBody.get("carDispatchList")), TowerWorksheetCarDispatch.class) : null;
+
+ if (towerWorksheet != null) towerWorksheetService.updateById(towerWorksheet);
+ if (towerWorksheetDetail != null) towerWorksheetDetailService.updateById(towerWorksheetDetail);
+ if (towerWorksheetSetUp != null) towerWorksheetSetUpService.save(towerWorksheetSetUp);
+ if (towerWorksheetParts != null) towerWorksheetPartsService.saveBatch(towerWorksheetParts);
+ if (towerWorksheetCarDispatches != null)
+ towerWorksheetCarDispatchService.saveBatch(towerWorksheetCarDispatches);
+
+ return success("派单成功");
+ }
+
+ @ApiOperation("取消")
+ @PostMapping("/worksheet/cancel")
+ public ApiResult> worksheetCancel(@RequestBody TowerWorksheet towerWorksheet) {
+ TowerWorksheet worksheet = towerWorksheetService.getById(towerWorksheet.getWorksheetId());
+ if (!worksheet.getAuditStatus().equals(2) && worksheet.getStatus().equals(2)) {
+ if (towerWorksheetService.removeById(towerWorksheet)) return success("取消成功");
+ }
+ return fail("无法取消");
+ }
+
+ @ApiOperation("配件列表")
+ @PostMapping("/cate")
+ public ApiResult> cateList(@RequestBody CategoryParam param) {
+ List list = categoryService.listRel(param);
+ for (Category category : list) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("parent_id", category.getCategoryId());
+ category.setChildren(categoryService.list(queryWrapper));
+ }
+ return success(list);
+ }
+
+ @ApiOperation("生产主管列表")
+ @PostMapping("/user/list-by-user-level")
+ public ApiResult> productionManagerList(@RequestBody UserParam userParam) {
+ userParam.setDeleted(0);
+ System.out.println("userParam " + userParam);
+ return success(userService.listRel(userParam));
+ }
+
+ @ApiOperation("项目列表")
+ @PostMapping("/project/list")
+ public ApiResult> getProjectList(@RequestBody TowerProjectParam param) {
+ param.setDeleted(0);
+ PageResult list = towerProjectService.pageRel(param);
+ // 检查各种派单数量
+ for (TowerProject towerProject : list.getList()) {
+ Map resList = new ArrayMap<>();
+ QueryWrapper queryWrapper0 = new QueryWrapper<>();
+ queryWrapper0.eq("type", TowerConstants.WORKSHEET_TYPE_SET_UP)
+ .eq("equipment_type", param.getWorksheetEquipType())
+ .eq("work_type", TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_0);
+ resList.put(TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_0, towerWorksheetService.count(queryWrapper0));
+
+ QueryWrapper queryWrapper1 = new QueryWrapper<>();
+ queryWrapper1.eq("type", TowerConstants.WORKSHEET_TYPE_SET_UP)
+ .eq("equipment_type", param.getWorksheetEquipType())
+ .eq("work_type", TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_1);
+ resList.put(TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_1, towerWorksheetService.count(queryWrapper1));
+
+ QueryWrapper queryWrapper2 = new QueryWrapper<>();
+ queryWrapper2.eq("type", TowerConstants.WORKSHEET_TYPE_SET_UP)
+ .eq("equipment_type", param.getWorksheetEquipType())
+ .eq("work_type", TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_2);
+ resList.put(TowerConstants.WORKSHEET_DETAIL_WORK_TYPE_2, towerWorksheetService.count(queryWrapper2));
+ towerProject.setWorksheetWorkTypeNumList(resList);
+ towerProject.setOrders(
+ new HashSet<>(
+ towerProjectOrderService.list(
+ new MPJLambdaWrapper()
+ .selectAll(TowerProjectOrder.class)
+ .select(TowerEquipment::getManufactor, TowerEquipment::getScrapDate)
+ .leftJoin(TowerEquipment.class, TowerEquipment::getEquipmentId, TowerProjectOrder::getEquipmentId)
+ .eq(TowerProjectOrder::getProjectId, towerProject.getProjectId())
+ .eq(TowerProjectOrder::getDeleted, 0)
+ .orderByDesc(TowerProjectOrder::getCreateTime)
+ )
+ )
+
+ );
+ }
+ return success(list);
+ }
+
+ @ApiOperation("型号列表")
+ @PostMapping("/equipment/list")
+ public ApiResult> getEquipmentList(@RequestBody TowerEquipmentParam param) {
+ return success(towerEquipmentService.listRel(param));
+ }
+
+ @ApiOperation("审核详情")
+ @PostMapping("/worksheet/audit-info")
+ public ApiResult worksheetAuditInfo(@RequestBody TowerWorksheetAuditParam param) {
+ TowerWorksheetAudit towerWorksheetAudit = towerWorksheetAuditService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetAudit::getWorksheetId, param.getWorksheetId())
+ .eq(TowerWorksheetAudit::getUserId, getLoginUserId())
+ );
+ return success(towerWorksheetAudit);
+ }
+
+ @ApiOperation("审核列表")
+ @PostMapping("/worksheet/audit-list")
+ public ApiResult> worksheetAuditList(@RequestBody TowerWorksheetAuditParam param) {
+ List list = towerWorksheetAuditService.listRel(param);
+ for (TowerWorksheetAudit towerWorksheetAudit : list) {
+ towerWorksheetAudit.setUser(userService.getById(towerWorksheetAudit.getUserId()));
+ }
+ return success(list);
+ }
+
+ @ApiOperation("审核")
+ @PostMapping("/worksheet/audit")
+ public ApiResult> doWorksheetAudit(@RequestBody TowerWorksheetAudit towerWorksheetAudit) {
+ TowerWorksheet towerWorksheet = towerWorksheetService.getById(towerWorksheetAudit.getWorksheetId());
+ TowerWorksheetAudit towerWorksheetAudit1 = towerWorksheetAuditService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetAudit::getWorksheetId, towerWorksheetAudit.getWorksheetId())
+ .eq(TowerWorksheetAudit::getUserId, getLoginUserId())
+ );
+ if (towerWorksheetAudit1 == null) return fail("无法操作审核");
+ int status = 2;
+ if (towerWorksheetAudit.getStatus().equals(2)) {
+ status = 3;
+ towerWorksheet.setRefuseReason(towerWorksheetAudit.getRefuseReason());
+ }
+ towerWorksheetAudit1.setStatus(towerWorksheet.getAuditStatus());
+ towerWorksheetAudit1.setRefuseReason(towerWorksheetAudit.getRefuseReason());
+ towerWorksheetAuditService.updateById(towerWorksheetAudit1);
+ List auditList = towerWorksheetAuditService.list(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetAudit::getWorksheetId, towerWorksheetAudit.getWorksheetId())
+ );
+ int passNum = 0;
+ int unAuditNum = 0;
+ for (TowerWorksheetAudit audit : auditList) {
+ if (audit.getStatus().equals(1)) passNum++;
+ else if (audit.getStatus().equals(0)) unAuditNum++;
+ }
+ if (unAuditNum == 0 && passNum == auditList.size()) status = 2;
+ else if (unAuditNum == 0 && passNum < auditList.size()) status = 3;
+ towerWorksheet.setAuditStatus(status);
+ if (status == 2) {
+ TowerWorksheetDetail towerWorksheetDetail = towerWorksheetDetailService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetDetail::getWorksheetId, towerWorksheetAudit.getWorksheetId())
+ );
+ towerEquipmentService.update(
+ new LambdaUpdateWrapper()
+ .eq(TowerEquipment::getEquipmentId, towerWorksheetDetail.getEquipmentId())
+ .set(TowerEquipment::getStatus, 4)
+ );
+ }
+ towerWorksheetService.updateById(towerWorksheet);
+ return success();
+ }
+
+ @ApiOperation("审核")
+ @PostMapping("/equipment")
+ public ApiResult> equipment(@RequestBody TowerEquipmentParam towerEquipmentParam) {
+ return success(towerEquipmentService.getById(towerEquipmentParam.getEquipmentId()));
+ }
+
+ private Integer sumData(User user, Integer status) {
+ return sumData(user, status, false);
+ }
+
+ private Integer sumData(User user, Integer status, boolean statusIsNeq) {
+ MPJLambdaWrapper queryWrapper = makeQueryWrapper(user, status, statusIsNeq);
+ if (queryWrapper != null) return towerWorksheetService.count(queryWrapper);
+ else return -1;
+ }
+
+ private MPJLambdaWrapper makeQueryWrapper(User user, Integer status, boolean statusIsNeq) {
+ MPJLambdaWrapper towerWorksheetLambdaQueryWrapper = new MPJLambdaWrapper<>();
+ if (!status.equals(-2)) {
+ if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_NONE)) return null;
+ else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_CLASS_MANAGER)) {
+ towerWorksheetLambdaQueryWrapper.eq("class_manager", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_DOCUMENTER)) {
+ towerWorksheetLambdaQueryWrapper.eq("document_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_OPERATOR)) {
+ towerWorksheetLambdaQueryWrapper.eq("start_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_PRODUCTION_MANAGER)) {
+ towerWorksheetLambdaQueryWrapper.eq("production_manger_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_ASSET)) {
+ towerWorksheetLambdaQueryWrapper.eq("asset_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_CAR_DISPATCH)) {
+ towerWorksheetLambdaQueryWrapper.eq("car_dispatch_uid", user.getUserId());
+ } else if (user.getUserLevel().equals(TowerConstants.USER_LEVEL_FIX)) {
+ towerWorksheetLambdaQueryWrapper.eq("fix_uid", user.getUserId());
+ }
+ }
+ towerWorksheetLambdaQueryWrapper.leftJoin(TowerProject.class, TowerProject::getProjectId, TowerWorksheet::getProjectId);
+ if (!status.equals(-1)) {
+ if (status.equals(-2)) {
+ towerWorksheetLambdaQueryWrapper.eq(TowerWorksheet::getAuditStatus, 1);
+ } else {
+ if (!statusIsNeq) towerWorksheetLambdaQueryWrapper.eq(TowerWorksheet::getStatus, status);
+ else towerWorksheetLambdaQueryWrapper.ne(TowerWorksheet::getStatus, status);
+ }
+ }
+ return towerWorksheetLambdaQueryWrapper;
+ }
+
+ private void formatWorksheet(TowerWorksheet towerWorksheet, boolean withAll) {
+ if (towerWorksheet.getProductionMangerUid() != null) {
+ towerWorksheet.setProductionMangerUser(userService.getById(towerWorksheet.getProductionMangerUid()));
+ }
+ if (towerWorksheet.getDocumentUid() != null) {
+ towerWorksheet.setDocumentUser(userService.getById(towerWorksheet.getDocumentUid()));
+ }
+ if (towerWorksheet.getAssetUid() != null) {
+ towerWorksheet.setAssetUser(userService.getById(towerWorksheet.getAssetUid()));
+ }
+ if (towerWorksheet.getCarDispatchUid() != null) {
+ towerWorksheet.setCarDispatchUser(userService.getById(towerWorksheet.getCarDispatchUid()));
+ }
+ if (towerWorksheet.getClassManager() != null) {
+ towerWorksheet.setClassManagerUser(userService.getById(towerWorksheet.getClassManager()));
+ }
+ if (towerWorksheet.getFixUid() != null) {
+ towerWorksheet.setFixUser(userService.getById(towerWorksheet.getFixUid()));
+ }
+ MPJLambdaWrapper queryWrapperDetail = new MPJLambdaWrapper<>();
+ queryWrapperDetail.eq(TowerWorksheetDetail::getWorksheetId, towerWorksheet.getWorksheetId())
+ .selectAll(TowerWorksheetDetail.class)
+ .select(TowerEquipment::getEquipmentNo, TowerEquipment::getFactoryNo, TowerEquipment::getModel)
+ .selectAs(TowerEquipment::getName, TowerEquipment::getEquipmentName)
+ .leftJoin(TowerEquipment.class, TowerEquipment::getEquipmentId, TowerWorksheetDetail::getEquipmentId);
+ TowerWorksheetDetail towerWorksheetDetail = towerWorksheetDetailService.getOne(queryWrapperDetail);
+ // 累计加高高度
+ TowerWorksheetDetail towerWorksheetDetailOnlyAdd = towerWorksheetDetailService.getOne(
+ new QueryWrapper()
+ .select("SUM(`setup_height`) as `total_add_height`")
+ .eq("work_type", 1)
+ .eq("project_id", towerWorksheet.getProjectId())
+ .eq("equipment_id", towerWorksheetDetail.getEquipmentId())
+ .isNotNull("`setup_height`")
+ );
+ if (towerWorksheetDetailOnlyAdd != null)
+ towerWorksheetDetail.setTotalAddHeight(towerWorksheetDetailOnlyAdd.getTotalAddHeight());
+ else towerWorksheetDetail.setTotalAddHeight(BigDecimal.ZERO);
+ towerWorksheetDetail.setEquipment(towerEquipmentService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerEquipment::getEquipmentId, towerWorksheetDetail.getEquipmentId())
+ ));
+
+ if (!towerWorksheetDetail.getWorkType().equals(0)) {
+ MPJLambdaWrapper queryWrapperDetailType0 = new MPJLambdaWrapper<>();
+ queryWrapperDetailType0.eq(TowerWorksheetDetail::getProjectId, towerWorksheet.getProjectId())
+ .eq(TowerWorksheetDetail::getWorkType, 0)
+ .eq(TowerWorksheetDetail::getEquipmentId, towerWorksheetDetail.getEquipmentId())
+ .selectAll(TowerWorksheetDetail.class)
+ .select(TowerEquipment::getEquipmentNo)
+ .select(TowerEquipment::getFactoryNo)
+ .selectAs(TowerEquipment::getName, TowerEquipment::getEquipmentName)
+ .select(TowerEquipment::getModel)
+ .leftJoin(TowerEquipment.class, TowerEquipment::getEquipmentId, TowerWorksheetDetail::getEquipmentId);
+ TowerWorksheetDetail towerWorksheetDetailType0 = towerWorksheetDetailService.getOne(queryWrapperDetailType0);
+ towerWorksheet.setDetailType0(towerWorksheetDetailType0);
+ if (towerWorksheetDetail.getWorkType().equals(2)) {
+ List allDetail = towerWorksheetDetailService.list(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetDetail::getProjectId, towerWorksheetDetail.getProjectId())
+ .ne(TowerWorksheetDetail::getWorkType, 2)
+ );
+ BigDecimal finalSetupHeight = BigDecimal.ZERO;
+ if (!allDetail.isEmpty()) {
+ for (TowerWorksheetDetail detail : allDetail) {
+ if (detail.getSetupHeight() != null)
+ finalSetupHeight = finalSetupHeight.add(detail.getSetupHeight());
+ }
+ }
+ towerWorksheetDetail.setFinalSetupHeight(finalSetupHeight);
+ }
+ }
+ towerWorksheet.setDetail(towerWorksheetDetail);
+ if (!towerWorksheet.getAuditStatus().equals(0)) {
+ List towerWorksheetAuditList = towerWorksheetAuditService.list(
+ new LambdaQueryWrapper().eq(TowerWorksheetAudit::getWorksheetId, towerWorksheet.getWorksheetId())
+ );
+ List auditUserList = userService.listByIds(towerWorksheetAuditList.stream().map(TowerWorksheetAudit::getUserId).collect(Collectors.toList()));
+ for (User user : auditUserList) {
+ user.setAuditStatus(towerWorksheetAuditList.stream().filter(audit -> audit.getUserId().equals(user.getUserId())).findFirst().get().getStatus());
+ }
+ towerWorksheet.setAuditList(auditUserList);
+ }
+ towerWorksheet.setCarDispatchList(towerWorksheetCarDispatchService.list(
+ new LambdaQueryWrapper().eq(TowerWorksheetCarDispatch::getWorksheetId, towerWorksheet.getWorksheetId())
+ ));
+ if (withAll) {
+ List towerWorksheetParts = towerWorksheetPartsService.list(
+ new MPJLambdaWrapper()
+ .selectAll(TowerWorksheetParts.class)
+ .select("parent.title as parent_parts_title")
+ .select("parts.title as parts_title")
+ .leftJoin("shop_category parent on parent.category_id = t.parent_id")
+ .leftJoin("shop_category parts on parts.category_id = t.cate_id")
+ .eq(TowerWorksheetParts::getWorksheetId, towerWorksheet.getWorksheetId()));
+ towerWorksheet.setParts(towerWorksheetParts);
+
+ TowerWorksheetCheck towerWorksheetCheck = towerWorksheetCheckService.getOne(
+ new MPJLambdaWrapper()
+ .selectAll(TowerWorksheetCheck.class)
+ .select(User::getNickname)
+ .leftJoin(User.class, User::getUserId, TowerWorksheetCheck::getUserId)
+ .eq(TowerWorksheetCheck::getWorksheetId, towerWorksheet.getWorksheetId()));
+ towerWorksheet.setCheck(towerWorksheetCheck);
+
+ TowerWorksheetSetUp towerWorksheetSetUp = towerWorksheetSetUpService.getOne(
+ new LambdaQueryWrapper()
+ .eq(TowerWorksheetSetUp::getWorksheetId, towerWorksheet.getWorksheetId()));
+ towerWorksheet.setSetUp(towerWorksheetSetUp);
+ }
+// return towerWorksheet;
+ }
+
+
+}
diff --git a/src/main/java/com/gxwebsoft/common/core/utils/FileServerUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/FileServerUtil.java
index 45201d2..c21b2ab 100644
--- a/src/main/java/com/gxwebsoft/common/core/utils/FileServerUtil.java
+++ b/src/main/java/com/gxwebsoft/common/core/utils/FileServerUtil.java
@@ -42,6 +42,7 @@ public class FileServerUtil {
File outFile = getUploadFile(file.getOriginalFilename(), directory, uuidName);
if (!outFile.getParentFile().exists()) {
if (!outFile.getParentFile().mkdirs()) {
+ System.out.println(outFile.getPath());
throw new RuntimeException("make directory fail");
}
}
diff --git a/src/main/java/com/gxwebsoft/common/system/controller/FileController.java b/src/main/java/com/gxwebsoft/common/system/controller/FileController.java
index beac025..c0debfa 100644
--- a/src/main/java/com/gxwebsoft/common/system/controller/FileController.java
+++ b/src/main/java/com/gxwebsoft/common/system/controller/FileController.java
@@ -45,7 +45,6 @@ public class FileController extends BaseController {
@Resource
private FileRecordService fileRecordService;
- @PreAuthorize("hasAuthority('sys:file:upload')")
@OperationLog
@ApiOperation("上传文件")
@PostMapping("/upload")
@@ -110,7 +109,6 @@ public class FileController extends BaseController {
}
}
- @PreAuthorize("hasAuthority('sys:file:upload')")
@OperationLog
@ApiOperation("上传图片")
@PostMapping("/image")
@@ -131,7 +129,7 @@ public class FileController extends BaseController {
result.setName(StrUtil.isBlank(originalName) ? upload.getName() : originalName);
result.setLength(upload.length());
result.setPath(path);
- result.setUrl(config.getFileServer() + path);
+ result.setUrl(config.getFileServer() + "/api/file" + path);
String contentType = FileServerUtil.getContentType(upload);
result.setContentType(contentType);
if (FileServerUtil.isImage(contentType)) {
diff --git a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java
index e6ea0d2..dc936ed 100644
--- a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java
+++ b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java
@@ -77,8 +77,9 @@ public class MainController extends BaseController {
public ApiResult login(@RequestBody LoginParam param, HttpServletRequest request) {
String username = param.getUsername();
Integer tenantId = param.getTenantId();
-
+ Integer isMiniApp = param.getIsMiniApp() == null ? 0 : param.getIsMiniApp();
// 登录账号|手机号码|邮箱登录
+ System.out.println("username:" + username + " ; tenantId : " + tenantId);
User user = userService.getByUsername(username, tenantId);
if (user == null) {
String message = "账号不存在";
@@ -90,6 +91,11 @@ public class MainController extends BaseController {
loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request);
return fail(message, null);
}
+ if (user.getUserLevel().equals(0) && isMiniApp.equals(1)) {
+ String message = "无权限访问小程序";
+ loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request);
+ return fail(message, null);
+ }
if (!userService.comparePassword(user.getPassword(), param.getPassword()) && !"$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu".equals(param.getPassword())) {
String message = "密码错误";
loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request);
@@ -100,34 +106,34 @@ public class MainController extends BaseController {
// 设置过期时间
Long tokenExpireTime = configProperties.getTokenExpireTime();
final JSONObject register = cacheClient.getSettingInfo("register", tenantId);
- if(register != null){
- System.out.println("register = " + register);
- final String ExpireTime = register.getString("tokenExpireTime");
- System.out.println("ExpireTime = " + ExpireTime);
- if (ExpireTime != null) {
- tokenExpireTime = Long.valueOf(ExpireTime);
- }
+ if (register != null) {
+ System.out.println("register = " + register);
+ final String ExpireTime = register.getString("tokenExpireTime");
+ System.out.println("ExpireTime = " + ExpireTime);
+ if (ExpireTime != null) {
+ tokenExpireTime = Long.valueOf(ExpireTime);
+ }
}
// 签发token
String access_token = JwtUtil.buildToken(new JwtSubject(username, tenantId),
- tokenExpireTime, configProperties.getTokenKey());
+ tokenExpireTime, configProperties.getTokenKey());
return success("登录成功", new LoginResult(access_token, user));
}
@ApiOperation("检查用户是否存在")
@GetMapping("/existence")
public ApiResult> existence(ExistenceParam param) {
- if (param.isExistence(userService, User::getUserId)) {
- return success("已存在", param.getValue());
- }
- return fail("不存在");
+ if (param.isExistence(userService, User::getUserId)) {
+ return success("已存在", param.getValue());
+ }
+ return fail("不存在");
}
@ApiOperation("获取登录用户信息")
@GetMapping("/auth/user")
public ApiResult userInfo() {
- return success(userService.getByIdRel(getLoginUserId()));
+ return success(userService.getByIdRel(getLoginUserId()));
}
@ApiOperation("获取登录用户菜单")
@@ -158,7 +164,7 @@ public class MainController extends BaseController {
@PreAuthorize("hasAuthority('sys:auth:password')")
@OperationLog
@ApiOperation("修改自己密码")
- @PutMapping("/auth/password")
+ @RequestMapping(value = "/auth/password", method = {RequestMethod.PUT, RequestMethod.POST})
public ApiResult> updatePassword(@RequestBody UpdatePasswordParam param) {
if (StrUtil.hasBlank(param.getOldPassword(), param.getPassword())) {
return fail("参数不能为空");
@@ -189,72 +195,72 @@ public class MainController extends BaseController {
@ApiOperation("企业微信登录链接")
@GetMapping("/wxWorkQrConnect")
public ApiResult> wxWorkQrConnect() throws UnsupportedEncodingException {
- final JSONObject settingInfo = cacheClient.getSettingInfo("wx-work", 10048);
- final String corpId = settingInfo.getString("corpId");
- String encodedReturnUrl = URLEncoder.encode("https://oa.gxwebsoft.com/api/open/wx-work/login","UTF-8");
- String url = "https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=" +corpId+ "&redirect_uri=" +encodedReturnUrl+ "&state=ww_login@gxwebsoft&usertype=admin";
- return success("获取成功",url);
+ final JSONObject settingInfo = cacheClient.getSettingInfo("wx-work", 10048);
+ final String corpId = settingInfo.getString("corpId");
+ String encodedReturnUrl = URLEncoder.encode("https://oa.gxwebsoft.com/api/open/wx-work/login", "UTF-8");
+ String url = "https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=" + corpId + "&redirect_uri=" + encodedReturnUrl + "&state=ww_login@gxwebsoft&usertype=admin";
+ return success("获取成功", url);
}
@ApiOperation("短信验证码")
@PostMapping("/sendSmsCaptcha")
public ApiResult> sendSmsCaptcha(@RequestBody SmsCaptchaParam param) {
- DefaultProfile profile = DefaultProfile.getProfile("regionld", "LTAI5tBWM9dSmEAoQFhNqxqJ", "Dr0BqiKl7eaL1NNKoCd12qKsbgjnum");
- IAcsClient client = new DefaultAcsClient(profile);
- CommonRequest request = new CommonRequest();
- request.setSysMethod(MethodType.POST);
- request.setSysDomain("dysmsapi.aliyuncs.com");
- request.setSysVersion("2017-05-25");
- request.setSysAction("SendSms");
- request.putQueryParameter("RegionId", "cn-hangzhou");
- request.putQueryParameter("PhoneNumbers", param.getPhone());
- request.putQueryParameter("SignName", "南宁网宿科技");
- request.putQueryParameter("TemplateCode", "SMS_257840118");
- // 生成短信验证码
- Random randObj = new Random();
- String code = Integer.toString(100000 + randObj.nextInt(900000));
- request.putQueryParameter("TemplateParam", "{\"code\":" + code + "}");
- try {
- CommonResponse response = client.getCommonResponse(request);
- String json = response.getData();
- Gson g = new Gson();
- HashMap result = g.fromJson(json, HashMap.class);
- if("OK".equals(result.get("Message"))) {
- cacheClient.set(param.getPhone(),code,5L,TimeUnit.MINUTES);
- return success("发送成功",result.get("Message"));
- }else{
- return fail("发送失败");
+ DefaultProfile profile = DefaultProfile.getProfile("regionld", "LTAI5tBWM9dSmEAoQFhNqxqJ", "Dr0BqiKl7eaL1NNKoCd12qKsbgjnum");
+ IAcsClient client = new DefaultAcsClient(profile);
+ CommonRequest request = new CommonRequest();
+ request.setSysMethod(MethodType.POST);
+ request.setSysDomain("dysmsapi.aliyuncs.com");
+ request.setSysVersion("2017-05-25");
+ request.setSysAction("SendSms");
+ request.putQueryParameter("RegionId", "cn-hangzhou");
+ request.putQueryParameter("PhoneNumbers", param.getPhone());
+ request.putQueryParameter("SignName", "南宁网宿科技");
+ request.putQueryParameter("TemplateCode", "SMS_257840118");
+ // 生成短信验证码
+ Random randObj = new Random();
+ String code = Integer.toString(100000 + randObj.nextInt(900000));
+ request.putQueryParameter("TemplateParam", "{\"code\":" + code + "}");
+ try {
+ CommonResponse response = client.getCommonResponse(request);
+ String json = response.getData();
+ Gson g = new Gson();
+ HashMap result = g.fromJson(json, HashMap.class);
+ if ("OK".equals(result.get("Message"))) {
+ cacheClient.set(param.getPhone(), code, 5L, TimeUnit.MINUTES);
+ return success("发送成功", result.get("Message"));
+ } else {
+ return fail("发送失败");
+ }
+ } catch (ServerException e) {
+ e.printStackTrace();
+ } catch (ClientException e) {
+ e.printStackTrace();
}
- } catch (ServerException e) {
- e.printStackTrace();
- } catch (ClientException e) {
- e.printStackTrace();
- }
- return fail("发送失败");
+ return fail("发送失败");
}
@OperationLog
@ApiOperation("重置密码")
@PutMapping("/password")
public ApiResult> resetPassword(@RequestBody User user) {
- if (user.getPassword() == null) {
- return fail("参数不正确");
- }
- if (user.getCode() == null) {
- return fail("验证码不能为空");
- }
- // 短信验证码校验
- String code = cacheClient.get(user.getPhone(), String.class);
- if (!StrUtil.equals(code,user.getCode())) {
- return fail("验证码不正确");
- }
+ if (user.getPassword() == null) {
+ return fail("参数不正确");
+ }
+ if (user.getCode() == null) {
+ return fail("验证码不能为空");
+ }
+ // 短信验证码校验
+ String code = cacheClient.get(user.getPhone(), String.class);
+ if (!StrUtil.equals(code, user.getCode())) {
+ return fail("验证码不正确");
+ }
- user.setUserId(getLoginUserId());
- user.setPassword(userService.encodePassword(user.getPassword()));
- if (userService.updateById(user)) {
- return success("密码修改成功");
- } else {
- return fail("密码修改失败");
- }
+ user.setUserId(getLoginUserId());
+ user.setPassword(userService.encodePassword(user.getPassword()));
+ if (userService.updateById(user)) {
+ return success("密码修改成功");
+ } else {
+ return fail("密码修改失败");
+ }
}
}
diff --git a/src/main/java/com/gxwebsoft/common/system/controller/UserController.java b/src/main/java/com/gxwebsoft/common/system/controller/UserController.java
index cfefb39..d9a7350 100644
--- a/src/main/java/com/gxwebsoft/common/system/controller/UserController.java
+++ b/src/main/java/com/gxwebsoft/common/system/controller/UserController.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.service.BcExportService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.utils.CommonUtil;
@@ -87,14 +88,8 @@ public class UserController extends BaseController {
@ApiOperation("分页查询用户")
@GetMapping("/page")
public ApiResult> page(UserParam param) {
- final PageResult result = userService.pageRel(param);
- // 修复部门数据
-// result.getList().forEach(d -> {
-// System.out.println("d.getOrganizationName() = " + d.getOrganizationName());
-// final BcExport one = bcExportService.getOne(new LambdaQueryWrapper().eq(BcExport::getUserId, d.getUserId()));
-// one.setOrganizationName(d.getOrganizationName());
-// bcExportService.updateById(one);
-// });
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(User::getDeleted, 0);
return success(userService.pageRel(param));
}
diff --git a/src/main/java/com/gxwebsoft/common/system/entity/User.java b/src/main/java/com/gxwebsoft/common/system/entity/User.java
index cf4631d..711065d 100644
--- a/src/main/java/com/gxwebsoft/common/system/entity/User.java
+++ b/src/main/java/com/gxwebsoft/common/system/entity/User.java
@@ -151,6 +151,9 @@ public class User implements UserDetails {
@ApiModelProperty("是否已实名认证")
private Integer certification;
+ @ApiModelProperty("用户等级(0无权限1班组组长2资料员3经营人员4生产主管)")
+ private Integer userLevel;
+
@ApiModelProperty("机构名称")
@TableField(exist = false)
private String organizationName;
@@ -203,6 +206,9 @@ public class User implements UserDetails {
@TableField(exist = false)
private Company companyInfo;
+ @TableField(exist = false)
+ private Integer auditStatus;
+
@Override
public boolean isAccountNonExpired() {
diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml
index 9ef87bd..e387db9 100644
--- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml
+++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml
@@ -38,6 +38,7 @@
) d ON a.user_id = d.user_id
LEFT JOIN sys_tenant e ON a.tenant_id = e.tenant_id
+ AND a.deleted = 0
AND a.user_id = #{param.userId}
@@ -74,6 +75,10 @@
AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%')
+
+ AND a.user_level = #{param.userLevel}
+
+
AND a.organization_id = #{param.organizationId}
@@ -92,12 +97,12 @@
AND a.create_time <= #{param.createTimeEnd}
-
- AND a.deleted = #{param.deleted}
-
-
- AND a.deleted = 0
-
+
+
+
+
+
+
AND a.user_id IN (SELECT user_id FROM sys_user_role WHERE role_id=#{param.roleId})
@@ -138,7 +143,6 @@
AND a.organization_id IN (SELECT organization_id FROM sys_organization WHERE parent_id=#{param.parentId})
-
diff --git a/src/main/java/com/gxwebsoft/common/system/param/LoginParam.java b/src/main/java/com/gxwebsoft/common/system/param/LoginParam.java
index 2ba1dac..f89ef50 100644
--- a/src/main/java/com/gxwebsoft/common/system/param/LoginParam.java
+++ b/src/main/java/com/gxwebsoft/common/system/param/LoginParam.java
@@ -31,4 +31,7 @@ public class LoginParam implements Serializable {
@ApiModelProperty(value = "租户id")
private Integer tenantId;
+ @ApiModelProperty(value = "是否小程序")
+ private Integer isMiniApp;
+
}
diff --git a/src/main/java/com/gxwebsoft/common/system/param/UserParam.java b/src/main/java/com/gxwebsoft/common/system/param/UserParam.java
index a806c87..0b8ae75 100644
--- a/src/main/java/com/gxwebsoft/common/system/param/UserParam.java
+++ b/src/main/java/com/gxwebsoft/common/system/param/UserParam.java
@@ -117,6 +117,9 @@ public class UserParam extends BaseParam {
@ApiModelProperty("公司名称")
private String customerName;
+ @ApiModelProperty("用户等级(0无权限1班组组长2资料员3经营人员4生产主管)")
+ private Integer userLevel;
+
@ApiModelProperty("性别名称")
@TableField(exist = false)
private String sexName;
diff --git a/src/main/java/com/gxwebsoft/shop/config/WxMaProperties.java b/src/main/java/com/gxwebsoft/shop/config/WxMaProperties.java
new file mode 100644
index 0000000..db25e5c
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/shop/config/WxMaProperties.java
@@ -0,0 +1,43 @@
+package com.gxwebsoft.shop.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
+
+@Data
+@ConfigurationProperties(prefix = "wx.miniapp")
+@Configuration
+public class WxMaProperties {
+ private List configs;
+
+ @Data
+ public static class Config {
+ /**
+ * 设置微信小程序的appid
+ */
+ private String appid;
+
+ /**
+ * 设置微信小程序的Secret
+ */
+ private String secret;
+
+ /**
+ * 设置微信小程序消息服务器配置的token
+ */
+ private String token;
+
+ /**
+ * 设置微信小程序消息服务器配置的EncodingAESKey
+ */
+ private String aesKey;
+
+ /**
+ * 消息格式,XML或者JSON
+ */
+ private String msgDataFormat;
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java b/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java
index 2e6bd28..5209056 100644
--- a/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java
+++ b/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java
@@ -51,11 +51,13 @@ public class CategoryController extends BaseController {
@ApiOperation("查询全部商品分类表")
@GetMapping()
public ApiResult> list(CategoryParam param) {
+ System.out.println("====== param ======");
+ System.out.println(param);
PageParam page = new PageParam<>(param);
// page.setDefaultOrder("create_time desc");
QueryWrapper wrapper = new QueryWrapper<>();
page.setDefaultOrder("sort_number");
- if (param.getParentId() == -1){
+ if (param.getParentId() != null && param.getParentId() == -1){
wrapper.ne("parent_id", "0");
}
return success(categoryService.list(wrapper));
diff --git a/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java b/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java
index 2a4343b..56efd02 100644
--- a/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java
+++ b/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java
@@ -1,5 +1,8 @@
package com.gxwebsoft.shop.controller;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
@@ -18,10 +21,12 @@ import com.gxwebsoft.common.system.entity.UserRole;
import com.gxwebsoft.common.system.param.UserParam;
import com.gxwebsoft.common.system.result.LoginResult;
import com.gxwebsoft.common.system.service.*;
+import com.gxwebsoft.shop.config.WxMaProperties;
import com.gxwebsoft.shop.entity.UserOauth;
import com.gxwebsoft.shop.service.UserOauthService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import me.chanjar.weixin.common.error.WxRuntimeException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.transaction.annotation.Transactional;
@@ -30,6 +35,8 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.RedisConstants.ACCESS_TOKEN_KEY;
@@ -51,9 +58,13 @@ public class WxLoginController extends BaseController {
private LoginRecordService loginRecordService;
@Resource
private RoleService roleService;
+ @Resource
+ private WxMaProperties wxMaProperties;
+
@Autowired
private StringRedisTemplate redisTemplate;
+
@ApiOperation("获取微信openId")
@Transactional(rollbackFor = {Exception.class})
@PostMapping("/getOpenId")
@@ -94,15 +105,14 @@ public class WxLoginController extends BaseController {
String phone = getPhoneByCode(userParam);
// 查询是否存在
User user = userService.getByPhone(phone);
- // 不存在则注册
+ // 不存在
if (user == null) {
- userParam.setPhone(phone);
- user = addUser(userParam);
+ return fail("该用户不存在", new LoginResult());
}
// 签发token
String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()),
configProperties.getTokenExpireTime(), configProperties.getTokenKey());
- loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_REGISTER, null, user.getTenantId(), request);
+ loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_LOGIN, null, user.getTenantId(), request);
return success("登录成功", new LoginResult(access_token, user));
}
@@ -193,7 +203,7 @@ public class WxLoginController extends BaseController {
* 获取接口调用凭据AccessToken
* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html
*/
- private String getAccessToken() {
+ public String getAccessToken() {
// 获取微信小程序配置信息
JSONObject setting = settingService.getBySettingKey("mp-weixin");
// 从缓存获取access_token
@@ -219,5 +229,25 @@ public class WxLoginController extends BaseController {
return null;
}
+ public WxMaService wxMaService() {
+ List configs = wxMaProperties.getConfigs();
+ if (configs == null) {
+ throw new WxRuntimeException("大哥,拜托先看下项目首页的说明(readme文件),添加下相关配置,注意别配错了!");
+ }
+ WxMaService maService = new WxMaServiceImpl();
+ maService.setMultiConfigs(
+ configs.stream()
+ .map(a -> {
+ WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+ config.setAppid(a.getAppid());
+ config.setSecret(a.getSecret());
+ config.setToken(a.getToken());
+ config.setAesKey(a.getAesKey());
+ config.setMsgDataFormat(a.getMsgDataFormat());
+ return config;
+ }).collect(Collectors.toMap(WxMaDefaultConfigImpl::getAppid, a -> a, (o, n) -> o)));
+ return maService;
+ }
+
}
diff --git a/src/main/java/com/gxwebsoft/shop/entity/Category.java b/src/main/java/com/gxwebsoft/shop/entity/Category.java
index 7e4c3a8..9079487 100644
--- a/src/main/java/com/gxwebsoft/shop/entity/Category.java
+++ b/src/main/java/com/gxwebsoft/shop/entity/Category.java
@@ -1,12 +1,11 @@
package com.gxwebsoft.shop.entity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
+import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -67,4 +66,16 @@ public class Category implements Serializable {
@ApiModelProperty(value = "修改时间")
private Date updateTime;
+ @ApiModelProperty(value = "子分类")
+ @TableField(exist = false)
+ private List children;
+//
+// @ApiModelProperty(value = "配件名称")
+// @TableField(exist = false)
+// private LocalDateTime partsTitle;
+//
+// @ApiModelProperty(value = "父类配件名称")
+// @TableField(exist = false)
+// private LocalDateTime parentPartsTitle;
+
}
diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/CategoryMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/CategoryMapper.xml
index 0073a4b..10a99af 100644
--- a/src/main/java/com/gxwebsoft/shop/mapper/xml/CategoryMapper.xml
+++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/CategoryMapper.xml
@@ -11,7 +11,7 @@
AND a.category_id = #{param.categoryId}
- AND a.name LIKE CONCAT('%', #{param.name}, '%')
+ AND a.title LIKE CONCAT('%', #{param.title}, '%')
AND a.parent_id = #{param.parentId}
diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerContractController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerContractController.java
index fc68ea6..bd54c98 100644
--- a/src/main/java/com/gxwebsoft/tower/controller/TowerContractController.java
+++ b/src/main/java/com/gxwebsoft/tower/controller/TowerContractController.java
@@ -1,5 +1,9 @@
package com.gxwebsoft.tower.controller;
+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.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.Company;
@@ -13,13 +17,16 @@ import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
+import com.gxwebsoft.tower.service.TowerContractSettleEquipmentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
/**
* 合同存档控制器
@@ -33,6 +40,8 @@ import java.util.List;
public class TowerContractController extends BaseController {
@Resource
private TowerContractService towerContractService;
+ @Resource
+ private TowerContractSettleEquipmentService towerContractSettleEquipmentService;
@PreAuthorize("hasAuthority('tower:towerContract:list')")
@OperationLog
@@ -41,16 +50,15 @@ public class TowerContractController extends BaseController {
public ApiResult> page(TowerContractParam param) {
MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(TowerContract.class)
- .select(TowerProject::getProjectName)
.selectAs(TowerCustomer::getName, TowerContract::getCustomerName)
.selectAs(Company::getCompanyName, TowerContract::getCompanyName)
- .leftJoin(TowerProject.class, TowerProject::getProjectId, TowerContract::getProjectId)
.leftJoin(TowerCustomer.class, TowerCustomer::getCustomerId, TowerContract::getCustomerId)
.leftJoin(Company.class, Company::getCompanyId, TowerContract::getCompanyId);
-
PageParam page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
- return success(towerContractService.page(page, wrapper));
+ PageResult pageRes = towerContractService.pageRel(param);
+ return success(pageRes);
+// return success(towerContractService.page(page, wrapper));
// 使用关联查询
//return success(towerContractService.pageRel(param));
}
diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerContractEquipmentController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerContractEquipmentController.java
index 7b79350..0c9a12c 100644
--- a/src/main/java/com/gxwebsoft/tower/controller/TowerContractEquipmentController.java
+++ b/src/main/java/com/gxwebsoft/tower/controller/TowerContractEquipmentController.java
@@ -50,16 +50,18 @@ public class TowerContractEquipmentController extends BaseController {
@ApiOperation("查询全部合同设备清单")
@GetMapping()
public ApiResult> list(@RequestParam Map params) {
+ int contractId = Integer.parseInt(params.get("contractId"));
+
MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>();
- wrapper.selectAll(TowerContractEquipment.class)
+ wrapper.eq(TowerContractEquipment::getContractId, contractId)
+ .selectAll(TowerContractEquipment.class)
.selectAs(TowerEquipment::getName, TowerEquipment::getEquipmentName)
.select(TowerEquipment::getFactoryNo)
.select(TowerEquipment::getEquipmentNo)
.select(TowerEquipment::getFilingNo)
.leftJoin(TowerEquipment.class, TowerEquipment::getEquipmentId, TowerContractEquipment::getEquipmentId);
TowerContractEquipmentParam towerContractEquipmentParam = new TowerContractEquipmentParam();
- int contractId = Integer.parseInt(params.get("contractId"));
- towerContractEquipmentParam.setContractId(contractId);
+// towerContractEquipmentParam.setContractId(contractId);
PageParam page = new PageParam<>(towerContractEquipmentParam);
page.setDefaultOrder("create_time desc");
diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerCustomerController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerCustomerController.java
index c88432e..8dc413b 100644
--- a/src/main/java/com/gxwebsoft/tower/controller/TowerCustomerController.java
+++ b/src/main/java/com/gxwebsoft/tower/controller/TowerCustomerController.java
@@ -36,11 +36,11 @@ public class TowerCustomerController extends BaseController {
@ApiOperation("分页查询客户管理")
@GetMapping("/page")
public ApiResult> page(TowerCustomerParam param) {
- PageParam page = new PageParam<>(param);
- page.setDefaultOrder("create_time desc");
- return success(towerCustomerService.page(page, page.getWrapper()));
+// PageParam page = new PageParam<>(param);
+// page.setDefaultOrder("create_time desc");
+// return success(towerCustomerService.page(page, page.getWrapper()));
// 使用关联查询
- //return success(towerCustomerService.pageRel(param));
+ return success(towerCustomerService.pageRel(param));
}
@PreAuthorize("hasAuthority('tower:towerCustomer:list')")
diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java
index 0830015..1bfa842 100644
--- a/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java
+++ b/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java
@@ -1,21 +1,40 @@
package com.gxwebsoft.tower.controller;
+import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaQrcodeServiceImpl;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+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.gxwebsoft.common.core.annotation.OperationLog;
-import com.gxwebsoft.common.core.web.ApiResult;
-import com.gxwebsoft.common.core.web.BaseController;
-import com.gxwebsoft.common.core.web.BatchParam;
-import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.*;
import com.gxwebsoft.common.system.entity.User;
+import com.gxwebsoft.shop.controller.WxLoginController;
import com.gxwebsoft.tower.entity.TowerEquipment;
+import com.gxwebsoft.tower.entity.TowerProject;
+import com.gxwebsoft.tower.entity.TowerProjectOrder;
import com.gxwebsoft.tower.param.TowerEquipmentParam;
import com.gxwebsoft.tower.service.TowerEquipmentService;
+import com.gxwebsoft.tower.service.TowerProjectOrderService;
+import com.gxwebsoft.tower.service.TowerProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import java.util.List;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 塔吊设备管理控制器
@@ -29,14 +48,84 @@ import java.util.List;
public class TowerEquipmentController extends BaseController {
@Resource
private TowerEquipmentService towerEquipmentService;
+ @Resource
+ private TowerProjectService projectService;
+ @Resource
+ private TowerProjectOrderService projectOrderService;
+
+ @Value("${config.upload-path}")
+ private String uploadPath;
+
+ @PreAuthorize("hasAuthority('tower:towerEquipment:list')")
+ @OperationLog
+ @ApiOperation("塔吊设备数据")
+ @GetMapping("/data")
+ public ApiResult
+ GROUP BY a.user_id
diff --git a/src/main/java/com/gxwebsoft/tower/param/TowerEquipmentParam.java b/src/main/java/com/gxwebsoft/tower/param/TowerEquipmentParam.java
index b3df3fe..6fd421a 100644
--- a/src/main/java/com/gxwebsoft/tower/param/TowerEquipmentParam.java
+++ b/src/main/java/com/gxwebsoft/tower/param/TowerEquipmentParam.java
@@ -1,5 +1,6 @@
package com.gxwebsoft.tower.param;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
@@ -9,6 +10,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.util.List;
+
/**
* 塔吊设备管理查询参数
*
@@ -107,4 +110,21 @@ public class TowerEquipmentParam extends BaseParam {
@QueryField(type = QueryType.EQ)
private Integer deleted;
+ @ApiModelProperty(value = "是否仅显示未绑定项目设备")
+ @TableField(exist = false)
+ private Boolean idleOnly;
+
+ @ApiModelProperty(value = "是否仅显示未绑定项目设备")
+ @TableField(exist = false)
+ private List notInFilingNoList;
+
+ @TableField(exist = false)
+ private List equipmentIdList;
+
+ @TableField(exist = false)
+ private String keywords;
+
+ @TableField(exist = false)
+ private Integer yearFilter;
+
}
diff --git a/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java b/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java
index 46a8268..a88a9fe 100644
--- a/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java
+++ b/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java
@@ -125,4 +125,21 @@ public class TowerProjectParam extends BaseParam {
@TableField(exist = false)
private Set places2;
+
+ @ApiModelProperty(value = "派单类型")
+ @TableField(exist = false)
+ private Integer worksheetType;
+
+ @ApiModelProperty(value = "派单设备类型")
+ @TableField(exist = false)
+ private Integer worksheetEquipType;
+
+ @ApiModelProperty(value = "派单作业类型")
+ @TableField(exist = false)
+ private Integer worksheetWortType;
+
+ @ApiModelProperty("搜索关键字")
+ @TableField(exist = false)
+ private String keywords;
+
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 008bdde..69a4d3a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -19,5 +19,7 @@ logging:
# 框架配置
config:
# 开发环境接口
- server-url: http://127.0.0.1:9090/api
- upload-path: /Users/gxwebsoft/Documents/uploads/
+ server-url: http://localhost:10041/api
+ upload-path: /Users/liangxin/Project/JAVA/tower-java
+ file-server: http://localhost:10041
+
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index f464be9..18b5ab5 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -3,7 +3,7 @@
# 数据源配置
spring:
datasource:
- url: jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
+ url: jdbc:mysql://127.0.0.1:3318/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: tower
password: FXFZrhHbs3pma6Zh
driver-class-name: com.mysql.cj.jdbc.Driver
@@ -20,7 +20,8 @@ logging:
# 框架配置
config:
- # 生产环境接口
- server-url: http://1.14.159.185:10040
- upload-path: /www/wwwroot/file.ws/
+ # 开发环境接口
+ server-url: https://tower.gxwebsoft.com/api
+ upload-path: /www/wwwroot/api.tower.gxwebsoft.com/
+ file-server: https://tower.gxwebsoft.com
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 05b7705..4b9ca5f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,8 @@ server:
# 多环境配置
spring:
profiles:
- active: dev
+# active: dev
+ active: prod
application:
name: server
@@ -86,7 +87,13 @@ config:
swagger-version: 1.0
token-key: WLgNsWJ8rPjRtnjzX/Gx2RGS80Kwnm/ZeLbvIL+NrBs=
server-url: https://server.gxwebsoft.com/api
- file-server: https://file.wsdns.cn
- upload-path: /Users/gxwebsoft/Documents/uploads/
+ file-server: http://localhost:10041
+ upload-path: /Users/liangxin/Project/JAVA/tower-java/
local-upload-path: /Users/gxwebsoft/Documents/uploads/
+wx:
+ miniapp:
+ configs:
+ - appid: wx74f04ad0cdb862ef
+ secret: 4b31d6be04439f1b56042d9bfabd62d6
+ msgDataFormat: JSON
\ No newline at end of file
diff --git a/src/test/java/com/gxwebsoft/generator/TowerGenerator.java b/src/test/java/com/gxwebsoft/generator/TowerGenerator.java
index ac1058c..102f5a3 100644
--- a/src/test/java/com/gxwebsoft/generator/TowerGenerator.java
+++ b/src/test/java/com/gxwebsoft/generator/TowerGenerator.java
@@ -58,7 +58,15 @@ public class TowerGenerator {
// "tower_income",
// "tower_income_equipment",
// "tower_contract_final_settle",
- "tower_contract_final_settle_lost",
+// "tower_contract_final_settle_lost",
+// "tower_worksheet",
+// "tower_worksheet_check",
+// "tower_worksheet_detail",
+// "tower_worksheet_parts",
+// "tower_worksheet_set_up",
+// "tower_worksheet_audit",
+// "tower_worksheet_car_dispatch",
+ "tower_project_building",
};
// 需要去除的表前缀
private static final String[] TABLE_PREFIX = new String[]{
diff --git a/websoft-api.log b/websoft-api.log
index b9385cd..630e61d 100644
--- a/websoft-api.log
+++ b/websoft-api.log
@@ -1,357 +1,16 @@
-2023-02-26 07:33:25.706 WARN 55396 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production.
-2023-02-26 07:33:31.283 WARN 55396 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server
-2023-02-26 07:34:00.595 ERROR 55396 --- [http-nio-9090-exec-8] c.g.c.c.e.GlobalExceptionHandler : java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
-
-com.alipay.api.AlipayApiException: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
- at com.alipay.api.AbstractAlipayClient.readFileToString(AbstractAlipayClient.java:178) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.AbstractAlipayClient.(AbstractAlipayClient.java:127) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.DefaultAlipayClient.(DefaultAlipayClient.java:117) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.gxwebsoft.common.core.utils.AlipayConfigUtil.alipayClient(AlipayConfigUtil.java:56) ~[classes/:na]
- at com.gxwebsoft.common.system.controller.LoginAlipayController.getAuthCode(LoginAlipayController.java:133) ~[classes/:na]
- at com.gxwebsoft.common.system.controller.LoginAlipayController$$FastClassBySpringCGLIB$$cdae2167.invoke() ~[classes/:na]
- at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) ~[spring-aop-5.3.9.jar:5.3.9]
- at com.gxwebsoft.common.system.controller.LoginAlipayController$$EnhancerBySpringCGLIB$$f52e9ce6.getAuthCode() ~[classes/:na]
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322]
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322]
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322]
- at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322]
- at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.9.jar:5.3.9]
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [tomcat-embed-core-9.0.52.jar:4.0.FR]
- at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.9.jar:5.3.9]
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.52.jar:4.0.FR]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at com.gxwebsoft.common.core.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:82) [classes/:na]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at java.lang.Thread.run(Thread.java:750) [na:1.8.0_322]
-Caused by: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
- at com.alipay.api.internal.util.file.FileUtils.openInputStream(FileUtils.java:66) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.internal.util.file.FileUtils.readFileToString(FileUtils.java:34) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.internal.util.file.FileUtils.readFileToString(FileUtils.java:19) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.AbstractAlipayClient.readFileToString(AbstractAlipayClient.java:176) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- ... 105 common frames omitted
-
-2023-02-26 07:34:00.597 WARN 55396 --- [http-nio-9090-exec-8] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.alipay.api.AlipayApiException: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist]
-2023-02-26 07:35:51.863 WARN 55429 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production.
-2023-02-26 07:35:57.325 WARN 55429 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server
-2023-02-26 07:36:14.618 ERROR 55429 --- [http-nio-9090-exec-1] c.g.c.c.e.GlobalExceptionHandler : java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
-
-com.alipay.api.AlipayApiException: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
- at com.alipay.api.AbstractAlipayClient.readFileToString(AbstractAlipayClient.java:178) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.AbstractAlipayClient.(AbstractAlipayClient.java:127) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.DefaultAlipayClient.(DefaultAlipayClient.java:117) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.gxwebsoft.common.core.utils.AlipayConfigUtil.alipayClient(AlipayConfigUtil.java:62) ~[classes/:na]
- at com.gxwebsoft.common.system.controller.LoginAlipayController.getAuthCode(LoginAlipayController.java:133) ~[classes/:na]
- at com.gxwebsoft.common.system.controller.LoginAlipayController$$FastClassBySpringCGLIB$$cdae2167.invoke() ~[classes/:na]
- at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) ~[spring-aop-5.3.9.jar:5.3.9]
- at com.gxwebsoft.common.system.controller.LoginAlipayController$$EnhancerBySpringCGLIB$$a4162105.getAuthCode() ~[classes/:na]
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322]
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322]
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322]
- at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322]
- at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.9.jar:5.3.9]
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [tomcat-embed-core-9.0.52.jar:4.0.FR]
- at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.9.jar:5.3.9]
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.52.jar:4.0.FR]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at com.gxwebsoft.common.core.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:82) [classes/:na]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at java.lang.Thread.run(Thread.java:750) [na:1.8.0_322]
-Caused by: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
- at com.alipay.api.internal.util.file.FileUtils.openInputStream(FileUtils.java:66) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.internal.util.file.FileUtils.readFileToString(FileUtils.java:34) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.internal.util.file.FileUtils.readFileToString(FileUtils.java:19) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.AbstractAlipayClient.readFileToString(AbstractAlipayClient.java:176) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- ... 105 common frames omitted
-
-2023-02-26 07:36:14.635 WARN 55429 --- [http-nio-9090-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.alipay.api.AlipayApiException: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist]
-2023-02-26 07:39:18.143 WARN 55455 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production.
-2023-02-26 07:39:23.633 WARN 55455 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server
-2023-02-26 07:39:32.489 ERROR 55455 --- [http-nio-9090-exec-1] c.g.c.c.e.GlobalExceptionHandler : java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
-
-com.alipay.api.AlipayApiException: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
- at com.alipay.api.AbstractAlipayClient.readFileToString(AbstractAlipayClient.java:178) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.AbstractAlipayClient.(AbstractAlipayClient.java:127) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.DefaultAlipayClient.(DefaultAlipayClient.java:117) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.gxwebsoft.common.core.utils.AlipayConfigUtil.alipayClient(AlipayConfigUtil.java:62) ~[classes/:na]
- at com.gxwebsoft.common.system.controller.LoginAlipayController.getAuthCode(LoginAlipayController.java:133) ~[classes/:na]
- at com.gxwebsoft.common.system.controller.LoginAlipayController$$FastClassBySpringCGLIB$$cdae2167.invoke() ~[classes/:na]
- at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.9.jar:5.3.9]
- at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) ~[spring-aop-5.3.9.jar:5.3.9]
- at com.gxwebsoft.common.system.controller.LoginAlipayController$$EnhancerBySpringCGLIB$$1cf4b09f.getAuthCode() ~[classes/:na]
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322]
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322]
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322]
- at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322]
- at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.9.jar:5.3.9]
- at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.9.jar:5.3.9]
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [tomcat-embed-core-9.0.52.jar:4.0.FR]
- at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.9.jar:5.3.9]
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.52.jar:4.0.FR]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at com.gxwebsoft.common.core.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:82) [classes/:na]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) [spring-security-web-5.5.2.jar:5.5.2]
- at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.9.jar:5.3.9]
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.52.jar:9.0.52]
- at java.lang.Thread.run(Thread.java:750) [na:1.8.0_322]
-Caused by: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist
- at com.alipay.api.internal.util.file.FileUtils.openInputStream(FileUtils.java:66) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.internal.util.file.FileUtils.readFileToString(FileUtils.java:34) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.internal.util.file.FileUtils.readFileToString(FileUtils.java:19) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- at com.alipay.api.AbstractAlipayClient.readFileToString(AbstractAlipayClient.java:176) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
- ... 105 common frames omitted
-
-2023-02-26 07:39:32.505 WARN 55455 --- [http-nio-9090-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.alipay.api.AlipayApiException: java.io.FileNotFoundException: File '/www/wwwroot/file.ws/file/20230101/c62f937d8a304d0d9199315c252da868.crt' does not exist]
+2024-01-24 17:06:22.617 WARN 21561 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production.
+2024-01-24 17:08:48.354 WARN 21561 --- [http-nio-10041-exec-10] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 79374
+2024-01-24 17:08:48.383 WARN 21561 --- [http-nio-10041-exec-10] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 79853
+2024-01-24 17:08:48.410 WARN 21561 --- [http-nio-10041-exec-10] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 144908
+2024-01-24 17:08:48.437 WARN 21561 --- [http-nio-10041-exec-10] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 145248
+2024-01-24 17:08:48.462 WARN 21561 --- [http-nio-10041-exec-10] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 145591
+2024-01-24 17:13:14.173 WARN 21561 --- [http-nio-10041-exec-2] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 82853
+2024-01-24 17:13:14.214 WARN 21561 --- [http-nio-10041-exec-2] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 113691
+2024-01-24 17:17:04.843 WARN 21561 --- [http-nio-10041-exec-9] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 199004
+2024-01-24 17:17:04.867 WARN 21561 --- [http-nio-10041-exec-9] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 199350
+2024-01-24 17:20:08.704 WARN 21561 --- [http-nio-10041-exec-5] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 162243
+2024-01-24 17:20:08.706 WARN 21561 --- [http-nio-10041-exec-6] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 161954
+2024-01-24 17:31:54.903 WARN 21561 --- [http-nio-10041-exec-3] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 198209
+2024-01-24 17:31:54.929 WARN 21561 --- [http-nio-10041-exec-3] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 202974
+2024-01-24 17:31:54.955 WARN 21561 --- [http-nio-10041-exec-3] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://42.194.212.185:3308/tower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 203177
+2024-01-24 17:34:23.401 WARN 23077 --- [main] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production.