调整
This commit is contained in:
6
pom.xml
6
pom.xml
@@ -244,6 +244,12 @@
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!--微信小程序-->
|
||||
<dependency>
|
||||
<groupId>com.github.binarywang</groupId>
|
||||
<artifactId>weixin-java-miniapp</artifactId>
|
||||
<version>4.5.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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<String, Integer> 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<TowerWorksheet> 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<TowerWorksheet, TowerWorksheetParam> page = new PageParam<>(param);
|
||||
page.setDefaultOrder("update_time desc");
|
||||
IPage<TowerWorksheet> towerWorksheetIPage = towerWorksheetService.page(page, mpjLambdaWrapper);
|
||||
List<TowerWorksheet> 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<TowerWorksheetAudit>()
|
||||
.eq(TowerWorksheetAudit::getWorksheetId, towerWorksheet.getWorksheetId())
|
||||
.eq(TowerWorksheetAudit::getUserId, getLoginUserId())
|
||||
);
|
||||
if (audit != null) towerWorksheet.setNeedAudit(audit.getStatus().equals(0));
|
||||
}
|
||||
towerWorksheet.setHasCarDispatch(
|
||||
towerWorksheetCarDispatchService.count(
|
||||
new LambdaQueryWrapper<TowerWorksheetCarDispatch>()
|
||||
.eq(TowerWorksheetCarDispatch::getWorksheetId, towerWorksheet.getWorksheetId())
|
||||
) > 0
|
||||
);
|
||||
}
|
||||
IPage<TowerWorksheet> pages = new Page<>(param.getPage(), param.getLimit());
|
||||
pages.setRecords(towerWorksheets);
|
||||
pages.setTotal(towerWorksheetIPage.getTotal());
|
||||
return success(pages);
|
||||
}
|
||||
|
||||
@ApiOperation("派单详情")
|
||||
@PostMapping("/worksheet/info")
|
||||
public ApiResult<TowerWorksheet> worksheetInfo(@RequestBody TowerWorksheetParam param) {
|
||||
User user = getLoginUser();
|
||||
MPJLambdaWrapper<TowerWorksheet> 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<TowerWorksheetAudit>()
|
||||
.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<TowerWorksheetCheck> 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<TowerWorksheetDetail>()
|
||||
.eq(TowerWorksheetDetail::getWorksheetId, towerWorksheet.getWorksheetId())
|
||||
);
|
||||
// 拆卸单修改设备状态
|
||||
if (detail.getWorkType().equals(2)) {
|
||||
towerEquipmentService.update(
|
||||
new LambdaUpdateWrapper<TowerEquipment>()
|
||||
.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<TowerWorksheetCarDispatch>().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<String, ?> postBody) {
|
||||
Integer worksheetId = (Integer) postBody.get("worksheetId");
|
||||
// TowerWorksheet towerWorksheet1 = towerWorksheetService.getById(worksheetId);
|
||||
towerWorksheetCarDispatchService.remove(
|
||||
new LambdaQueryWrapper<TowerWorksheetCarDispatch>()
|
||||
.eq(TowerWorksheetCarDispatch::getWorksheetId, worksheetId)
|
||||
);
|
||||
List<TowerWorksheetCarDispatch> 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<TowerWorksheetCheck>()
|
||||
.eq(TowerWorksheetCheck::getWorksheetId, towerWorksheetCheck.getWorksheetId())
|
||||
.eq(TowerWorksheetCheck::getDeleted, 0)
|
||||
));
|
||||
}
|
||||
|
||||
@ApiOperation("派单核验")
|
||||
@PostMapping("/worksheet/check")
|
||||
public ApiResult<?> worksheetCheck(@RequestBody TowerWorksheetCheck towerWorksheetCheck) {
|
||||
towerWorksheetCheckService.remove(
|
||||
new LambdaQueryWrapper<TowerWorksheetCheck>()
|
||||
.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<String, ?> 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<TowerWorksheetDetail>()
|
||||
.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<TowerWorksheetDetail>()
|
||||
.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<TowerWorksheetAudit> 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<TowerEquipment>()
|
||||
.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<TowerWorksheetAudit>().eq(TowerWorksheetAudit::getWorksheetId, worksheetId)
|
||||
);
|
||||
towerWorksheetAuditService.saveBatch(auditList);
|
||||
}
|
||||
// 项目成员
|
||||
List<TowerProjectUser> 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<String, ?> 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> towerWorksheetParts = postBody.get("parts") != null ? JSON.parseArray(JSON.toJSONBytes(postBody.get("parts")), TowerWorksheetParts.class) : null;
|
||||
List<TowerWorksheetCarDispatch> 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<List<Category>> cateList(@RequestBody CategoryParam param) {
|
||||
List<Category> list = categoryService.listRel(param);
|
||||
for (Category category : list) {
|
||||
QueryWrapper<Category> 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<List<User>> productionManagerList(@RequestBody UserParam userParam) {
|
||||
userParam.setDeleted(0);
|
||||
System.out.println("userParam " + userParam);
|
||||
return success(userService.listRel(userParam));
|
||||
}
|
||||
|
||||
@ApiOperation("项目列表")
|
||||
@PostMapping("/project/list")
|
||||
public ApiResult<PageResult<TowerProject>> getProjectList(@RequestBody TowerProjectParam param) {
|
||||
param.setDeleted(0);
|
||||
PageResult<TowerProject> list = towerProjectService.pageRel(param);
|
||||
// 检查各种派单数量
|
||||
for (TowerProject towerProject : list.getList()) {
|
||||
Map<Integer, Integer> resList = new ArrayMap<>();
|
||||
QueryWrapper<TowerWorksheet> 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<TowerWorksheet> 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<TowerWorksheet> 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<TowerProjectOrder>()
|
||||
.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<List<TowerEquipment>> getEquipmentList(@RequestBody TowerEquipmentParam param) {
|
||||
return success(towerEquipmentService.listRel(param));
|
||||
}
|
||||
|
||||
@ApiOperation("审核详情")
|
||||
@PostMapping("/worksheet/audit-info")
|
||||
public ApiResult<TowerWorksheetAudit> worksheetAuditInfo(@RequestBody TowerWorksheetAuditParam param) {
|
||||
TowerWorksheetAudit towerWorksheetAudit = towerWorksheetAuditService.getOne(
|
||||
new LambdaQueryWrapper<TowerWorksheetAudit>()
|
||||
.eq(TowerWorksheetAudit::getWorksheetId, param.getWorksheetId())
|
||||
.eq(TowerWorksheetAudit::getUserId, getLoginUserId())
|
||||
);
|
||||
return success(towerWorksheetAudit);
|
||||
}
|
||||
|
||||
@ApiOperation("审核列表")
|
||||
@PostMapping("/worksheet/audit-list")
|
||||
public ApiResult<List<TowerWorksheetAudit>> worksheetAuditList(@RequestBody TowerWorksheetAuditParam param) {
|
||||
List<TowerWorksheetAudit> 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<TowerWorksheetAudit>()
|
||||
.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<TowerWorksheetAudit> auditList = towerWorksheetAuditService.list(
|
||||
new LambdaQueryWrapper<TowerWorksheetAudit>()
|
||||
.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<TowerWorksheetDetail>()
|
||||
.eq(TowerWorksheetDetail::getWorksheetId, towerWorksheetAudit.getWorksheetId())
|
||||
);
|
||||
towerEquipmentService.update(
|
||||
new LambdaUpdateWrapper<TowerEquipment>()
|
||||
.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<TowerWorksheet> queryWrapper = makeQueryWrapper(user, status, statusIsNeq);
|
||||
if (queryWrapper != null) return towerWorksheetService.count(queryWrapper);
|
||||
else return -1;
|
||||
}
|
||||
|
||||
private MPJLambdaWrapper<TowerWorksheet> makeQueryWrapper(User user, Integer status, boolean statusIsNeq) {
|
||||
MPJLambdaWrapper<TowerWorksheet> 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<TowerWorksheetDetail> 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<TowerWorksheetDetail>()
|
||||
.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<TowerEquipment>()
|
||||
.eq(TowerEquipment::getEquipmentId, towerWorksheetDetail.getEquipmentId())
|
||||
));
|
||||
|
||||
if (!towerWorksheetDetail.getWorkType().equals(0)) {
|
||||
MPJLambdaWrapper<TowerWorksheetDetail> 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<TowerWorksheetDetail> allDetail = towerWorksheetDetailService.list(
|
||||
new LambdaQueryWrapper<TowerWorksheetDetail>()
|
||||
.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<TowerWorksheetAudit> towerWorksheetAuditList = towerWorksheetAuditService.list(
|
||||
new LambdaQueryWrapper<TowerWorksheetAudit>().eq(TowerWorksheetAudit::getWorksheetId, towerWorksheet.getWorksheetId())
|
||||
);
|
||||
List<User> 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<TowerWorksheetCarDispatch>().eq(TowerWorksheetCarDispatch::getWorksheetId, towerWorksheet.getWorksheetId())
|
||||
));
|
||||
if (withAll) {
|
||||
List<TowerWorksheetParts> towerWorksheetParts = towerWorksheetPartsService.list(
|
||||
new MPJLambdaWrapper<TowerWorksheetParts>()
|
||||
.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<TowerWorksheetCheck>()
|
||||
.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<TowerWorksheetSetUp>()
|
||||
.eq(TowerWorksheetSetUp::getWorksheetId, towerWorksheet.getWorksheetId()));
|
||||
towerWorksheet.setSetUp(towerWorksheetSetUp);
|
||||
}
|
||||
// return towerWorksheet;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -77,8 +77,9 @@ public class MainController extends BaseController {
|
||||
public ApiResult<LoginResult> 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,7 +106,7 @@ public class MainController extends BaseController {
|
||||
// 设置过期时间
|
||||
Long tokenExpireTime = configProperties.getTokenExpireTime();
|
||||
final JSONObject register = cacheClient.getSettingInfo("register", tenantId);
|
||||
if(register != null){
|
||||
if (register != null) {
|
||||
System.out.println("register = " + register);
|
||||
final String ExpireTime = register.getString("tokenExpireTime");
|
||||
System.out.println("ExpireTime = " + ExpireTime);
|
||||
@@ -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("参数不能为空");
|
||||
@@ -191,9 +197,9 @@ public class MainController extends BaseController {
|
||||
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);
|
||||
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("短信验证码")
|
||||
@@ -219,10 +225,10 @@ public class MainController extends BaseController {
|
||||
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{
|
||||
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) {
|
||||
@@ -245,7 +251,7 @@ public class MainController extends BaseController {
|
||||
}
|
||||
// 短信验证码校验
|
||||
String code = cacheClient.get(user.getPhone(), String.class);
|
||||
if (!StrUtil.equals(code,user.getCode())) {
|
||||
if (!StrUtil.equals(code, user.getCode())) {
|
||||
return fail("验证码不正确");
|
||||
}
|
||||
|
||||
|
||||
@@ -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<PageResult<User>> page(UserParam param) {
|
||||
final PageResult<User> result = userService.pageRel(param);
|
||||
// 修复部门数据
|
||||
// result.getList().forEach(d -> {
|
||||
// System.out.println("d.getOrganizationName() = " + d.getOrganizationName());
|
||||
// final BcExport one = bcExportService.getOne(new LambdaQueryWrapper<BcExport>().eq(BcExport::getUserId, d.getUserId()));
|
||||
// one.setOrganizationName(d.getOrganizationName());
|
||||
// bcExportService.updateById(one);
|
||||
// });
|
||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(User::getDeleted, 0);
|
||||
return success(userService.pageRel(param));
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
) d ON a.user_id = d.user_id
|
||||
LEFT JOIN sys_tenant e ON a.tenant_id = e.tenant_id
|
||||
<where>
|
||||
AND a.deleted = 0
|
||||
<if test="param.userId != null">
|
||||
AND a.user_id = #{param.userId}
|
||||
</if>
|
||||
@@ -74,6 +75,10 @@
|
||||
<if test="param.birthday != null">
|
||||
AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%')
|
||||
</if>
|
||||
<if test="param.userLevel != null">
|
||||
AND a.user_level = #{param.userLevel}
|
||||
</if>
|
||||
</where>
|
||||
<if test="param.organizationId != null">
|
||||
AND a.organization_id = #{param.organizationId}
|
||||
</if>
|
||||
@@ -92,12 +97,12 @@
|
||||
<if test="param.createTimeEnd != null">
|
||||
AND a.create_time <= #{param.createTimeEnd}
|
||||
</if>
|
||||
<if test="param.deleted != null">
|
||||
AND a.deleted = #{param.deleted}
|
||||
</if>
|
||||
<if test="param.deleted == null">
|
||||
AND a.deleted = 0
|
||||
</if>
|
||||
<!-- <if test="param.deleted != null">-->
|
||||
<!-- AND a.deleted = #{param.deleted}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="param.deleted == null">-->
|
||||
<!-- AND a.deleted = 0-->
|
||||
<!-- </if>-->
|
||||
<if test="param.roleId != null">
|
||||
AND a.user_id IN (SELECT user_id FROM sys_user_role WHERE role_id=#{param.roleId})
|
||||
</if>
|
||||
@@ -138,7 +143,6 @@
|
||||
<if test="param.parentId != null">
|
||||
AND a.organization_id IN (SELECT organization_id FROM sys_organization WHERE parent_id=#{param.parentId})
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<!-- 分页查询 -->
|
||||
|
||||
@@ -31,4 +31,7 @@ public class LoginParam implements Serializable {
|
||||
@ApiModelProperty(value = "租户id")
|
||||
private Integer tenantId;
|
||||
|
||||
@ApiModelProperty(value = "是否小程序")
|
||||
private Integer isMiniApp;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
43
src/main/java/com/gxwebsoft/shop/config/WxMaProperties.java
Normal file
43
src/main/java/com/gxwebsoft/shop/config/WxMaProperties.java
Normal file
@@ -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<Config> 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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -51,11 +51,13 @@ public class CategoryController extends BaseController {
|
||||
@ApiOperation("查询全部商品分类表")
|
||||
@GetMapping()
|
||||
public ApiResult<List<Category>> list(CategoryParam param) {
|
||||
System.out.println("====== param ======");
|
||||
System.out.println(param);
|
||||
PageParam<Category, CategoryParam> page = new PageParam<>(param);
|
||||
// page.setDefaultOrder("create_time desc");
|
||||
QueryWrapper<Category> 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));
|
||||
|
||||
@@ -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<WxMaProperties.Config> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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<Category> children;
|
||||
//
|
||||
// @ApiModelProperty(value = "配件名称")
|
||||
// @TableField(exist = false)
|
||||
// private LocalDateTime partsTitle;
|
||||
//
|
||||
// @ApiModelProperty(value = "父类配件名称")
|
||||
// @TableField(exist = false)
|
||||
// private LocalDateTime parentPartsTitle;
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
AND a.category_id = #{param.categoryId}
|
||||
</if>
|
||||
<if test="param.title != null">
|
||||
AND a.name LIKE CONCAT('%', #{param.name}, '%')
|
||||
AND a.title LIKE CONCAT('%', #{param.title}, '%')
|
||||
</if>
|
||||
<if test="param.parentId != null">
|
||||
AND a.parent_id = #{param.parentId}
|
||||
|
||||
@@ -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<PageResult<TowerContract>> page(TowerContractParam param) {
|
||||
MPJLambdaWrapper<TowerContract> 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<TowerContract, TowerContractParam> page = new PageParam<>(param);
|
||||
page.setDefaultOrder("create_time desc");
|
||||
return success(towerContractService.page(page, wrapper));
|
||||
PageResult<TowerContract> pageRes = towerContractService.pageRel(param);
|
||||
return success(pageRes);
|
||||
// return success(towerContractService.page(page, wrapper));
|
||||
// 使用关联查询
|
||||
//return success(towerContractService.pageRel(param));
|
||||
}
|
||||
|
||||
@@ -50,16 +50,18 @@ public class TowerContractEquipmentController extends BaseController {
|
||||
@ApiOperation("查询全部合同设备清单")
|
||||
@GetMapping()
|
||||
public ApiResult<List<TowerContractEquipment>> list(@RequestParam Map<String, String> params) {
|
||||
int contractId = Integer.parseInt(params.get("contractId"));
|
||||
|
||||
MPJLambdaWrapper<TowerContractEquipment> 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<TowerContractEquipment, TowerContractEquipmentParam> page = new PageParam<>(towerContractEquipmentParam);
|
||||
page.setDefaultOrder("create_time desc");
|
||||
|
||||
@@ -36,11 +36,11 @@ public class TowerCustomerController extends BaseController {
|
||||
@ApiOperation("分页查询客户管理")
|
||||
@GetMapping("/page")
|
||||
public ApiResult<PageResult<TowerCustomer>> page(TowerCustomerParam param) {
|
||||
PageParam<TowerCustomer, TowerCustomerParam> page = new PageParam<>(param);
|
||||
page.setDefaultOrder("create_time desc");
|
||||
return success(towerCustomerService.page(page, page.getWrapper()));
|
||||
// PageParam<TowerCustomer, TowerCustomerParam> 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')")
|
||||
|
||||
@@ -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<Map<String, Integer>> data() {
|
||||
Map<String, Integer> data = new HashMap<>();
|
||||
Integer totalNum = towerEquipmentService.count(
|
||||
new LambdaQueryWrapper<TowerEquipment>()
|
||||
.ne(TowerEquipment::getStatus, 3)
|
||||
);
|
||||
Integer idleNum = towerEquipmentService.count(
|
||||
new LambdaQueryWrapper<TowerEquipment>()
|
||||
.eq(TowerEquipment::getStatus, 0)
|
||||
);
|
||||
Integer scrapNum = towerEquipmentService.count(
|
||||
new LambdaQueryWrapper<TowerEquipment>()
|
||||
.lt(TowerEquipment::getScrapDate, new Date())
|
||||
);
|
||||
data.put("totalNum", totalNum);
|
||||
data.put("idleNum", idleNum);
|
||||
data.put("scrapNum", scrapNum);
|
||||
return success(data);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerEquipment:list')")
|
||||
@OperationLog
|
||||
@ApiOperation("分页查询塔吊设备管理")
|
||||
@GetMapping("/page")
|
||||
public ApiResult<PageResult<TowerEquipment>> page(TowerEquipmentParam param) {
|
||||
System.out.println("param.getYearFilter(): " + param.getYearFilter());
|
||||
List<Integer> equipmentIdList = new ArrayList<>();
|
||||
if (param.getIdleOnly() != null && param.getIdleOnly()) {
|
||||
// 不在未结案项目的设备列表
|
||||
equipmentIdList = towerEquipmentService.list(
|
||||
new LambdaQueryWrapper<TowerEquipment>()
|
||||
.ne(TowerEquipment::getStatus, 4)
|
||||
).stream().map(TowerEquipment::getEquipmentId).collect(Collectors.toList());
|
||||
}
|
||||
// 使用关联查询
|
||||
return success(towerEquipmentService.pageRel(param));
|
||||
LambdaQueryWrapper<TowerEquipment> wrapper = new LambdaQueryWrapper<>();
|
||||
if (!equipmentIdList.isEmpty()) wrapper.in(TowerEquipment::getEquipmentId, equipmentIdList);
|
||||
if (param.getKeywords() != null) {
|
||||
wrapper.and(i -> i.like(TowerEquipment::getFilingNo, param.getKeywords()).or()
|
||||
.like(TowerEquipment::getModel, param.getKeywords()).or()
|
||||
.like(TowerEquipment::getName, param.getKeywords()).or()
|
||||
.like(TowerEquipment::getFactoryNo, param.getKeywords()));
|
||||
}
|
||||
if (param.getYearFilter() != null)
|
||||
wrapper.apply("CEIL( DATEDIFF(`scrap_date`, '" + DateUtil.today() + "') / 365) = {0}", param.getYearFilter());
|
||||
if (param.getStatus() != null) wrapper.eq(TowerEquipment::getStatus, param.getStatus());
|
||||
IPage<TowerEquipment> page = new PageParam<>(param);
|
||||
IPage<TowerEquipment> list = towerEquipmentService.page(page, wrapper);
|
||||
for (TowerEquipment equipment : list.getRecords()) {
|
||||
// System.out.println("equipment item" + equipment);
|
||||
List<TowerProjectOrder> projectOrderList = projectOrderService.list(
|
||||
new LambdaQueryWrapper<TowerProjectOrder>()
|
||||
.eq(TowerProjectOrder::getFilingNo, equipment.getFilingNo())
|
||||
);
|
||||
if (!projectOrderList.isEmpty()) {
|
||||
equipment.setProjectList(
|
||||
projectService.list(
|
||||
new LambdaQueryWrapper<TowerProject>()
|
||||
.in(TowerProject::getProjectId,
|
||||
projectOrderList.stream().map(TowerProjectOrder::getProjectId).collect(Collectors.toList())
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerEquipment:list')")
|
||||
@@ -100,6 +189,44 @@ public class TowerEquipmentController extends BaseController {
|
||||
@ApiOperation("批量添加塔吊设备管理")
|
||||
@PostMapping("/batch")
|
||||
public ApiResult<?> saveBatch(@RequestBody List<TowerEquipment> list) {
|
||||
// for (TowerEquipment equipment : list) {
|
||||
// if (equipment.getProjectName() != null) {
|
||||
// TowerProject checkProject = projectService.getOne(
|
||||
// new LambdaQueryWrapper<TowerProject>().eq(TowerProject::getProjectName, equipment.getProjectName())
|
||||
// );
|
||||
// if (checkProject == null) {
|
||||
// TowerProject newProject = new TowerProject();
|
||||
// newProject.setProjectName(equipment.getProjectName());
|
||||
// newProject.setProjectCity(equipment.getCurrentLocation());
|
||||
// newProject.setCompetentDepartment(equipment.getCompetentDepartment());
|
||||
// projectService.save(newProject);
|
||||
//
|
||||
// TowerProjectOrder newProjectOrder = new TowerProjectOrder();
|
||||
// newProjectOrder.setProjectId(newProjectOrder.getProjectId());
|
||||
// newProjectOrder.setEquipmentName(equipment.getEquipmentName());
|
||||
// newProjectOrder.setEquipmentModel(equipment.getEquipmentModel());
|
||||
// newProjectOrder.setFilingNo(equipment.getFilingNo());
|
||||
// newProjectOrder.setFactoryNo(equipment.getFactoryNo());
|
||||
// newProjectOrder.setSecurityStatus(equipment.getSecurityStatus());
|
||||
// projectOrderService.save(newProjectOrder);
|
||||
// } else {
|
||||
// int checkProjectOrder = projectOrderService.count(
|
||||
// new LambdaQueryWrapper<TowerProjectOrder>().eq(TowerProjectOrder::getProjectId, checkProject.getProjectId())
|
||||
// .eq(TowerProjectOrder::getFilingNo, equipment.getFilingNo())
|
||||
// );
|
||||
// if (checkProjectOrder == 0) {
|
||||
// TowerProjectOrder newProjectOrder = new TowerProjectOrder();
|
||||
// newProjectOrder.setProjectId(newProjectOrder.getProjectId());
|
||||
// newProjectOrder.setEquipmentName(equipment.getEquipmentName());
|
||||
// newProjectOrder.setEquipmentModel(equipment.getEquipmentModel());
|
||||
// newProjectOrder.setFilingNo(equipment.getFilingNo());
|
||||
// newProjectOrder.setFactoryNo(equipment.getFactoryNo());
|
||||
// newProjectOrder.setSecurityStatus(equipment.getSecurityStatus());
|
||||
// projectOrderService.save(newProjectOrder);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
if (towerEquipmentService.saveBatch(list)) {
|
||||
return success("添加成功");
|
||||
}
|
||||
@@ -138,4 +265,58 @@ public class TowerEquipmentController extends BaseController {
|
||||
}
|
||||
return fail("修改失败");
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerEquipment:list')")
|
||||
@OperationLog
|
||||
@ApiOperation("设备信息二维码")
|
||||
@GetMapping("/qr")
|
||||
public ApiResult<?> qr(TowerEquipmentParam equipmentParam) throws IOException, WxErrorException {
|
||||
// WxLoginController wxLoginController = new WxLoginController();
|
||||
// String apiUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + wxLoginController.getAccessToken();
|
||||
// JSONObject paramJson = new JSONObject();
|
||||
// paramJson.put("path", "otherPages/pages/equipment");
|
||||
// paramJson.put("scene",towerEquipmentParam.getEquipmentId());
|
||||
// URL url = new URL(apiUrl);
|
||||
// HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
|
||||
// httpURLConnection.setRequestMethod("POST");// 提交模式
|
||||
// // 发送POST请求必须设置如下两行
|
||||
// httpURLConnection.setDoOutput(true);
|
||||
// httpURLConnection.setDoInput(true);
|
||||
// PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
|
||||
// printWriter.write(paramJson.toString());
|
||||
// // flush输出流的缓冲
|
||||
// printWriter.flush();
|
||||
// //开始获取数据
|
||||
// BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
|
||||
// OutputStream os = new FileOutputStream(new File(savePath));
|
||||
// int len;
|
||||
// byte[] arr = new byte[1024];
|
||||
// while ((len = bis.read(arr)) != -1)
|
||||
// {
|
||||
// os.write(arr, 0, len);
|
||||
// os.flush();
|
||||
// }
|
||||
// os.close();
|
||||
// // 执行post请求
|
||||
// Map<String, Object> paramMap = new HashMap<>();
|
||||
// paramMap.put("path", "otherPages/pages/equipment");
|
||||
// paramMap.put("scene", equipmentParam.getEquipmentId());
|
||||
// String post = HttpUtil.post(apiUrl, JSON.toJSONString(paramMap));
|
||||
// JSONObject json = JSON.parseObject(post);
|
||||
// return success(json);
|
||||
// if (json.get("errcode").equals(0)) {
|
||||
// }
|
||||
// return null;
|
||||
String filepath = uploadPath + "qr";
|
||||
String filename = filepath + "/" + getLoginUserId().toString() + ".png";
|
||||
File checkFile = new File(filename);
|
||||
if (!checkFile.exists()) {
|
||||
WxLoginController wxLoginController = new WxLoginController();
|
||||
WxMaService wxMaService = wxLoginController.wxMaService();
|
||||
WxMaQrcodeService wxMaQrcodeService = new WxMaQrcodeServiceImpl(wxMaService);
|
||||
wxMaQrcodeService.createWxaCodeUnlimit(equipmentParam.getEquipmentId().toString(), "otherPages/pages/equipment", uploadPath);
|
||||
}
|
||||
return success(filename);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ public class TowerFallController extends BaseController {
|
||||
@GetMapping("/page")
|
||||
public ApiResult<PageResult<TowerFall>> page(TowerFallParam param) {
|
||||
PageParam<TowerFall, TowerFallParam> page = new PageParam<>(param);
|
||||
page.setDefaultOrder("create_time desc");
|
||||
// return success(towerFallService.page(page, page.getWrapper()));
|
||||
page.setDefaultOrder("factory_date desc");
|
||||
return success(towerFallService.page(page, page.getWrapper()));
|
||||
// 使用关联查询
|
||||
return success(towerFallService.pageRel(param));
|
||||
// return success(towerFallService.pageRel(param));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerFall:list')")
|
||||
@@ -49,10 +49,10 @@ public class TowerFallController extends BaseController {
|
||||
@GetMapping()
|
||||
public ApiResult<List<TowerFall>> list(TowerFallParam param) {
|
||||
PageParam<TowerFall, TowerFallParam> page = new PageParam<>(param);
|
||||
page.setDefaultOrder("create_time desc");
|
||||
// return success(towerFallService.list(page.getOrderWrapper()));
|
||||
page.setDefaultOrder("factory_date desc");
|
||||
return success(towerFallService.list(page.getOrderWrapper()));
|
||||
// 使用关联查询
|
||||
return success(towerFallService.listRel(param));
|
||||
// return success(towerFallService.listRel(param));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerFall:list')")
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
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.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
@@ -22,6 +23,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -97,10 +100,7 @@ public class TowerIncomeController extends BaseController {
|
||||
towerIncome.setUserId(loginUser.getUserId());
|
||||
}
|
||||
if (towerIncomeService.save(towerIncome)) {
|
||||
LambdaUpdateWrapper<TowerContract> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(TowerContract::getContractId, towerIncome.getIncomeId())
|
||||
.setSql("`total_income_amount` = `total_income_amount` + " + towerIncome.getAmount());
|
||||
towerContractService.update(null, updateWrapper);
|
||||
reCalIncome(towerIncome.getContractId());
|
||||
return success(towerIncome.getIncomeId());
|
||||
}
|
||||
return fail("添加失败");
|
||||
@@ -111,15 +111,8 @@ public class TowerIncomeController extends BaseController {
|
||||
@ApiOperation("修改收款管理")
|
||||
@PutMapping()
|
||||
public ApiResult<?> update(@RequestBody TowerIncome towerIncome) {
|
||||
QueryWrapper<TowerIncome> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("sum(`amount`) as `total_income_amount`");
|
||||
TowerIncome towerIncomeAll = towerIncomeService.getOne(queryWrapper);
|
||||
|
||||
LambdaUpdateWrapper<TowerContract> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(TowerContract::getContractId, towerIncome.getIncomeId())
|
||||
.set(TowerContract::getTotalIncomeAmount, towerIncomeAll.getTotalIncomeAmount());
|
||||
towerContractService.update(null, updateWrapper);
|
||||
if (towerIncomeService.updateById(towerIncome)) {
|
||||
reCalIncome(towerIncome.getContractId());
|
||||
return success(towerIncome.getIncomeId());
|
||||
}
|
||||
return fail("修改失败");
|
||||
@@ -130,7 +123,9 @@ public class TowerIncomeController extends BaseController {
|
||||
@ApiOperation("删除收款管理")
|
||||
@DeleteMapping("/{id}")
|
||||
public ApiResult<?> remove(@PathVariable("id") Integer id) {
|
||||
int contractId = towerIncomeService.getById(id).getContractId();
|
||||
if (towerIncomeService.removeById(id)) {
|
||||
reCalIncome(contractId);
|
||||
return success("删除成功");
|
||||
}
|
||||
return fail("删除失败");
|
||||
@@ -163,10 +158,38 @@ public class TowerIncomeController extends BaseController {
|
||||
@ApiOperation("批量删除收款管理")
|
||||
@DeleteMapping("/batch")
|
||||
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
|
||||
List<Integer> contractIdList = new ArrayList<>();
|
||||
for (int id : ids) {
|
||||
int contractId = towerIncomeService.getById(id).getContractId();
|
||||
if (!contractIdList.contains(contractId)) {
|
||||
contractIdList.add(contractId);
|
||||
}
|
||||
}
|
||||
if (towerIncomeService.removeByIds(ids)) {
|
||||
for (int contractId : contractIdList) {
|
||||
this.reCalIncome(contractId);
|
||||
}
|
||||
return success("删除成功");
|
||||
}
|
||||
return fail("删除失败");
|
||||
}
|
||||
|
||||
private void reCalIncome(int contractId) {
|
||||
QueryWrapper<TowerIncome> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("contract_id", contractId)
|
||||
.select("sum(`amount`) as `total_income_amount`");
|
||||
TowerIncome towerIncomeAll = towerIncomeService.getOne(queryWrapper);
|
||||
|
||||
LambdaUpdateWrapper<TowerContract> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
BigDecimal totalIncomeAmount;
|
||||
if (towerIncomeAll != null) {
|
||||
totalIncomeAmount = towerIncomeAll.getTotalIncomeAmount();
|
||||
} else {
|
||||
totalIncomeAmount = BigDecimal.valueOf(0);
|
||||
}
|
||||
updateWrapper.eq(TowerContract::getContractId, contractId)
|
||||
.set(TowerContract::getTotalIncomeAmount, totalIncomeAmount);
|
||||
towerContractService.update(updateWrapper);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
package com.gxwebsoft.tower.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
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.system.entity.User;
|
||||
import com.gxwebsoft.tower.entity.TowerProject;
|
||||
import com.gxwebsoft.tower.entity.TowerProjectOrder;
|
||||
import com.gxwebsoft.tower.entity.TowerProjectPlace;
|
||||
import com.gxwebsoft.tower.entity.TowerProjectUser;
|
||||
import com.gxwebsoft.common.system.service.UserService;
|
||||
import com.gxwebsoft.tower.entity.*;
|
||||
import com.gxwebsoft.tower.param.TowerProjectParam;
|
||||
import com.gxwebsoft.tower.service.TowerProjectOrderService;
|
||||
import com.gxwebsoft.tower.service.TowerProjectPlaceService;
|
||||
import com.gxwebsoft.tower.service.TowerProjectService;
|
||||
import com.gxwebsoft.tower.service.TowerProjectUserService;
|
||||
import com.gxwebsoft.tower.service.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -22,8 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 项目管理控制器
|
||||
@@ -43,13 +40,51 @@ public class TowerProjectController extends BaseController {
|
||||
private TowerProjectUserService towerProjectUserService;
|
||||
@Resource
|
||||
private TowerProjectPlaceService towerProjectPlaceService;
|
||||
@Resource
|
||||
private TowerEquipmentService equipmentService;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerEquipment:list')")
|
||||
@OperationLog
|
||||
@ApiOperation("项目数据")
|
||||
@GetMapping("/data")
|
||||
public ApiResult<Map<String, Integer>> data() {
|
||||
Map<String, Integer> data = new HashMap<>();
|
||||
Integer totalNum = towerProjectService.count();
|
||||
Integer startedNum = towerProjectService.count(
|
||||
new LambdaQueryWrapper<TowerProject>()
|
||||
.eq(TowerProject::getProjectStatus, "建设中")
|
||||
);
|
||||
Integer notStartNum = towerProjectService.count(
|
||||
new LambdaQueryWrapper<TowerProject>()
|
||||
.eq(TowerProject::getProjectStatus, "未开工")
|
||||
);
|
||||
data.put("totalNum", totalNum);
|
||||
data.put("startedNum", startedNum);
|
||||
data.put("notStartNum", notStartNum);
|
||||
return success(data);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerProject:list')")
|
||||
@ApiOperation("分页查询项目管理")
|
||||
@GetMapping("/page")
|
||||
public ApiResult<PageResult<TowerProject>> page(TowerProjectParam param) {
|
||||
// 使用关联查询
|
||||
return success(towerProjectService.pageRel(param));
|
||||
PageResult<TowerProject> list = towerProjectService.pageRel(param);
|
||||
for (TowerProject project : list.getList()) {
|
||||
project.setEquipmentNum(towerProjectOrderService.count(
|
||||
new LambdaQueryWrapper<TowerProjectOrder>()
|
||||
.eq(TowerProjectOrder::getProjectId, project.getProjectId())
|
||||
));
|
||||
project.setOrders(
|
||||
new HashSet<>(towerProjectOrderService.list(
|
||||
new LambdaQueryWrapper<TowerProjectOrder>().eq(TowerProjectOrder::getProjectId, project.getProjectId())
|
||||
))
|
||||
);
|
||||
if (!project.getDirector().equals("0")) project.setDirectorUser(userService.getById(project.getDirector()));
|
||||
}
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerProject:list')")
|
||||
@@ -68,6 +103,18 @@ public class TowerProjectController extends BaseController {
|
||||
return success(towerProjectService.getByIdRel(id));
|
||||
}
|
||||
|
||||
@ApiOperation("添加项目管理")
|
||||
@PostMapping("/new")
|
||||
public ApiResult<?> newProject(@RequestBody TowerProject towerProject) {
|
||||
// 记录当前登录用户id
|
||||
User loginUser = getLoginUser();
|
||||
if (loginUser != null) {
|
||||
towerProject.setUserId(loginUser.getUserId());
|
||||
}
|
||||
towerProjectService.save(towerProject);
|
||||
return success(towerProject);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerProject:save')")
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@ApiOperation("添加项目管理")
|
||||
@@ -84,7 +131,7 @@ public class TowerProjectController extends BaseController {
|
||||
// 批量添加项目成员
|
||||
if (!towerProject.getUsers().isEmpty()) {
|
||||
final Set<TowerProjectUser> users = towerProject.getUsers();
|
||||
users.forEach(d->{
|
||||
users.forEach(d -> {
|
||||
d.setProjectId(projectId);
|
||||
});
|
||||
towerProjectUserService.saveBatch(users);
|
||||
@@ -92,7 +139,7 @@ public class TowerProjectController extends BaseController {
|
||||
// 批量添加项目订单
|
||||
if (!towerProject.getOrders().isEmpty()) {
|
||||
final Set<TowerProjectOrder> orders = towerProject.getOrders();
|
||||
orders.forEach(d->{
|
||||
orders.forEach(d -> {
|
||||
d.setProjectId(projectId);
|
||||
});
|
||||
towerProjectOrderService.saveBatch(orders);
|
||||
@@ -100,7 +147,7 @@ public class TowerProjectController extends BaseController {
|
||||
// 批量添加检查部位配置
|
||||
if (!towerProject.getPlaces1().isEmpty()) {
|
||||
final Set<TowerProjectPlace> places1 = towerProject.getPlaces1();
|
||||
places1.forEach(d->{
|
||||
places1.forEach(d -> {
|
||||
d.setProjectId(projectId);
|
||||
});
|
||||
towerProjectPlaceService.saveBatch(places1);
|
||||
@@ -108,7 +155,7 @@ public class TowerProjectController extends BaseController {
|
||||
// 批量添加保养部位配置
|
||||
if (!towerProject.getPlaces2().isEmpty()) {
|
||||
final Set<TowerProjectPlace> places2 = towerProject.getPlaces2();
|
||||
places2.forEach(d->{
|
||||
places2.forEach(d -> {
|
||||
d.setProjectId(projectId);
|
||||
});
|
||||
towerProjectPlaceService.saveBatch(places2);
|
||||
@@ -127,7 +174,25 @@ public class TowerProjectController extends BaseController {
|
||||
// 批量修改项目成员
|
||||
towerProjectUserService.saveOrUpdateBatch(towerProject.getUsers());
|
||||
// 批量修改项目订单
|
||||
towerProjectOrderService.saveOrUpdateBatch(towerProject.getOrders());
|
||||
Set<TowerProjectOrder> projectOrders = towerProject.getOrders();
|
||||
if (towerProject.getProjectStatus().equals("建设中")) {
|
||||
for (TowerProjectOrder order : projectOrders) {
|
||||
equipmentService.update(
|
||||
new LambdaUpdateWrapper<TowerEquipment>()
|
||||
.eq(TowerEquipment::getFilingNo, order.getFilingNo())
|
||||
.set(TowerEquipment::getStatus, 4)
|
||||
);
|
||||
}
|
||||
} else if (towerProject.getProjectStatus().equals("完工")) {
|
||||
for (TowerProjectOrder order : projectOrders) {
|
||||
equipmentService.update(
|
||||
new LambdaUpdateWrapper<TowerEquipment>()
|
||||
.eq(TowerEquipment::getFilingNo, order.getFilingNo())
|
||||
.set(TowerEquipment::getStatus, 0)
|
||||
);
|
||||
}
|
||||
}
|
||||
towerProjectOrderService.saveOrUpdateBatch(projectOrders);
|
||||
// 批量修改检查/保养部位配置
|
||||
towerProjectPlaceService.saveOrUpdateBatch(towerProject.getPlaces1());
|
||||
towerProjectPlaceService.saveOrUpdateBatch(towerProject.getPlaces2());
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.gxwebsoft.tower.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.system.service.UserService;
|
||||
import com.gxwebsoft.tower.entity.TowerProjectUser;
|
||||
import com.gxwebsoft.tower.param.TowerProjectUserParam;
|
||||
import com.gxwebsoft.tower.service.TowerProjectUserService;
|
||||
@@ -29,14 +31,19 @@ import java.util.List;
|
||||
public class TowerProjectUserController extends BaseController {
|
||||
@Resource
|
||||
private TowerProjectUserService towerProjectUserService;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerProjectUser:list')")
|
||||
@OperationLog
|
||||
@ApiOperation("分页查询项目成员")
|
||||
@GetMapping("/page")
|
||||
public ApiResult<PageResult<TowerProjectUser>> page(TowerProjectUserParam param) {
|
||||
// 使用关联查询
|
||||
return success(towerProjectUserService.pageRel(param));
|
||||
PageResult<TowerProjectUser> list = towerProjectUserService.pageRel(param);
|
||||
for(TowerProjectUser projectUser: list.getList() ){
|
||||
projectUser.setUser(userService.getById(projectUser.getUserId()));
|
||||
}
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerProjectUser:list')")
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
package com.gxwebsoft.tower.controller;
|
||||
|
||||
import com.alipay.api.domain.AlipayCommerceLogisticsWaybillIstddetailQueryModel;
|
||||
import com.alipay.api.domain.Contract;
|
||||
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.gxwebsoft.common.core.web.BaseController;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import com.gxwebsoft.tower.entity.TowerContract;
|
||||
import com.gxwebsoft.tower.entity.TowerSettle;
|
||||
import com.gxwebsoft.tower.service.TowerContractService;
|
||||
import com.gxwebsoft.tower.service.TowerContractSettleEquipmentService;
|
||||
import com.gxwebsoft.tower.service.TowerSettleDetailService;
|
||||
import com.gxwebsoft.tower.entity.TowerSettleDetail;
|
||||
import com.gxwebsoft.tower.param.TowerSettleDetailParam;
|
||||
@@ -11,12 +19,15 @@ 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.TowerSettleService;
|
||||
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.math.RoundingMode;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -31,6 +42,10 @@ import java.util.List;
|
||||
public class TowerSettleDetailController extends BaseController {
|
||||
@Resource
|
||||
private TowerSettleDetailService towerSettleDetailService;
|
||||
@Resource
|
||||
private TowerContractService towerContractService;
|
||||
@Resource
|
||||
private TowerSettleService towerSettleService;
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerSettle:list')")
|
||||
@OperationLog
|
||||
@@ -109,9 +124,13 @@ public class TowerSettleDetailController extends BaseController {
|
||||
@ApiOperation("批量添加合同结算详情")
|
||||
@PostMapping("/batch")
|
||||
public ApiResult<?> saveBatch(@RequestBody List<TowerSettleDetail> list) {
|
||||
QueryWrapper<TowerSettleDetail> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("settle_id", list.get(0).getSettleId());
|
||||
Integer settleId = list.get(0).getSettleId();
|
||||
LambdaUpdateWrapper<TowerSettleDetail> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
lambdaUpdateWrapper.eq(TowerSettleDetail::getSettleId, settleId)
|
||||
.set(TowerSettleDetail::getDeleted, 1);
|
||||
towerSettleDetailService.update(lambdaUpdateWrapper);
|
||||
if (towerSettleDetailService.saveBatch(list)) {
|
||||
setSettleAmount(settleId);
|
||||
return success("添加成功");
|
||||
}
|
||||
return fail("添加失败");
|
||||
@@ -128,6 +147,31 @@ public class TowerSettleDetailController extends BaseController {
|
||||
return fail("修改失败");
|
||||
}
|
||||
|
||||
private void setSettleAmount(Integer settleId) {
|
||||
List<TowerSettleDetail> list = towerSettleDetailService.list(
|
||||
new LambdaQueryWrapper<TowerSettleDetail>().eq(TowerSettleDetail::getSettleId, settleId)
|
||||
);
|
||||
BigDecimal totalSettleAmount = BigDecimal.valueOf(0);
|
||||
for (TowerSettleDetail towerSettleDetail : list) {
|
||||
if (towerSettleDetail.getType().equals(0) || towerSettleDetail.getType().equals(2)) {
|
||||
BigDecimal monthAmount = towerSettleDetail.getMonthAmount().multiply(BigDecimal.valueOf(towerSettleDetail.getMonth()));
|
||||
BigDecimal dayAmount = towerSettleDetail.getDailyAmount().multiply(BigDecimal.valueOf(towerSettleDetail.getDay()));
|
||||
totalSettleAmount = totalSettleAmount.add(monthAmount).add(dayAmount).multiply(towerSettleDetail.getPayRate().divide(BigDecimal.valueOf(100), RoundingMode.FLOOR));
|
||||
} else if (towerSettleDetail.getType().equals(1) || towerSettleDetail.getType().equals(3)) {
|
||||
BigDecimal amount = towerSettleDetail.getSingleAmount().multiply(BigDecimal.valueOf(towerSettleDetail.getNum()));
|
||||
totalSettleAmount = totalSettleAmount.add(amount).divide(BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||
} else if (towerSettleDetail.getType().equals(4)) {
|
||||
BigDecimal amount = towerSettleDetail.getSingleAmount().multiply(BigDecimal.valueOf(towerSettleDetail.getNum()));
|
||||
totalSettleAmount = totalSettleAmount.subtract(amount).divide(BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||
}
|
||||
}
|
||||
TowerSettle towerSettle = towerSettleService.getByIdRel(list.get(0).getSettleId());
|
||||
TowerContract contract = towerContractService.getById(towerSettle.getContractId());
|
||||
contract.setTotalSettleAmount(totalSettleAmount);
|
||||
System.out.println("totalSettleAmount: " + totalSettleAmount);
|
||||
towerContractService.updateById(contract);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tower:towerSettle:remove')")
|
||||
@OperationLog
|
||||
@ApiOperation("批量删除合同结算详情")
|
||||
|
||||
@@ -56,6 +56,9 @@ public class TowerAccessory implements Serializable {
|
||||
@ApiModelProperty(value = "重量")
|
||||
private String accessoryWeight;
|
||||
|
||||
@ApiModelProperty(value = "数量")
|
||||
private Integer accessoryNum;
|
||||
|
||||
@ApiModelProperty(value = "库存总量")
|
||||
private Integer accessoryStock;
|
||||
|
||||
@@ -78,6 +81,10 @@ public class TowerAccessory implements Serializable {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date factoryDate;
|
||||
|
||||
@ApiModelProperty(value = "购买日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date buyDate;
|
||||
|
||||
@ApiModelProperty(value = "报废日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date scrapDate;
|
||||
|
||||
@@ -44,6 +44,9 @@ public class TowerContract implements Serializable {
|
||||
@ApiModelProperty(value = "业务负责人")
|
||||
private String customerContact;
|
||||
|
||||
@ApiModelProperty(value = "备案编号")
|
||||
private String filingNo;
|
||||
|
||||
@ApiModelProperty(value = "合同编号")
|
||||
private String contactNumber;
|
||||
|
||||
@@ -94,6 +97,9 @@ public class TowerContract implements Serializable {
|
||||
@ApiModelProperty(value = "累计收款金额")
|
||||
private BigDecimal totalIncomeAmount;
|
||||
|
||||
@ApiModelProperty(value = "累计结算金额")
|
||||
private BigDecimal totalSettleAmount;
|
||||
|
||||
@ApiModelProperty(value = "租户id")
|
||||
private Integer tenantId;
|
||||
|
||||
@@ -103,6 +109,15 @@ public class TowerContract implements Serializable {
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "文件列表")
|
||||
private String fileList;
|
||||
|
||||
@ApiModelProperty(value = "支付比例")
|
||||
private BigDecimal payRate;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String projectName;
|
||||
|
||||
@@ -111,4 +126,6 @@ public class TowerContract implements Serializable {
|
||||
|
||||
@TableField(exist = false)
|
||||
private String customerName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.gxwebsoft.tower.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
@@ -58,6 +59,12 @@ public class TowerContractSettleEquipment implements Serializable {
|
||||
@ApiModelProperty(value = "其他费用")
|
||||
private BigDecimal otherAmount;
|
||||
|
||||
@ApiModelProperty(value = "其他费用计算模式(0每月1一次性)")
|
||||
private Integer otherAmountCalMode;
|
||||
|
||||
@ApiModelProperty(value = "预埋费")
|
||||
private BigDecimal preBuryAmount;
|
||||
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "所有人")
|
||||
@@ -76,4 +83,8 @@ public class TowerContractSettleEquipment implements Serializable {
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "累计应收金额/预计产值")
|
||||
@TableField(exist = false)
|
||||
private BigDecimal totalReceivableAmount;
|
||||
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 塔吊设备管理
|
||||
@@ -165,4 +166,20 @@ public class TowerEquipment implements Serializable {
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "历史所在项目列表")
|
||||
@TableField(exist = false)
|
||||
private List<TowerProject> projectList;
|
||||
|
||||
@ApiModelProperty(value = "所在项目名")
|
||||
@TableField(exist = false)
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty(value = "定检状态")
|
||||
@TableField(exist = false)
|
||||
private String securityStatus;
|
||||
|
||||
@ApiModelProperty(value = "主管部门")
|
||||
@TableField(exist = false)
|
||||
private String competentDepartment;
|
||||
|
||||
}
|
||||
|
||||
@@ -51,6 +51,9 @@ public class TowerFall implements Serializable {
|
||||
@ApiModelProperty(value = "报废日期")
|
||||
private Date discardDate;
|
||||
|
||||
@ApiModelProperty(value = "检测日期")
|
||||
private String checkDate;
|
||||
|
||||
@ApiModelProperty(value = "出厂检测报告")
|
||||
private String file1;
|
||||
|
||||
|
||||
@@ -44,6 +44,9 @@ public class TowerIncome implements Serializable {
|
||||
@ApiModelProperty(value = "收款单位")
|
||||
private Integer incomeCompanyId;
|
||||
|
||||
@ApiModelProperty(value = "付款单位")
|
||||
private Integer payCompanyId;
|
||||
|
||||
@ApiModelProperty(value = "收款金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -11,6 +12,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -38,12 +40,21 @@ public class TowerProject implements Serializable {
|
||||
@ApiModelProperty(value = "租赁单位")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty(value = "租赁单位")
|
||||
private Integer companyId;
|
||||
|
||||
@ApiModelProperty(value = "承租单位")
|
||||
private String customerName;
|
||||
|
||||
@ApiModelProperty(value = "承租单位")
|
||||
private Integer customerId;
|
||||
|
||||
@ApiModelProperty(value = "项目地址")
|
||||
private String projectRegion;
|
||||
|
||||
@ApiModelProperty(value = "项目所在地")
|
||||
private String projectCity;
|
||||
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
private String projectAddress;
|
||||
|
||||
@@ -77,6 +88,9 @@ public class TowerProject implements Serializable {
|
||||
@ApiModelProperty(value = "项目负责人")
|
||||
private String director;
|
||||
|
||||
@TableField(exist = false)
|
||||
private User directorUser;
|
||||
|
||||
@ApiModelProperty(value = "项目经理")
|
||||
private String projectDirector;
|
||||
|
||||
@@ -86,6 +100,9 @@ public class TowerProject implements Serializable {
|
||||
@ApiModelProperty(value = "业务员")
|
||||
private String salesman;
|
||||
|
||||
@ApiModelProperty(value = "标地列表")
|
||||
private String placeList;
|
||||
|
||||
@ApiModelProperty(value = "状态, 0待发布, 1已发布")
|
||||
private Integer status;
|
||||
|
||||
@@ -127,4 +144,23 @@ public class TowerProject implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private Set<TowerProjectPlace> places2;
|
||||
|
||||
@ApiModelProperty(value = "是否已有安装单派单")
|
||||
@TableField(exist = false)
|
||||
private boolean hasSetUpWorksheet;
|
||||
|
||||
@ApiModelProperty(value = "派单类型")
|
||||
@TableField(exist = false)
|
||||
private Integer worksheetType;
|
||||
|
||||
@ApiModelProperty(value = "派单设备类型")
|
||||
@TableField(exist = false)
|
||||
private Integer worksheetEquipType;
|
||||
|
||||
@ApiModelProperty(value = "各派单类型数量")
|
||||
@TableField(exist = false)
|
||||
private Map<Integer, Integer> worksheetWorkTypeNumList;
|
||||
|
||||
@ApiModelProperty(value = "关联设备数")
|
||||
@TableField(exist = false)
|
||||
private Integer equipmentNum;
|
||||
}
|
||||
|
||||
@@ -36,12 +36,21 @@ public class TowerProjectOrder implements Serializable {
|
||||
@ApiModelProperty(value = "项目ID")
|
||||
private Integer projectId;
|
||||
|
||||
@ApiModelProperty(value = "设备Id")
|
||||
private Integer equipmentId;
|
||||
|
||||
@ApiModelProperty(value = "设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
@ApiModelProperty(value = "规格型号")
|
||||
private String equipmentModel;
|
||||
|
||||
@ApiModelProperty(value = "备案编号")
|
||||
private String filingNo;
|
||||
|
||||
@ApiModelProperty(value = "出厂编号")
|
||||
private String factoryNo;
|
||||
|
||||
@ApiModelProperty(value = "签订数量")
|
||||
private Integer equipmentNum;
|
||||
|
||||
@@ -84,4 +93,17 @@ public class TowerProjectOrder implements Serializable {
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "定检状态")
|
||||
private String securityStatus;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "制造厂商")
|
||||
@TableField(exist = false)
|
||||
private String manufactor;
|
||||
|
||||
@ApiModelProperty(value = "报废日期")
|
||||
@TableField(exist = false)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date scrapDate;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.gxwebsoft.tower.entity;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -69,4 +70,9 @@ public class TowerProjectUser implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String organizationName;
|
||||
|
||||
@TableField(exist = false)
|
||||
private User user;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -53,6 +53,15 @@ public class TowerSettleDetail implements Serializable {
|
||||
@ApiModelProperty(value = "月租金/月工资")
|
||||
private BigDecimal monthAmount;
|
||||
|
||||
@ApiModelProperty(value = "日租金")
|
||||
private BigDecimal dailyAmount;
|
||||
|
||||
@ApiModelProperty(value = "多少月")
|
||||
private Integer month;
|
||||
|
||||
@ApiModelProperty(value = "多少日")
|
||||
private Integer day;
|
||||
|
||||
@ApiModelProperty(value = "税率")
|
||||
private BigDecimal taxRate;
|
||||
|
||||
@@ -78,10 +87,19 @@ public class TowerSettleDetail implements Serializable {
|
||||
@ApiModelProperty(value = "租户id")
|
||||
private Integer tenantId;
|
||||
|
||||
@ApiModelProperty(value = "支付比例")
|
||||
private BigDecimal payRate;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "进场时间")
|
||||
private LocalDateTime inDate;
|
||||
|
||||
@ApiModelProperty(value = "退场时间")
|
||||
private LocalDateTime outDate;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,8 +4,14 @@
|
||||
|
||||
<!-- 关联查询sql -->
|
||||
<sql id="selectSql">
|
||||
SELECT a.*
|
||||
SELECT a.*,
|
||||
b.project_name,
|
||||
c.name AS customer_name,
|
||||
d.company_name
|
||||
FROM tower_contract a
|
||||
LEFT JOIN tower_project b ON a.project_id = b.project_id
|
||||
LEFT JOIN tower_customer c ON a.customer_id = c.customer_id
|
||||
LEFT JOIN sys_company d ON a.company_id = d.company_id
|
||||
<where>
|
||||
<if test="param.contractId != null">
|
||||
AND a.contract_id = #{param.contractId}
|
||||
@@ -19,6 +25,9 @@
|
||||
<if test="param.customerId != null">
|
||||
AND a.customer_id = #{param.customerId}
|
||||
</if>
|
||||
<if test="param.keywords != null">
|
||||
AND (a.contact_number LIKE CONCAT('%', #{param.keywords}, '%') OR b.project_name LIKE CONCAT('%', #{param.keywords}, '%'))
|
||||
</if>
|
||||
<if test="param.customerContact != null">
|
||||
AND a.customer_contact LIKE CONCAT('%', #{param.customerContact}, '%')
|
||||
</if>
|
||||
|
||||
@@ -55,6 +55,15 @@
|
||||
<if test="param.createTimeEnd != null">
|
||||
AND a.create_time <= #{param.createTimeEnd}
|
||||
</if>
|
||||
<if test="param.keywords != null">
|
||||
AND (
|
||||
a.name LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.full_name LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.credit_code LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.address LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.contact LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
|
||||
@@ -91,12 +91,17 @@
|
||||
<if test="param.createTimeEnd != null">
|
||||
AND a.create_time <= #{param.createTimeEnd}
|
||||
</if>
|
||||
<if test="param.equipmentIdList != null">
|
||||
AND a.equipment_id IN (#{param.equipmentIdList})
|
||||
</if>
|
||||
<if test="param.keywords != null">
|
||||
AND (
|
||||
a.name LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.model LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.equipment_no LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.company LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.filing_no LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
OR a.factory_no LIKE CONCAT('%', #{param.keywords}, '%')
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
|
||||
@@ -88,6 +88,9 @@
|
||||
<if test="param.createTimeEnd != null">
|
||||
AND a.create_time <= #{param.createTimeEnd}
|
||||
</if>
|
||||
<if test="param.keywords != null">
|
||||
AND ( a.project_name LIKE CONCAT('%', #{param.keywords}, '%') )
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
LEFT JOIN sys_user b ON a.user_id = b.user_id
|
||||
LEFT JOIN sys_organization c ON b.organization_id = c.organization_id
|
||||
<where>
|
||||
AND a.user_id != 0
|
||||
<if test="param.id != null">
|
||||
AND a.id = #{param.id}
|
||||
</if>
|
||||
@@ -38,6 +39,7 @@
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY a.user_id
|
||||
</sql>
|
||||
|
||||
<!-- 分页查询 -->
|
||||
|
||||
@@ -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<String> notInFilingNoList;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<Integer> equipmentIdList;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String keywords;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer yearFilter;
|
||||
|
||||
}
|
||||
|
||||
@@ -125,4 +125,21 @@ public class TowerProjectParam extends BaseParam {
|
||||
@TableField(exist = false)
|
||||
private Set<TowerProjectPlace> 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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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[]{
|
||||
|
||||
373
websoft-api.log
373
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.<init>(AbstractAlipayClient.java:127) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
|
||||
at com.alipay.api.DefaultAlipayClient.<init>(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(<generated>) ~[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(<generated>) ~[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.<init>(AbstractAlipayClient.java:127) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
|
||||
at com.alipay.api.DefaultAlipayClient.<init>(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(<generated>) ~[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(<generated>) ~[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.<init>(AbstractAlipayClient.java:127) ~[alipay-sdk-java-4.35.0.ALL.jar:na]
|
||||
at com.alipay.api.DefaultAlipayClient.<init>(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(<generated>) ~[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(<generated>) ~[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.
|
||||
|
||||
Reference in New Issue
Block a user