From 27a0a56738dd2748a62393fb6e2f835206b41f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwangzihua=E2=80=9D?= Date: Tue, 13 Jan 2026 15:17:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:minio=E9=85=8D=E7=BD=AE=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceApplicationsController.java | 3 +- .../service/dao/ServiceApplicationsDao.java | 4 +- .../service/ServiceApplicationsService.java | 106 ++++++++++++++---- .../service/ServiceApplicationsMapper.xml | 31 ++++- .../support/dict/service/DictService.java | 5 +- .../src/main/resources/prod/yun-base.yaml | 14 +-- 6 files changed, 130 insertions(+), 33 deletions(-) diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/controller/ServiceApplicationsController.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/controller/ServiceApplicationsController.java index c7817ec..2b3e20f 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/controller/ServiceApplicationsController.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/controller/ServiceApplicationsController.java @@ -16,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.math.BigDecimal; import java.util.List; /** @@ -166,7 +167,7 @@ public class ServiceApplicationsController { //统计当前机构的成本 @Operation(summary = "统计当前机构的公益成本 @author wzh") @PostMapping("/serviceApplications/statistics/cost") - public ResponseDTO getServiceApplicationsCost(@RequestBody ServiceLawyerQueryForm queryForm) { + public ResponseDTO getServiceApplicationsCost(@RequestBody ServiceLawyerQueryForm queryForm) { return ResponseDTO.ok(serviceApplicationsService.getServiceApplicationsCost(queryForm)); } //部门id批量审核 diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/dao/ServiceApplicationsDao.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/dao/ServiceApplicationsDao.java index 812e2ad..3629eb1 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/dao/ServiceApplicationsDao.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/dao/ServiceApplicationsDao.java @@ -80,7 +80,7 @@ public interface ServiceApplicationsDao extends BaseMapper getLawyerStatisticsByMonth(@Param("queryForm") ServiceLawyerQueryForm serviceLawyerQueryForm); } \ No newline at end of file diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java index 2797ac8..b461ee8 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java @@ -45,6 +45,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil; import net.lab1024.sa.base.common.util.SmartResponseUtil; import net.lab1024.sa.base.module.support.dict.domain.entity.DictEntity; import net.lab1024.sa.base.module.support.dict.service.DictService; +import net.sf.jsqlparser.expression.LongValue; import org.apache.catalina.util.RequestUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.*; @@ -58,6 +59,8 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.FileOutputStream; import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.time.LocalDateTime; import java.util.Arrays; @@ -581,6 +584,42 @@ public class ServiceApplicationsService { * @return */ public List getLawyerStatisticsByDepartment(@Valid LawyerStatisticsQueryFormList queryForms) { + LawyerStatisticsQueryForm queryForm = getQueryForm(queryForms); + DictEntity dictItem = dictService.getOne("FILECOST"); + //根据统计出律所的年度服务时长 + List lawyerStatisticsWithParamYear = serviceApplicationsDao.getdepartmentStatistics(queryForm); + if (!lawyerStatisticsWithParamYear.isEmpty() && lawyerStatisticsWithParamYear.get(0).getFirmId() != null) { + //律所季度服务时长和服务成本 + monthStatisticsDepartment(queryForm, lawyerStatisticsWithParamYear,null); + //查询这个部门下面律师的统计信息 + lawyerStatisticsWithParamYear.forEach(lawyerStatisticsVO -> { + ServiceLawyerQueryForm serviceLawyerQueryForm = new ServiceLawyerQueryForm(); + serviceLawyerQueryForm.setFirmId(lawyerStatisticsVO.getFirmId()); + //每个人的年度 + List lawyerServiceVOList = serviceApplicationsDao.getLawyerStatisticsWithParam(serviceLawyerQueryForm); + //每个人的季度 + if (!lawyerServiceVOList.isEmpty() && queryForm.getQuarter() != null) { + lawyerServiceVOList.forEach(lawyerServiceVO -> { + lawyerServiceVO.setAnnualServiceCost(BigDecimal.valueOf(Long.valueOf(dictItem.getRemark()) * lawyerServiceVO.getAnnualServiceDuration())); + //查詢每個律師季度服務信息 + serviceLawyerQueryForm.setUserId(lawyerServiceVO.getUserId()); + List lawyerImportForms = serviceApplicationsDao.getLawyerStatisticsByMonth(serviceLawyerQueryForm); + lawyerServiceVO.setQuarterlyServiceCost(BigDecimal.valueOf(Long.valueOf(dictItem.getRemark()) * lawyerImportForms.get(0).getQuarterlyServiceDuration())); + lawyerServiceVO.setQuarterlyServiceDuration(lawyerImportForms.get(0).getQuarterlyServiceDuration()); + }); + } + lawyerStatisticsVO.setLawyerServiceVOList(lawyerServiceVOList); + }); + } + return lawyerStatisticsWithParamYear; + } + + /** + * 律所查询条件封装 + * @param queryForms + * @return + */ + public LawyerStatisticsQueryForm getQueryForm(LawyerStatisticsQueryFormList queryForms){ LawyerStatisticsQueryForm queryForm = new LawyerStatisticsQueryForm(); BeanUtil.copyProperties(queryForms, queryForm); // 如果没有指定季度,则使用年度范围,否则使用季度范围 @@ -599,21 +638,8 @@ public class ServiceApplicationsService { queryForm.setStartTime(quarterStart.toString()); queryForm.setEndTime(quarterEnd.toString()); } - //统计 - List lawyerStatisticsWithParamYear = serviceApplicationsDao.getdepartmentStatistics(queryForm); - monthStatisticsDepartment(queryForm, lawyerStatisticsWithParamYear,null); - //查询这个部门下面律师的统计信息 - if (!lawyerStatisticsWithParamYear.isEmpty()) { - lawyerStatisticsWithParamYear.forEach(lawyerStatisticsVO -> { - ServiceLawyerQueryForm serviceLawyerQueryForm = new ServiceLawyerQueryForm(); - serviceLawyerQueryForm.setFirmId(lawyerStatisticsVO.getFirmId()); - List lawyerServiceVOList = serviceApplicationsDao.getLawyerStatisticsWithParam(serviceLawyerQueryForm); - lawyerStatisticsVO.setLawyerServiceVOList(lawyerServiceVOList); - }); - } - return lawyerStatisticsWithParamYear; + return queryForm; } - public void exportLawyerByDepartment(ServiceLawyerQueryForm queryForm, HttpServletResponse response) { // 如果没有指定季度,则使用年度范围,否则使用季度范围 if (queryForm.getQuarter() == null) { @@ -677,7 +703,7 @@ public class ServiceApplicationsService { * @param queryForm * @return */ - public Long getServiceApplicationsCost(ServiceLawyerQueryForm queryForm) { + public BigDecimal getServiceApplicationsCost(ServiceLawyerQueryForm queryForm) { // 根据指定的季度设置时间范围 LocalDateTime quarterStart = DateTimeEnum.getQuarterStart(queryForm.getYear(), queryForm.getQuarter()); LocalDateTime quarterEnd = DateTimeEnum.getQuarterEnd(queryForm.getYear(), queryForm.getQuarter()); @@ -686,18 +712,27 @@ public class ServiceApplicationsService { //获取多少小时 Long time = serviceApplicationsDao.getServiceApplicationsCost(queryForm); //获取字典表的设置 - DictEntity dictItem = dictService.getOne(3); + DictEntity dictItem = dictService.getOne("FILECOST"); if (dictItem == null){ - return 0L; + return BigDecimal.valueOf(0L); } //除1w if (time != null && time != 0L) { Long timeCost = time * Long.valueOf(dictItem.getRemark()); - timeCost = timeCost / 10000; - return timeCost; + //取两位小数 + + // 将long类型转换为BigDecimal + BigDecimal bigDecimalDividend = BigDecimal.valueOf(timeCost); + BigDecimal bigDecimalDivisor = BigDecimal.valueOf(10000); + + // 执行除法运算 + BigDecimal result = bigDecimalDividend.divide(bigDecimalDivisor, 2, RoundingMode.HALF_UP); + + return result; + }else { + return BigDecimal.valueOf(0L); } - return 0l; } public ResponseDTO batchReviewByDepartmentId(@Valid ServiceApplicationsUpdateForm updateForm) { @@ -940,16 +975,29 @@ public class ServiceApplicationsService { */ public PageResult getLawyerStatistics(LawyerStatisticsQueryForm queryForm) { Page page = SmartPageUtil.convert2PageQuery(queryForm); + DictEntity one = dictService.getOne("FILECOST"); + //查询下角色 + RequestEmployee requestUser = AdminRequestUtil.getRequestUser(); + RoleVO roleList = roleEmployeeService.getRoleIdList(requestUser.getEmployeeId()).get(0); TimeVo yearStartAndEnd = DateTimeUtil.getYearStartAndEnd(queryForm.getYear()); //根据year拼接年度的开始时间和结束时间 String yearStart = yearStartAndEnd.getStartTime(); String yearEnd = yearStartAndEnd.getEndTime(); queryForm.setStartTime(yearStart); queryForm.setEndTime(yearEnd); + if (UserTypeEnum.USER.getDesc().equals(roleList.getRoleCode())){ + queryForm.setUserId(requestUser.getEmployeeId()); + }else if (UserTypeEnum.CTO.getDesc().equals(roleList.getRoleCode())){ + queryForm.setUserId(null); + queryForm.setFirmId(requestUser.getDepartmentId()); + } //统计当前年度的 List lawyerStatisticsWithParamYear = serviceApplicationsDao.getLawyerStatisticsWithParamYear(page, queryForm); PageResult lawyerStatisticsVOPageResult = SmartPageUtil.convert2PageResult(page, lawyerStatisticsWithParamYear); if (!lawyerStatisticsVOPageResult.getList().isEmpty()) { + for (LawyerStatisticsVO statisticsVO : lawyerStatisticsWithParamYear) { + statisticsVO.setAnnualServiceCost(BigDecimal.valueOf(statisticsVO.getAnnualServiceDuration() * Long.valueOf(one.getRemark()))); + } monthStatistics(queryForm, lawyerStatisticsVOPageResult.getList(),null); } return lawyerStatisticsVOPageResult; @@ -960,6 +1008,7 @@ public class ServiceApplicationsService { * @param queryForm */ public void exportLawyer(ServiceLawyerQueryForm queryForm, HttpServletResponse response) { + DictEntity one = dictService.getOne("FILECOST"); // 如果没有指定季度,则使用年度范围,否则使用季度范围 if (queryForm.getQuarter() == null) { TimeVo yearStartAndEnd = DateTimeUtil.getYearStartAndEnd(queryForm.getYear()); @@ -974,8 +1023,12 @@ public class ServiceApplicationsService { queryForm.setStartTime(quarterStart.toString()); queryForm.setEndTime(quarterEnd.toString()); } + //律师年度 List lawyerStatisticsWithParamYear = serviceApplicationsDao.getLawyerStatisticsWithParam(queryForm); if (!lawyerStatisticsWithParamYear.isEmpty()) { + for (ServiceLawyerImportForm serviceLawyerImportForm : lawyerStatisticsWithParamYear) { + serviceLawyerImportForm.setAnnualServiceCost(BigDecimal.valueOf(serviceLawyerImportForm.getAnnualServiceDuration() * Long.valueOf(one.getRemark()))); + } LawyerStatisticsQueryForm queryForm1 = SmartBeanUtil.copy(queryForm, LawyerStatisticsQueryForm.class); monthStatistics(queryForm1, null, lawyerStatisticsWithParamYear); } @@ -990,6 +1043,7 @@ public class ServiceApplicationsService { * @param lawyerStatisticsVOPageResult */ public void monthStatistics(LawyerStatisticsQueryForm originalQueryForm, List lawyerStatisticsVOPageResult,List lawyerStatisticsWithParamYear) { + DictEntity one = dictService.getOne("FILECOST"); if (lawyerStatisticsVOPageResult != null) { for (LawyerStatisticsVO statisticsVO : lawyerStatisticsVOPageResult) { // 创建新的查询表单对象以避免修改原始对象 @@ -1014,6 +1068,7 @@ public class ServiceApplicationsService { LawyerStatisticsVO quarterStatisticsVO = serviceApplicationsDao.getLawyerStatistic(queryForm); if (quarterStatisticsVO != null && quarterStatisticsVO.getQuarterlyServiceDuration() != null) { statisticsVO.setQuarterlyServiceDuration(quarterStatisticsVO.getQuarterlyServiceDuration()); + statisticsVO.setQuarterlyServiceCost(BigDecimal.valueOf(quarterStatisticsVO.getQuarterlyServiceDuration() * Long.valueOf(one.getRemark()))); } } }else if (lawyerStatisticsWithParamYear != null) { @@ -1040,12 +1095,15 @@ public class ServiceApplicationsService { LawyerStatisticsVO quarterStatisticsVO = serviceApplicationsDao.getLawyerStatistic(queryForm); if (quarterStatisticsVO != null && quarterStatisticsVO.getQuarterlyServiceDuration() != null) { statisticsVO.setQuarterlyServiceDuration(quarterStatisticsVO.getQuarterlyServiceDuration()); + statisticsVO.setQuarterlyServiceCost(BigDecimal.valueOf(quarterStatisticsVO.getQuarterlyServiceDuration() * Long.valueOf(one.getRemark()))); + } } } } public void monthStatisticsDepartment(LawyerStatisticsQueryForm originalQueryForm, List lawyerStatisticsVOPageResult,List lawyerStatisticsWithParamYear) { + DictEntity dictItem = dictService.getOne("FILECOST"); if (lawyerStatisticsVOPageResult != null) { for (LawyerStatisticsVO statisticsVO : lawyerStatisticsVOPageResult) { // 创建新的查询表单对象以避免修改原始对象 @@ -1066,10 +1124,14 @@ public class ServiceApplicationsService { queryForm.setEndTime(quarterEnd.toString()); } queryForm.setUserId(statisticsVO.getUserId()); + //计算年度累计服务成本 + statisticsVO.setAnnualServiceCost(BigDecimal.valueOf(statisticsVO.getAnnualServiceDuration() * Long.valueOf(dictItem.getRemark()))); //季度服务时间范围 LawyerStatisticsVO quarterStatisticsVO = serviceApplicationsDao.getdepartmentMothStatistic(queryForm); if (quarterStatisticsVO != null && quarterStatisticsVO.getQuarterlyServiceDuration() != null) { statisticsVO.setQuarterlyServiceDuration(quarterStatisticsVO.getQuarterlyServiceDuration()); + //计算季度累计服务成本 + statisticsVO.setQuarterlyServiceCost(BigDecimal.valueOf(quarterStatisticsVO.getQuarterlyServiceDuration() * Long.valueOf(dictItem.getRemark()))); } } }else if (lawyerStatisticsWithParamYear != null) { @@ -1092,10 +1154,14 @@ public class ServiceApplicationsService { queryForm.setEndTime(quarterEnd.toString()); } queryForm.setFirmId(statisticsVO.getFirmId()); + //计算年度累计服务成本 + statisticsVO.setAnnualServiceCost(BigDecimal.valueOf(statisticsVO.getAnnualServiceDuration() * Long.valueOf(dictItem.getRemark()))); //季度服务时间范围 LawyerStatisticsVO quarterStatisticsVO = serviceApplicationsDao.getdepartmentMothStatistic(queryForm); if (quarterStatisticsVO != null && quarterStatisticsVO.getQuarterlyServiceDuration() != null) { statisticsVO.setQuarterlyServiceDuration(quarterStatisticsVO.getQuarterlyServiceDuration()); + //计算季度累计服务成本 + statisticsVO.setQuarterlyServiceCost(BigDecimal.valueOf(quarterStatisticsVO.getQuarterlyServiceDuration() * Long.valueOf(dictItem.getRemark()))); } } } diff --git a/yun-admin/src/main/resources/mapper/service/ServiceApplicationsMapper.xml b/yun-admin/src/main/resources/mapper/service/ServiceApplicationsMapper.xml index 7bec70d..db6b693 100644 --- a/yun-admin/src/main/resources/mapper/service/ServiceApplicationsMapper.xml +++ b/yun-admin/src/main/resources/mapper/service/ServiceApplicationsMapper.xml @@ -131,7 +131,8 @@ ) - ORDER BY t_service_applications.firm_audit_status DESC,association_audit_status DESC + ORDER BY t_service_applications.association_audit_status Asc, + t_service_applications.firm_audit_status Asc update t_service_applications set deleted_flag = #{deletedFlag} @@ -168,7 +169,8 @@ update t_service_applications set - association_audit_status = #{associationAuditStatus} + association_audit_status = #{associationAuditStatus}, + association_audit_time = now() where application_id in #{item} @@ -449,4 +451,29 @@ AND tsa.firm_id = #{queryForm.firmId} + \ No newline at end of file diff --git a/yun-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java b/yun-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java index d88c96a..23cfc17 100644 --- a/yun-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java +++ b/yun-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java @@ -1,5 +1,6 @@ package net.lab1024.sa.base.module.support.dict.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.domain.ResponseDTO; @@ -288,7 +289,7 @@ public class DictService { return dictData == null ? "" : dictData.getDataLabel(); } - public DictEntity getOne(int i) { - return dictDao.selectById(i); + public DictEntity getOne(String i) { + return dictDao.selectOne(new QueryWrapper().eq("dict_code", i)); } } diff --git a/yun-base/src/main/resources/prod/yun-base.yaml b/yun-base/src/main/resources/prod/yun-base.yaml index 3acbde7..506a175 100644 --- a/yun-base/src/main/resources/prod/yun-base.yaml +++ b/yun-base/src/main/resources/prod/yun-base.yaml @@ -96,17 +96,17 @@ server: # 文件上传 配置 file: storage: - mode: local + mode: cloud local: - upload-path: /home/lawyer/upload/ #文件上传目录 + upload-path: /home/laywer/upload/ #文件上传目录 url-prefix: cloud: region: oss-cn-hangzhou - endpoint: oss-cn-hangzhou.aliyuncs.com - bucket-name: 1024lab-smart-admin - access-key: - secret-key: - url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/ + endpoint: 8.148.67.92:9000 + bucket-name: file + access-key: minioadmin + secret-key: 12345678 + url-prefix: http://${file.storage.cloud.endpoint}/${file.storage.cloud.bucket-name}/ private-url-expire-seconds: 3600 # open api配置