Browse Source

fix:优化

master
wang 2 weeks ago
parent
commit
6ee2f4b060
  1. 6
      yun-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java
  2. 5
      yun-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryAddForm.java
  3. 5
      yun-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryVO.java
  4. 3
      yun-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/entity/GoodsEntity.java
  5. 3
      yun-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsAddForm.java
  6. 3
      yun-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java
  7. 12
      yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/controller/FirmReportsController.java
  8. 50
      yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/service/FirmReportsService.java
  9. 4
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/controller/PenaltyApplyController.java
  10. 4
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/controller/PenaltyLawyerController.java
  11. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/dao/PenaltyApplyDao.java
  12. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/dao/PenaltyLawyerDao.java
  13. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/dao/PenaltyLawyerManager.java
  14. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/entity/PenaltyApplyEntity.java
  15. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/entity/PenaltyLawyerEntity.java
  16. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyApplyAddForm.java
  17. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyApplyQueryForm.java
  18. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyApplyUpdateForm.java
  19. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerAddForm.java
  20. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerQueryForm.java
  21. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerQueryFormNoPage.java
  22. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerUpdateForm.java
  23. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/vo/PenaltyApplyVO.java
  24. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/vo/PenaltyLawyerVO.java
  25. 6
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyApplyService.java
  26. 2
      yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyLawyerService.java
  27. 7
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/controller/ServiceApplicationsController.java
  28. 8
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/dao/ServiceApplicationsDao.java
  29. 32
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/entity/ServiceApplicationsEntity.java
  30. 8
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceApplicationsAddForm.java
  31. 3
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceApplicationsUpdateForm.java
  32. 33
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/vo/ServiceApplicationsVO.java
  33. 791
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java
  34. 5
      yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java
  35. 9
      yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
  36. 7
      yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java
  37. 18
      yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java
  38. 8
      yun-admin/src/main/java/net/lab1024/sa/admin/module/word/WordApplicationsController.java
  39. 159
      yun-admin/src/main/resources/mapper/service/ServiceApplicationsMapper.xml
  40. 2
      yun-base/src/main/java/net/lab1024/sa/base/common/code/UserErrorCode.java
  41. 3
      yun-base/src/main/java/net/lab1024/sa/base/module/support/message/controller/MessageController.java

6
yun-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java

@ -54,6 +54,12 @@ public class CategoryEntity implements Serializable {
*/
private Integer sort;
/**
* @deprecated 多人代报已迁移到具体活动 t_goods.can_batch_select;仅保留二进制兼容。
*/
@Deprecated
private Boolean canBatchSelect;
/**
* 删除状态
*/

5
yun-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryAddForm.java

@ -37,6 +37,11 @@ public class CategoryAddForm {
@Schema(description = "排序|可选")
private Integer sort;
/** @deprecated 多人代报已改为具体活动级配置,仅保留旧接口兼容。 */
@Deprecated
@Schema(description = "旧分类级多人代报字段(已废弃)")
private Boolean canBatchSelect;
@Schema(description = "备注|可选")
@Length(max = 200, message = "备注最多200字符")
private String remark;

5
yun-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryVO.java

@ -31,6 +31,11 @@ public class CategoryVO {
@Schema(description = "排序|可选")
private Integer sort;
/** @deprecated 多人代报已改为具体活动级配置,仅保留旧接口兼容。 */
@Deprecated
@Schema(description = "旧分类级多人代报字段(已废弃)")
private Boolean canBatchSelect;
@Schema(description = "备注|可选")
private String remark;

3
yun-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/entity/GoodsEntity.java

@ -44,6 +44,9 @@ public class GoodsEntity {
*/
private String timeType;
/** 是否允许一人代同所多人申报 */
private Boolean canBatchSelect;
/**
* 上架状态
*/

3
yun-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsAddForm.java

@ -37,6 +37,9 @@ public class GoodsAddForm {
@Schema(description = "计算类型")
private String timeType;
@Schema(description = "是否允许一人代同所多人申报")
private Boolean canBatchSelect;
@Schema(description = "备注|可选")
private String remark;
}

3
yun-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java

@ -29,6 +29,9 @@ public class GoodsVO {
@Schema(description = "计算类型")
private String timeType;
@Schema(description = "是否允许一人代同所多人申报")
private Boolean canBatchSelect;
@Schema(description = "上架状态")
private Boolean shelvesFlag;

12
yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/controller/FirmReportsController.java

@ -49,6 +49,18 @@ public class FirmReportsController {
return firmReportsService.query(previousQuarter, previousYear);
}
@Operation(summary = "按活动季度查询营业收入是否已提交")
@GetMapping("/firmReports/queryByQuarter")
public ResponseDTO<Boolean> queryByQuarter(@RequestParam Integer year, @RequestParam Integer quarter) {
return firmReportsService.isQuarterIncomeSubmitted(quarter, year);
}
@Operation(summary = "查询当前律所是否具备成本权限")
@GetMapping("/firmReports/firmHasCostPermission")
public ResponseDTO<Boolean> firmHasCostPermission() {
return firmReportsService.currentFirmHasCostPermission();
}
@Operation(summary = "分页查询 @author wzh")
@PostMapping("/firmReports/queryPage")
//@SaCheckPermission("firmReports:query")

50
yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/service/FirmReportsService.java

@ -16,9 +16,11 @@ import net.lab1024.sa.admin.module.cost.domain.form.FirmReportsUpdateForm;
import net.lab1024.sa.admin.module.cost.domain.vo.FirmReportsCountVO;
import net.lab1024.sa.admin.module.cost.domain.vo.FirmReportsVO;
import net.lab1024.sa.admin.module.system.department.service.DepartmentService;
import net.lab1024.sa.admin.module.system.employee.dao.EmployeeDao;
import net.lab1024.sa.admin.module.system.login.domain.RequestEmployee;
import net.lab1024.sa.admin.module.system.role.domain.vo.RoleVO;
import net.lab1024.sa.admin.module.system.role.service.RoleEmployeeService;
import net.lab1024.sa.admin.module.service.service.ServiceApplicationsService;
import net.lab1024.sa.admin.util.AdminRequestUtil;
import net.lab1024.sa.admin.util.DateTimeUtil;
import net.lab1024.sa.base.common.code.UnexpectedErrorCode;
@ -33,6 +35,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.base.module.support.dict.service.DictService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@ -55,6 +58,10 @@ public class FirmReportsService {
private DepartmentService departmentService;
@Resource
private RoleEmployeeService roleEmployeeService;
@Resource
private EmployeeDao employeeDao;
@Resource
private ServiceApplicationsService serviceApplicationsService;
/**
* 分页查询
*/
@ -100,6 +107,7 @@ public class FirmReportsService {
/**
* 添加
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> add(FirmReportsAddForm addForm) {
if (!hasCostPermission(AdminRequestUtil.getRequestUser())) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
@ -123,6 +131,7 @@ public class FirmReportsService {
* 更新
*
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> update(FirmReportsUpdateForm updateForm) {
if (!hasCostPermission(AdminRequestUtil.getRequestUser())) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
@ -193,6 +202,7 @@ public class FirmReportsService {
return ResponseDTO.ok();
}
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> commit(ValidateList<Integer> idList) {
if (!hasCostPermission(AdminRequestUtil.getRequestUser())) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
@ -226,9 +236,21 @@ public class FirmReportsService {
}
firmReportsDao.commit(idList);
for (Integer id : idList) {
refreshActualCost(firmReportsDao.selectById(id));
}
return ResponseDTO.ok();
}
private void refreshActualCost(FirmReportsEntity report) {
if (report == null || report.getFirmId() == null || report.getDeclareYear() == null
|| report.getDeclareQuarter() == null) {
return;
}
serviceApplicationsService.recalculateActualCost(report.getFirmId().longValue(),
report.getDeclareYear(), Integer.valueOf(report.getDeclareQuarter()));
}
/**
* 提交前预检查,返回缺失的前置季度列表
*/
@ -335,6 +357,34 @@ public class FirmReportsService {
return ResponseDTO.ok(canReport);
}
/**
* 活动上报专用校验:成本权限按律所判断,只要本所有一名有效人员具备权限,
* 就要求活动所属季度已经提交收入;无成本权限的律所不受此限制。
*/
public ResponseDTO<Boolean> isQuarterIncomeSubmitted(Integer quarter, Integer year) {
RequestEmployee requestUser = AdminRequestUtil.getRequestUser();
List<RoleVO> roles = roleEmployeeService.getRoleIdList(requestUser.getEmployeeId());
if (!AdminRequestUtil.isFirmRole(roles)) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
}
boolean firmHasCostPermission = hasFirmCostPermission(requestUser.getDepartmentId());
if (!firmHasCostPermission) {
return ResponseDTO.ok(true);
}
return ResponseDTO.ok(firmReportsDao.query(quarter, year, requestUser.getDepartmentId()));
}
public ResponseDTO<Boolean> currentFirmHasCostPermission() {
RequestEmployee requestUser = AdminRequestUtil.getRequestUser();
return ResponseDTO.ok(hasFirmCostPermission(requestUser.getDepartmentId()));
}
private boolean hasFirmCostPermission(Long firmId) {
return firmId != null && employeeDao.selectByDepartmentId(firmId, false).stream()
.anyMatch(employee -> Boolean.TRUE.equals(employee.getCostVisibleFlag())
&& !Boolean.TRUE.equals(employee.getDisabledFlag()));
}
public FirmReportsCountVO income(Integer year) {
// 获取当前用户
RequestEmployee requestUser = AdminRequestUtil.getRequestUser();

4
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/controller/PenaltyApplyController.java

@ -21,7 +21,7 @@ import javax.annotation.Resource;
import javax.validation.Valid;
/**
* 无处罚证明申请主表 Controller
* 无处分证明申请主表 Controller
*
* @Author wzh
* @Date 2026-01-07 21:36:44
@ -29,7 +29,7 @@ import javax.validation.Valid;
*/
@RestController
@Tag(name = "无处罚证明申请主表")
@Tag(name = "无处分证明申请主表")
public class PenaltyApplyController {
@Resource

4
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/controller/PenaltyLawyerController.java

@ -22,7 +22,7 @@ import javax.annotation.Resource;
import javax.validation.Valid;
/**
* 处罚人 Controller
* 处分人 Controller
*
* @Author wzh
* @Date 2026-01-09 10:53:07
@ -30,7 +30,7 @@ import javax.validation.Valid;
*/
@RestController
@Tag(name = "处罚人")
@Tag(name = "处分人")
public class PenaltyLawyerController {
@Resource

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/dao/PenaltyApplyDao.java

@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 无处罚证明申请主表 Dao
* 无处分证明申请主表 Dao
*
* @Author wzh
* @Date 2026-01-07 21:36:44

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/dao/PenaltyLawyerDao.java

@ -14,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
import javax.validation.Valid;
/**
* 处罚人 Dao
* 处分人 Dao
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/dao/PenaltyLawyerManager.java

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* 处罚人 Manager
* 处分人 Manager
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/entity/PenaltyApplyEntity.java

@ -10,7 +10,7 @@ import java.time.LocalDateTime;
import lombok.Data;
/**
* 无处罚证明申请主表 实体类
* 无处分证明申请主表 实体类
*
* @Author wzh
* @Date 2026-01-07 21:36:44

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/entity/PenaltyLawyerEntity.java

@ -7,7 +7,7 @@ import java.time.LocalDateTime;
import lombok.Data;
/**
* 处罚人 实体类
* 处分人 实体类
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyApplyAddForm.java

@ -7,7 +7,7 @@ import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* 无处罚证明申请主表 新建表单
* 无处分证明申请主表 新建表单
*
* @Author wzh
* @Date 2026-01-07 21:36:44

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyApplyQueryForm.java

@ -8,7 +8,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 无处罚证明申请主表 分页查询表单
* 无处分证明申请主表 分页查询表单
*
* @Author wzh
* @Date 2026-01-07 21:36:44

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyApplyUpdateForm.java

@ -5,7 +5,7 @@ import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* 无处罚证明申请主表 更新表单
* 无处分证明申请主表 更新表单
*
* @Author wzh
* @Date 2026-01-07 21:36:44

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerAddForm.java

@ -6,7 +6,7 @@ import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* 处罚人 新建表单
* 处分人 新建表单
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerQueryForm.java

@ -5,7 +5,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 处罚人 分页查询表单
* 处分人 分页查询表单
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerQueryFormNoPage.java

@ -5,7 +5,7 @@ import lombok.EqualsAndHashCode;
import net.lab1024.sa.base.common.domain.PageParam;
/**
* 处罚人 分页查询表单
* 处分人 分页查询表单
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/form/PenaltyLawyerUpdateForm.java

@ -5,7 +5,7 @@ import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* 处罚人 更新表单
* 处分人 更新表单
*
* @Author wzh
* @Date 2026-01-09 10:53:07

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/vo/PenaltyApplyVO.java

@ -6,7 +6,7 @@ import java.time.LocalDateTime;
import lombok.Data;
/**
* 无处罚证明申请主表 列表VO
* 无处分证明申请主表 列表VO
*
* @Author wzh
* @Date 2026-01-07 21:36:44

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/domain/vo/PenaltyLawyerVO.java

@ -5,7 +5,7 @@ import java.time.LocalDateTime;
import lombok.Data;
/**
* 处罚人 列表VO
* 处分人 列表VO
*
* @Author wzh
* @Date 2026-01-09 10:53:07

6
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyApplyService.java

@ -35,7 +35,7 @@ import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
/**
* 无处罚证明申请主表 Service
* 无处分证明申请主表 Service
*
* @Author wzh
* @Date 2026-01-07 21:36:44
@ -109,13 +109,13 @@ public class PenaltyApplyService {
// PERSONAL = 个人证明(查申请人自己)
// FIRM = 律所证明(查律所)
if ("PERSONAL".equals(addForm.getApplyType())) {
// 个人证明:查询申请人自己是否有处罚记录
// 个人证明:查询申请人自己是否有处分记录
Boolean query = penaltyLawyerService.query(entity.getActualName());
if (query) {
return ResponseDTO.error(UserErrorCode.FORM_REPEAT_SUBMIT_PENALTY);
}
} else if ("FIRM".equals(addForm.getApplyType())) {
// 律所证明:查询律所是否有处罚记录
// 律所证明:查询律所是否有处分记录
DepartmentVO departmentById = departmentService.getDepartmentById(entity.getDepartmentId());
Boolean query = penaltyLawyerService.queryNoName(departmentById.getDepartmentName());
if (query) {

2
yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyLawyerService.java

@ -23,7 +23,7 @@ import javax.annotation.Resource;
import javax.validation.Valid;
/**
* 处罚人 Service
* 处分人 Service
*
* @Author wzh
* @Date 2026-01-09 10:53:07

7
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/controller/ServiceApplicationsController.java

@ -5,6 +5,7 @@ import net.lab1024.sa.admin.module.service.domain.vo.FirmActivityCountVO;
import net.lab1024.sa.admin.module.service.domain.vo.LawyerActivityCountVO;
import net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO;
import net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO;
import net.lab1024.sa.admin.module.service.domain.vo.SameFirmLawyerVO;
import net.lab1024.sa.admin.module.service.domain.vo.ServiceReportStatisticsVO;
import net.lab1024.sa.admin.module.service.service.ServiceApplicationsService;
import net.lab1024.sa.base.common.domain.ValidateList;
@ -42,6 +43,12 @@ public class ServiceApplicationsController {
return ResponseDTO.ok(serviceApplicationsService.queryDetail(applicationId));
}
@Operation(summary = "获取同律所已签署承诺书的合格同行律师列表")
@GetMapping("/serviceApplications/querySameFirmLawyers")
public ResponseDTO<List<SameFirmLawyerVO>> querySameFirmLawyers() {
return ResponseDTO.ok(serviceApplicationsService.querySameFirmLawyers());
}
@Operation(summary = "服务审批分页查询 @author wzh")
@PostMapping("/serviceApplications/queryPage")
//@SaCheckPermission("serviceApplications:query")

8
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/dao/ServiceApplicationsDao.java

@ -222,13 +222,13 @@ public interface ServiceApplicationsDao extends BaseMapper<ServiceApplicationsEn
/**
* 查询有成本查看权限律所的未审核数据数量
*/
Long queryNoReviewWithCostFilter();
Long queryNoReviewWithCostFilter(@Param("departmentId") Long departmentId);
/**
* 查询无成本查看权限律所的未审核数据数量
* @return 未审核数据数量
*/
Long queryNoReviewWithoutCostFilter();
Long queryNoReviewWithoutCostFilter(@Param("departmentId") Long departmentId);
/**
* 判断律所是否有成本查看权限
@ -246,8 +246,4 @@ public interface ServiceApplicationsDao extends BaseMapper<ServiceApplicationsEn
@Param("startTime") String startTime,
@Param("endTime") String endTime);
/**
* 获取指定前缀的最大备案编号
*/
String getMaxFilingNo(@Param("prefix") String prefix);
}

32
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/entity/ServiceApplicationsEntity.java

@ -82,6 +82,9 @@ public class ServiceApplicationsEntity {
*/
private BigDecimal workloadScore;
/** 草稿阶段暂存的同行代报律师ID,逗号分隔;正式提交后保留用于追溯。 */
private String draftParticipantIds;
/**
* 律所审核状态:0-待审核,1-通过,2-退回
*/
@ -123,7 +126,7 @@ public class ServiceApplicationsEntity {
private LocalDateTime associationAuditTime;
/**
* 备案编号(原有 recordNo 被用作案件编号/案号,因此新建 filingNo 作为真正的备案编号)
* 用户填写的备案/案件编号
*/
private String recordNo;
@ -178,7 +181,7 @@ public class ServiceApplicationsEntity {
private Long activityNameId;
/**
* 附件id
* 证明材料文件ID集合,逗号分隔
*/
private String attachmentIds;
@ -186,4 +189,29 @@ public class ServiceApplicationsEntity {
* 职务id
*/
private Long positionId;
/**
* 是否批量/代勾选申报(0-否, 1-是)
*/
private Integer isBatch;
/**
* 主申报人/提交人律师ID
*/
private Long declarerId;
/**
* 主申报人/提交人姓名
*/
private String declarerName;
/**
* 父级申报单ID(主记录为NULL, 子记录指向主记录ID)
*/
private Long parentApplicationId;
/**
* 同所参与同行姓名汇总
*/
private String participantNames;
}

8
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceApplicationsAddForm.java

@ -3,6 +3,7 @@ package net.lab1024.sa.admin.module.service.domain.form;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
@ -31,7 +32,7 @@ public class ServiceApplicationsAddForm {
private LocalDateTime serviceStart;
@Schema(description = "服务结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
//@NotNull(message = "服务结束时间 不能为空")
@NotNull(message = "活动结束时间 不能为空")
private LocalDateTime serviceEnd;
@Schema(description = "服务时长(小时)", requiredMode = Schema.RequiredMode.REQUIRED)
@ -89,4 +90,9 @@ public class ServiceApplicationsAddForm {
* 申报服务类型
*/
private String serviceType;
/**
* 勾选同所同行律师ID列表
*/
private List<Long> participantLawyerIds;
}

3
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceApplicationsUpdateForm.java

@ -95,4 +95,7 @@ public class ServiceApplicationsUpdateForm{
* 申报服务类型
*/
private String serviceType;
/** 勾选同所同行律师ID列表 */
private java.util.List<Long> participantLawyerIds;
}

33
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/vo/ServiceApplicationsVO.java

@ -105,6 +105,9 @@ public class ServiceApplicationsVO {
@Schema(description = "职业证号")
private String certificateNumber;
@Schema(description = "草稿暂存的同行代报律师ID,逗号分隔")
private String draftParticipantIds;
private String activityCategory;
private String activityName;
@ -117,6 +120,36 @@ public class ServiceApplicationsVO {
private String attachmentIds;
@Schema(description = "附件地址集合")
private List<FileEntity> attachmentList;
/**
* 证明材料集合
*/
private List<FileEntity> proofMaterials;
/**
* 是否批量/代勾选申报(0-否, 1-是)
*/
private Integer isBatch;
/**
* 主申报人/提交人律师ID
*/
private Long declarerId;
/**
* 主申报人/提交人姓名
*/
private String declarerName;
/**
* 父级申报单ID(主记录为NULL, 子记录指向主记录ID)
*/
private Long parentApplicationId;
/**
* 同所参与同行姓名汇总
*/
private String participantNames;
/**
* 职务id
*/

791
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java

File diff suppressed because it is too large

5
yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java

@ -109,4 +109,9 @@ public class EmployeeEntity {
* 审批数据查看范围:null/0=不限制,1=只查看有成本权限的律所数据,2=只查看无成本权限的律所数据
*/
private Integer costReportViewOnly;
/**
* 是否已修改过初始密码:0-否(初始状态) 1-是
*/
private Boolean passwordChangedFlag;
}

9
yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java

@ -153,6 +153,7 @@ public class EmployeeService {
// 保存数据
entity.setDeletedFlag(Boolean.FALSE);
entity.setPasswordChangedFlag(Boolean.FALSE);
List<Long> ids = new ArrayList<>();
ids.add(employeeAddForm.getRoleIdList());
employeeManager.saveEmployee(entity, ids);
@ -380,6 +381,7 @@ public class EmployeeService {
EmployeeEntity updateEntity = new EmployeeEntity();
updateEntity.setEmployeeId(employeeId);
updateEntity.setLoginPwd(newEncryptPassword);
updateEntity.setPasswordChangedFlag(Boolean.TRUE);
employeeDao.updateById(updateEntity);
// 保存修改密码密码记录
@ -427,7 +429,12 @@ public class EmployeeService {
String password = securityPasswordService.randomPassword();
String saltPassword = this.generateSaltPassword(password, employeeEntity.getEmployeeUid());
employeeDao.updatePassword(employeeId, SecurityPasswordService.getEncryptPwd(saltPassword));
EmployeeEntity updateEntity = new EmployeeEntity();
updateEntity.setEmployeeId(employeeId);
updateEntity.setLoginPwd(SecurityPasswordService.getEncryptPwd(saltPassword));
updateEntity.setPasswordChangedFlag(Boolean.FALSE);
employeeDao.updateById(updateEntity);
return ResponseDTO.ok(password);
}

7
yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java

@ -81,4 +81,11 @@ public class LoginController {
boolean twoFactorLoginEnabled = level3ProtectConfigService.isTwoFactorLoginEnabled();
return ResponseDTO.ok(twoFactorLoginEnabled);
}
@NoNeedLogin
@GetMapping("/login/getInitialPassword")
@Operation(summary = "获取初始密码提示")
public ResponseDTO<String> getInitialPassword() {
return ResponseDTO.ok(loginService.getInitialPassword());
}
}

18
yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java

@ -122,6 +122,13 @@ public class LoginService implements StpInterface {
return ResponseDTO.ok(captchaService.generateCaptcha());
}
/**
* 获取初始密码配置
*/
public String getInitialPassword() {
return configService.getConfigValue(ConfigKeyEnum.SUPER_PASSWORD);
}
/**
* 员工登录
*
@ -166,6 +173,9 @@ public class LoginService implements StpInterface {
if (superPasswordFlag && "admin".equals(employeeEntity.getLoginName())){
return ResponseDTO.userErrorParam("管理员万能密码已禁用!");
}
if (superPasswordFlag && Boolean.TRUE.equals(employeeEntity.getPasswordChangedFlag())) {
return ResponseDTO.userErrorParam("您已修改过密码,初始密码已失效,请输入您的新密码!");
}
// 校验双因子登录
ResponseDTO<String> validateEmailCode = validateEmailCode(loginForm, employeeEntity, superPasswordFlag);
if (!validateEmailCode.getOk()) {
@ -251,15 +261,15 @@ public class LoginService implements StpInterface {
}
if (UserTypeEnum.CEO.getDesc().equals(roleList.get(0).getRoleCode())) {
if (null == requestEmployee.getPenaltyFlag() || !requestEmployee.getPenaltyFlag()){
// 移除无处罚管理相关的菜单项
// 移除无处分管理相关的菜单项
menuAndPointsList = menuAndPointsList.stream()
.filter(menuVO ->
(menuVO.getMenuName() != null && !menuVO.getMenuName().contains("无处罚")))
(menuVO.getMenuName() != null && !menuVO.getMenuName().contains("无处分")))
.collect(Collectors.toList());
}else {
//只要无处罚的菜单
//只要无处分的菜单
menuAndPointsList = menuAndPointsList.stream().filter(menuVO ->
(menuVO.getMenuName() != null && menuVO.getMenuName().contains("无处罚"))).collect(Collectors.toList());
(menuVO.getMenuName() != null && menuVO.getMenuName().contains("无处分"))).collect(Collectors.toList());
}
}
// 承诺书管理菜单只有超管(admin)和律协(CEO)角色可见

8
yun-admin/src/main/java/net/lab1024/sa/admin/module/word/WordApplicationsController.java

@ -26,14 +26,14 @@ import java.util.HashMap;
import java.util.Map;
/**
* 无处罚证明开具 Controller
* 无处分证明开具 Controller
*
* @Author wzh
* @Date 2025-12-20 14:44:06
* @Copyright 1.0
*/
@RestController
@Tag(name = "无处罚证明开具")
@Tag(name = "无处分证明开具")
@RequestMapping("/wordCertificate")
public class WordApplicationsController {
@ -197,9 +197,9 @@ public class WordApplicationsController {
}
/**
* 预览无处罚证明(图片格式)
* 预览无处分证明(图片格式)
*/
@Operation(summary = "无处罚证明预览(图片格式) @author wzh")
@Operation(summary = "无处分证明预览(图片格式) @author wzh")
@GetMapping("/export/{id}")
public void previewImage(HttpServletResponse response, @PathVariable Integer id) throws Exception {
try {

159
yun-admin/src/main/resources/mapper/service/ServiceApplicationsMapper.xml

@ -36,7 +36,13 @@
t_service_applications.activity_name_id,
t_service_applications.attachment_ids,
t_service_applications.report_time,
t_service_applications.position_id
t_service_applications.position_id,
t_service_applications.is_batch,
t_service_applications.declarer_id,
t_service_applications.declarer_name,
t_service_applications.parent_application_id,
t_service_applications.participant_names,
t_service_applications.draft_participant_ids
</sql>
<!-- 分页查询 -->
@ -123,8 +129,8 @@
<if test="queryForm.positionId != null and queryForm.positionId != ''">
and position_id = #{queryForm.positionId}
</if>
<if test="queryForm.filingNo != null and queryForm.filingNo != ''">
and filing_no like CONCAT('%', #{queryForm.filingNo}, '%')
<if test="queryForm.recordNo != null and queryForm.recordNo != ''">
and record_no like CONCAT('%', #{queryForm.recordNo}, '%')
</if>
<!-- 协会角色过滤条件:只在没有明确指定任一审核状态时才应用此规则,且对自己创建的数据不过滤 -->
<if test="queryForm.includeAssociationReviewed != null and queryForm.includeAssociationReviewed and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '') and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '')">
@ -170,28 +176,11 @@
</if>
<!-- 律所管理员过滤条件:查看部门内已审核数据以及自己创建的所有数据(不包括未提交的草稿) -->
<if test="queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '') and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '')">
AND (
(t_service_applications.firm_audit_status IS NOT NULL
AND (t_service_applications.firm_audit_status = 1 OR t_service_applications.firm_audit_status = 3 OR t_service_applications.firm_audit_status = 4)
AND t_service_applications.user_id IN
<foreach collection="queryForm.employeeIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>)
OR (t_service_applications.user_id = #{queryForm.currentUserId}
AND t_service_applications.firm_audit_status != 0) <!-- 查看自己创建的所有数据,明确排除未提交的草稿 -->
)
AND t_service_applications.firm_audit_status IN (1, 3, 4)
</if>
<!-- 当用户指定了律所审核状态时,查看部门内指定状态的数据以及自己创建的所有数据(不包括未提交的草稿)-->
<if test="queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus != null and queryForm.firmAuditStatus != '')">
AND (
(firm_audit_status = #{queryForm.firmAuditStatus}
AND t_service_applications.user_id IN
<foreach collection="queryForm.employeeIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>)
OR (t_service_applications.user_id = #{queryForm.currentUserId}
AND t_service_applications.firm_audit_status != 0) <!-- 查看自己创建的所有数据,明确排除未提交的草稿 -->
)
AND t_service_applications.firm_audit_status = #{queryForm.firmAuditStatus}
</if>
</where>
ORDER BY
@ -300,10 +289,10 @@
SELECT
e.actual_name AS lawyerName,
tsa.certificate_number AS certificateNumber,
COALESCE(SUM(CASE WHEN tsa.service_start >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01') THEN tsa.service_duration ELSE 0 END), 0) AS quarterlyServiceDuration,
COALESCE(SUM(CASE WHEN tsa.service_start >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01') THEN tsa.workload_score ELSE 0 END), 0) AS quarterlyServiceCost,
COALESCE(SUM(CASE WHEN YEAR(tsa.service_start) = YEAR(NOW()) THEN tsa.service_duration ELSE 0 END), 0) AS annualServiceDuration,
COALESCE(SUM(CASE WHEN YEAR(tsa.service_start) = YEAR(NOW()) THEN tsa.workload_score ELSE 0 END), 0) AS annualServiceCost
COALESCE(SUM(CASE WHEN tsa.service_end >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01') THEN tsa.service_duration ELSE 0 END), 0) AS quarterlyServiceDuration,
COALESCE(SUM(CASE WHEN tsa.service_end >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01') THEN tsa.workload_score ELSE 0 END), 0) AS quarterlyServiceCost,
COALESCE(SUM(CASE WHEN YEAR(tsa.service_end) = YEAR(NOW()) THEN tsa.service_duration ELSE 0 END), 0) AS annualServiceDuration,
COALESCE(SUM(CASE WHEN YEAR(tsa.service_end) = YEAR(NOW()) THEN tsa.workload_score ELSE 0 END), 0) AS annualServiceCost
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
@ -333,10 +322,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId}
@ -378,10 +367,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId}
@ -424,10 +413,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId}
@ -464,10 +453,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -493,10 +482,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -525,10 +514,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId}
@ -555,10 +544,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -583,10 +572,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -603,7 +592,9 @@
SELECT
d.department_id AS firmId,
d.department_name AS firmName,
COUNT(DISTINCT e.employee_id) AS lawyerCount,
(SELECT COUNT(*) FROM t_employee e
WHERE e.department_id = d.department_id
AND e.deleted_flag = 0) AS lawyerCount,
COUNT(CASE WHEN tsa.association_audit_status != 0 THEN 1 END) AS reportCount,
COUNT(CASE WHEN tsa.association_audit_status = 3 THEN 1 END) AS approvedCount,
COUNT(CASE WHEN tsa.association_audit_status = 4 THEN 1 END) AS rejectCount,
@ -612,18 +603,17 @@
COALESCE(SUM(CASE WHEN tsa.association_audit_status = 3 THEN tsa.service_duration ELSE 0 END), 0) AS totalServiceDuration
FROM
t_department d
LEFT JOIN t_employee e ON e.department_id = d.department_id AND e.deleted_flag = 0
LEFT JOIN t_service_applications tsa ON tsa.user_id = e.employee_id
LEFT JOIN t_service_applications tsa ON tsa.firm_id = d.department_id
AND tsa.deleted_flag = 0
AND tsa.association_audit_status IN (1, 2, 3, 4)
<if test="queryForm.firmId != null">
AND tsa.firm_id = #{queryForm.firmId}
</if>
<if test="queryForm.startTime != null">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
WHERE
1 = 1
@ -667,10 +657,10 @@
WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.firmId != null">
AND tsa.firm_id = #{queryForm.firmId}
@ -688,10 +678,10 @@
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -711,10 +701,10 @@
tsa.deleted_flag = 0
AND tsa.firm_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -728,6 +718,7 @@
resultType="net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO">
SELECT
tsa.application_id AS applicationId,
tsa.parent_application_id AS parentApplicationId,
tsa.user_id AS userId,
te.actual_name AS userName,
tsa.firm_id AS firmId,
@ -750,10 +741,10 @@
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId}
@ -773,10 +764,10 @@
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.firmId != null and queryForm.firmId != ''">
and d.department_id = #{queryForm.firmId}
@ -802,10 +793,10 @@
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.firmId != null and queryForm.firmId != ''">
and d.department_id = #{queryForm.firmId}
@ -870,6 +861,7 @@
FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 1
AND tsa.firm_id = #{departmentId}
AND tsa.firm_id NOT IN (
SELECT DISTINCT e.department_id
FROM t_employee e
@ -893,6 +885,7 @@
FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 1
AND tsa.firm_id = #{departmentId}
AND tsa.firm_id IN (
SELECT DISTINCT e.department_id
FROM t_employee e
@ -967,8 +960,8 @@
LEFT JOIN t_goods tg ON tsa.activity_name_id = tg.goods_id
WHERE tsa.deleted_flag = 0
AND tsa.firm_id = #{firmId}
AND tsa.report_time &gt;= #{startTime}
AND tsa.report_time &lt;= #{endTime}
AND tsa.service_end &gt;= #{startTime}
AND tsa.service_end &lt;= #{endTime}
</select>
<!-- 查询律师列表(分页) -->
@ -995,10 +988,10 @@
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.firmId != null and queryForm.firmId != ''">
AND tsa.firm_id = #{queryForm.firmId}
@ -1026,10 +1019,10 @@
AND tsa.association_audit_status = 3
AND tsa.user_id = #{userId}
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
GROUP BY tsa.activity_name_id
) stats ON g.goods_id = stats.activity_name_id
@ -1053,10 +1046,10 @@
#{uid}
</foreach>
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
</where>
GROUP BY tsa.user_id, tsa.activity_name_id, g.goods_name
@ -1077,10 +1070,10 @@
AND tsa.firm_id = #{queryForm.firmId}
</if>
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
GROUP BY d.department_id, d.department_name
ORDER BY totalCount DESC
@ -1153,10 +1146,10 @@
AND tsa.association_audit_status = 3
AND tsa.firm_id = #{firmId}
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
GROUP BY tsa.activity_name_id
) stats ON g.goods_id = stats.activity_name_id
@ -1187,20 +1180,20 @@
WHERE deleted_flag = 0
AND association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND report_time &gt;= #{queryForm.startTime}
AND service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND report_time &lt;= #{queryForm.endTime}
AND service_end &lt;= #{queryForm.endTime}
</if>
GROUP BY user_id
) user_stats ON tsa.user_id = user_stats.user_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.firmId != null and queryForm.firmId != ''">
AND tsa.firm_id = #{queryForm.firmId}
@ -1229,20 +1222,20 @@
WHERE deleted_flag = 0
AND association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND report_time &gt;= #{queryForm.startTime}
AND service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND report_time &lt;= #{queryForm.endTime}
AND service_end &lt;= #{queryForm.endTime}
</if>
GROUP BY firm_id
) firm_stats ON tsa.firm_id = firm_stats.firm_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime}
AND tsa.service_end &gt;= #{queryForm.startTime}
</if>
<if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime}
AND tsa.service_end &lt;= #{queryForm.endTime}
</if>
<if test="queryForm.firmId != null and queryForm.firmId != ''">
AND tsa.firm_id = #{queryForm.firmId}
@ -1315,12 +1308,4 @@
ORDER BY tsa.create_time DESC
</select>
<!-- 获取指定前缀的最大备案编号 -->
<select id="getMaxFilingNo" resultType="java.lang.String">
SELECT filing_no
FROM t_service_applications
WHERE filing_no LIKE CONCAT(#{prefix}, '%')
ORDER BY filing_no DESC
LIMIT 1
</select>
</mapper>

2
yun-base/src/main/java/net/lab1024/sa/base/common/code/UserErrorCode.java

@ -37,7 +37,7 @@ public enum UserErrorCode implements ErrorCode {
LOGIN_FAIL_LOCK(30010, "登录连续失败已经被锁定,无法登录"),
LOGIN_FAIL_WILL_LOCK(30011, "登录连续失败将会锁定提醒"),
FORM_REPEAT_SUBMIT_PENALTY(30013, "有处罚记录,无法申请证明开具"),
FORM_REPEAT_SUBMIT_PENALTY(30013, "有处分记录,无法申请证明开具"),
HAS_EXIST(30014, "本案仅限一人申报,已由"),
HAS_EXIST1(30015, "律师申报"),

3
yun-base/src/main/java/net/lab1024/sa/base/module/support/message/controller/MessageController.java

@ -37,7 +37,8 @@ public class MessageController extends SupportBaseController {
return ResponseDTO.userErrorParam("用户未登录");
}
queryForm.setSearchCount(false);
// 消息中心展示分页器,必须查询总条数,否则前端只能停留在第一页。
queryForm.setSearchCount(true);
queryForm.setReceiverUserId(user.getUserId());
queryForm.setReceiverUserType(user.getUserType().getValue());
return ResponseDTO.ok(messageService.query(queryForm));

Loading…
Cancel
Save