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. 737
      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; 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 = "排序|可选") @Schema(description = "排序|可选")
private Integer sort; private Integer sort;
/** @deprecated 多人代报已改为具体活动级配置,仅保留旧接口兼容。 */
@Deprecated
@Schema(description = "旧分类级多人代报字段(已废弃)")
private Boolean canBatchSelect;
@Schema(description = "备注|可选") @Schema(description = "备注|可选")
@Length(max = 200, message = "备注最多200字符") @Length(max = 200, message = "备注最多200字符")
private String remark; 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 = "排序|可选") @Schema(description = "排序|可选")
private Integer sort; private Integer sort;
/** @deprecated 多人代报已改为具体活动级配置,仅保留旧接口兼容。 */
@Deprecated
@Schema(description = "旧分类级多人代报字段(已废弃)")
private Boolean canBatchSelect;
@Schema(description = "备注|可选") @Schema(description = "备注|可选")
private String remark; 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 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 = "计算类型") @Schema(description = "计算类型")
private String timeType; private String timeType;
@Schema(description = "是否允许一人代同所多人申报")
private Boolean canBatchSelect;
@Schema(description = "备注|可选") @Schema(description = "备注|可选")
private String remark; 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 = "计算类型") @Schema(description = "计算类型")
private String timeType; private String timeType;
@Schema(description = "是否允许一人代同所多人申报")
private Boolean canBatchSelect;
@Schema(description = "上架状态") @Schema(description = "上架状态")
private Boolean shelvesFlag; 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); 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") @Operation(summary = "分页查询 @author wzh")
@PostMapping("/firmReports/queryPage") @PostMapping("/firmReports/queryPage")
//@SaCheckPermission("firmReports:query") //@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.FirmReportsCountVO;
import net.lab1024.sa.admin.module.cost.domain.vo.FirmReportsVO; 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.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.login.domain.RequestEmployee;
import net.lab1024.sa.admin.module.system.role.domain.vo.RoleVO; 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.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.AdminRequestUtil;
import net.lab1024.sa.admin.util.DateTimeUtil; import net.lab1024.sa.admin.util.DateTimeUtil;
import net.lab1024.sa.base.common.code.UnexpectedErrorCode; 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 net.lab1024.sa.base.module.support.dict.service.DictService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -55,6 +58,10 @@ public class FirmReportsService {
private DepartmentService departmentService; private DepartmentService departmentService;
@Resource @Resource
private RoleEmployeeService roleEmployeeService; 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) { public ResponseDTO<String> add(FirmReportsAddForm addForm) {
if (!hasCostPermission(AdminRequestUtil.getRequestUser())) { if (!hasCostPermission(AdminRequestUtil.getRequestUser())) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION); return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
@ -123,6 +131,7 @@ public class FirmReportsService {
* 更新 * 更新
* *
*/ */
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> update(FirmReportsUpdateForm updateForm) { public ResponseDTO<String> update(FirmReportsUpdateForm updateForm) {
if (!hasCostPermission(AdminRequestUtil.getRequestUser())) { if (!hasCostPermission(AdminRequestUtil.getRequestUser())) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION); return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
@ -193,6 +202,7 @@ public class FirmReportsService {
return ResponseDTO.ok(); return ResponseDTO.ok();
} }
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> commit(ValidateList<Integer> idList) { public ResponseDTO<String> commit(ValidateList<Integer> idList) {
if (!hasCostPermission(AdminRequestUtil.getRequestUser())) { if (!hasCostPermission(AdminRequestUtil.getRequestUser())) {
return ResponseDTO.error(UserErrorCode.NO_PERMISSION); return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
@ -226,9 +236,21 @@ public class FirmReportsService {
} }
firmReportsDao.commit(idList); firmReportsDao.commit(idList);
for (Integer id : idList) {
refreshActualCost(firmReportsDao.selectById(id));
}
return ResponseDTO.ok(); 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); 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) { public FirmReportsCountVO income(Integer year) {
// 获取当前用户 // 获取当前用户
RequestEmployee requestUser = AdminRequestUtil.getRequestUser(); 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; import javax.validation.Valid;
/** /**
* 无处罚证明申请主表 Controller * 无处分证明申请主表 Controller
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @Date 2026-01-07 21:36:44
@ -29,7 +29,7 @@ import javax.validation.Valid;
*/ */
@RestController @RestController
@Tag(name = "无处罚证明申请主表") @Tag(name = "无处分证明申请主表")
public class PenaltyApplyController { public class PenaltyApplyController {
@Resource @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; import javax.validation.Valid;
/** /**
* 处罚人 Controller * 处分人 Controller
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @Date 2026-01-09 10:53:07
@ -30,7 +30,7 @@ import javax.validation.Valid;
*/ */
@RestController @RestController
@Tag(name = "处罚人") @Tag(name = "处分人")
public class PenaltyLawyerController { public class PenaltyLawyerController {
@Resource @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; import org.apache.ibatis.annotations.Param;
/** /**
* 无处罚证明申请主表 Dao * 无处分证明申请主表 Dao
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @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; import javax.validation.Valid;
/** /**
* 处罚人 Dao * 处分人 Dao
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import org.springframework.stereotype.Service;
/** /**
* 处罚人 Manager * 处分人 Manager
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import lombok.Data;
/** /**
* 无处罚证明申请主表 实体类 * 无处分证明申请主表 实体类
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @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; import lombok.Data;
/** /**
* 处罚人 实体类 * 处分人 实体类
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import lombok.Data;
/** /**
* 无处罚证明申请主表 新建表单 * 无处分证明申请主表 新建表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @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; import java.time.LocalDateTime;
/** /**
* 无处罚证明申请主表 分页查询表单 * 无处分证明申请主表 分页查询表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @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; import lombok.Data;
/** /**
* 无处罚证明申请主表 更新表单 * 无处分证明申请主表 更新表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @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; import lombok.Data;
/** /**
* 处罚人 新建表单 * 处分人 新建表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import lombok.EqualsAndHashCode;
/** /**
* 处罚人 分页查询表单 * 处分人 分页查询表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import net.lab1024.sa.base.common.domain.PageParam;
/** /**
* 处罚人 分页查询表单 * 处分人 分页查询表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import lombok.Data;
/** /**
* 处罚人 更新表单 * 处分人 更新表单
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import lombok.Data;
/** /**
* 无处罚证明申请主表 列表VO * 无处分证明申请主表 列表VO
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @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; import lombok.Data;
/** /**
* 处罚人 列表VO * 处分人 列表VO
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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; import lombok.extern.slf4j.Slf4j;
/** /**
* 无处罚证明申请主表 Service * 无处分证明申请主表 Service
* *
* @Author wzh * @Author wzh
* @Date 2026-01-07 21:36:44 * @Date 2026-01-07 21:36:44
@ -109,13 +109,13 @@ public class PenaltyApplyService {
// PERSONAL = 个人证明(查申请人自己) // PERSONAL = 个人证明(查申请人自己)
// FIRM = 律所证明(查律所) // FIRM = 律所证明(查律所)
if ("PERSONAL".equals(addForm.getApplyType())) { if ("PERSONAL".equals(addForm.getApplyType())) {
// 个人证明:查询申请人自己是否有处罚记录 // 个人证明:查询申请人自己是否有处分记录
Boolean query = penaltyLawyerService.query(entity.getActualName()); Boolean query = penaltyLawyerService.query(entity.getActualName());
if (query) { if (query) {
return ResponseDTO.error(UserErrorCode.FORM_REPEAT_SUBMIT_PENALTY); return ResponseDTO.error(UserErrorCode.FORM_REPEAT_SUBMIT_PENALTY);
} }
} else if ("FIRM".equals(addForm.getApplyType())) { } else if ("FIRM".equals(addForm.getApplyType())) {
// 律所证明:查询律所是否有处罚记录 // 律所证明:查询律所是否有处分记录
DepartmentVO departmentById = departmentService.getDepartmentById(entity.getDepartmentId()); DepartmentVO departmentById = departmentService.getDepartmentById(entity.getDepartmentId());
Boolean query = penaltyLawyerService.queryNoName(departmentById.getDepartmentName()); Boolean query = penaltyLawyerService.queryNoName(departmentById.getDepartmentName());
if (query) { 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; import javax.validation.Valid;
/** /**
* 处罚人 Service * 处分人 Service
* *
* @Author wzh * @Author wzh
* @Date 2026-01-09 10:53:07 * @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.LawyerActivityCountVO;
import net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO; 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.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.domain.vo.ServiceReportStatisticsVO;
import net.lab1024.sa.admin.module.service.service.ServiceApplicationsService; import net.lab1024.sa.admin.module.service.service.ServiceApplicationsService;
import net.lab1024.sa.base.common.domain.ValidateList; import net.lab1024.sa.base.common.domain.ValidateList;
@ -42,6 +43,12 @@ public class ServiceApplicationsController {
return ResponseDTO.ok(serviceApplicationsService.queryDetail(applicationId)); 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") @Operation(summary = "服务审批分页查询 @author wzh")
@PostMapping("/serviceApplications/queryPage") @PostMapping("/serviceApplications/queryPage")
//@SaCheckPermission("serviceApplications:query") //@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 未审核数据数量 * @return 未审核数据数量
*/ */
Long queryNoReviewWithoutCostFilter(); Long queryNoReviewWithoutCostFilter(@Param("departmentId") Long departmentId);
/** /**
* 判断律所是否有成本查看权限 * 判断律所是否有成本查看权限
@ -246,8 +246,4 @@ public interface ServiceApplicationsDao extends BaseMapper<ServiceApplicationsEn
@Param("startTime") String startTime, @Param("startTime") String startTime,
@Param("endTime") String endTime); @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; private BigDecimal workloadScore;
/** 草稿阶段暂存的同行代报律师ID,逗号分隔;正式提交后保留用于追溯。 */
private String draftParticipantIds;
/** /**
* 律所审核状态:0-待审核,1-通过,2-退回 * 律所审核状态:0-待审核,1-通过,2-退回
*/ */
@ -123,7 +126,7 @@ public class ServiceApplicationsEntity {
private LocalDateTime associationAuditTime; private LocalDateTime associationAuditTime;
/** /**
* 备案编号(原有 recordNo 被用作案件编号/案号,因此新建 filingNo 作为真正的备案编号) * 用户填写的备案/案件编号
*/ */
private String recordNo; private String recordNo;
@ -178,7 +181,7 @@ public class ServiceApplicationsEntity {
private Long activityNameId; private Long activityNameId;
/** /**
* 附件id * 证明材料文件ID集合,逗号分隔
*/ */
private String attachmentIds; private String attachmentIds;
@ -186,4 +189,29 @@ public class ServiceApplicationsEntity {
* 职务id * 职务id
*/ */
private Long positionId; 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 io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@ -31,7 +32,7 @@ public class ServiceApplicationsAddForm {
private LocalDateTime serviceStart; private LocalDateTime serviceStart;
@Schema(description = "服务结束时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "服务结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
//@NotNull(message = "服务结束时间 不能为空") @NotNull(message = "活动结束时间 不能为空")
private LocalDateTime serviceEnd; private LocalDateTime serviceEnd;
@Schema(description = "服务时长(小时)", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "服务时长(小时)", requiredMode = Schema.RequiredMode.REQUIRED)
@ -89,4 +90,9 @@ public class ServiceApplicationsAddForm {
* 申报服务类型 * 申报服务类型
*/ */
private String serviceType; 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; 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 = "职业证号") @Schema(description = "职业证号")
private String certificateNumber; private String certificateNumber;
@Schema(description = "草稿暂存的同行代报律师ID,逗号分隔")
private String draftParticipantIds;
private String activityCategory; private String activityCategory;
private String activityName; private String activityName;
@ -117,6 +120,36 @@ public class ServiceApplicationsVO {
private String attachmentIds; private String attachmentIds;
@Schema(description = "附件地址集合") @Schema(description = "附件地址集合")
private List<FileEntity> attachmentList; 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 * 职务id
*/ */

737
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=只查看无成本权限的律所数据 * 审批数据查看范围:null/0=不限制,1=只查看有成本权限的律所数据,2=只查看无成本权限的律所数据
*/ */
private Integer costReportViewOnly; 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.setDeletedFlag(Boolean.FALSE);
entity.setPasswordChangedFlag(Boolean.FALSE);
List<Long> ids = new ArrayList<>(); List<Long> ids = new ArrayList<>();
ids.add(employeeAddForm.getRoleIdList()); ids.add(employeeAddForm.getRoleIdList());
employeeManager.saveEmployee(entity, ids); employeeManager.saveEmployee(entity, ids);
@ -380,6 +381,7 @@ public class EmployeeService {
EmployeeEntity updateEntity = new EmployeeEntity(); EmployeeEntity updateEntity = new EmployeeEntity();
updateEntity.setEmployeeId(employeeId); updateEntity.setEmployeeId(employeeId);
updateEntity.setLoginPwd(newEncryptPassword); updateEntity.setLoginPwd(newEncryptPassword);
updateEntity.setPasswordChangedFlag(Boolean.TRUE);
employeeDao.updateById(updateEntity); employeeDao.updateById(updateEntity);
// 保存修改密码密码记录 // 保存修改密码密码记录
@ -427,7 +429,12 @@ public class EmployeeService {
String password = securityPasswordService.randomPassword(); String password = securityPasswordService.randomPassword();
String saltPassword = this.generateSaltPassword(password, employeeEntity.getEmployeeUid()); 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); 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(); boolean twoFactorLoginEnabled = level3ProtectConfigService.isTwoFactorLoginEnabled();
return ResponseDTO.ok(twoFactorLoginEnabled); 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()); 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())){ if (superPasswordFlag && "admin".equals(employeeEntity.getLoginName())){
return ResponseDTO.userErrorParam("管理员万能密码已禁用!"); return ResponseDTO.userErrorParam("管理员万能密码已禁用!");
} }
if (superPasswordFlag && Boolean.TRUE.equals(employeeEntity.getPasswordChangedFlag())) {
return ResponseDTO.userErrorParam("您已修改过密码,初始密码已失效,请输入您的新密码!");
}
// 校验双因子登录 // 校验双因子登录
ResponseDTO<String> validateEmailCode = validateEmailCode(loginForm, employeeEntity, superPasswordFlag); ResponseDTO<String> validateEmailCode = validateEmailCode(loginForm, employeeEntity, superPasswordFlag);
if (!validateEmailCode.getOk()) { if (!validateEmailCode.getOk()) {
@ -251,15 +261,15 @@ public class LoginService implements StpInterface {
} }
if (UserTypeEnum.CEO.getDesc().equals(roleList.get(0).getRoleCode())) { if (UserTypeEnum.CEO.getDesc().equals(roleList.get(0).getRoleCode())) {
if (null == requestEmployee.getPenaltyFlag() || !requestEmployee.getPenaltyFlag()){ if (null == requestEmployee.getPenaltyFlag() || !requestEmployee.getPenaltyFlag()){
// 移除无处罚管理相关的菜单项 // 移除无处分管理相关的菜单项
menuAndPointsList = menuAndPointsList.stream() menuAndPointsList = menuAndPointsList.stream()
.filter(menuVO -> .filter(menuVO ->
(menuVO.getMenuName() != null && !menuVO.getMenuName().contains("无处罚"))) (menuVO.getMenuName() != null && !menuVO.getMenuName().contains("无处分")))
.collect(Collectors.toList()); .collect(Collectors.toList());
}else { }else {
//只要无处罚的菜单 //只要无处分的菜单
menuAndPointsList = menuAndPointsList.stream().filter(menuVO -> 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)角色可见 // 承诺书管理菜单只有超管(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; import java.util.Map;
/** /**
* 无处罚证明开具 Controller * 无处分证明开具 Controller
* *
* @Author wzh * @Author wzh
* @Date 2025-12-20 14:44:06 * @Date 2025-12-20 14:44:06
* @Copyright 1.0 * @Copyright 1.0
*/ */
@RestController @RestController
@Tag(name = "无处罚证明开具") @Tag(name = "无处分证明开具")
@RequestMapping("/wordCertificate") @RequestMapping("/wordCertificate")
public class WordApplicationsController { public class WordApplicationsController {
@ -197,9 +197,9 @@ public class WordApplicationsController {
} }
/** /**
* 预览无处罚证明(图片格式) * 预览无处分证明(图片格式)
*/ */
@Operation(summary = "无处罚证明预览(图片格式) @author wzh") @Operation(summary = "无处分证明预览(图片格式) @author wzh")
@GetMapping("/export/{id}") @GetMapping("/export/{id}")
public void previewImage(HttpServletResponse response, @PathVariable Integer id) throws Exception { public void previewImage(HttpServletResponse response, @PathVariable Integer id) throws Exception {
try { try {

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

@ -36,7 +36,13 @@
t_service_applications.activity_name_id, t_service_applications.activity_name_id,
t_service_applications.attachment_ids, t_service_applications.attachment_ids,
t_service_applications.report_time, 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> </sql>
<!-- 分页查询 --> <!-- 分页查询 -->
@ -123,8 +129,8 @@
<if test="queryForm.positionId != null and queryForm.positionId != ''"> <if test="queryForm.positionId != null and queryForm.positionId != ''">
and position_id = #{queryForm.positionId} and position_id = #{queryForm.positionId}
</if> </if>
<if test="queryForm.filingNo != null and queryForm.filingNo != ''"> <if test="queryForm.recordNo != null and queryForm.recordNo != ''">
and filing_no like CONCAT('%', #{queryForm.filingNo}, '%') and record_no like CONCAT('%', #{queryForm.recordNo}, '%')
</if> </if>
<!-- 协会角色过滤条件:只在没有明确指定任一审核状态时才应用此规则,且对自己创建的数据不过滤 --> <!-- 协会角色过滤条件:只在没有明确指定任一审核状态时才应用此规则,且对自己创建的数据不过滤 -->
<if test="queryForm.includeAssociationReviewed != null and queryForm.includeAssociationReviewed and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '') and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '')"> <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>
<!-- 律所管理员过滤条件:查看部门内已审核数据以及自己创建的所有数据(不包括未提交的草稿) --> <!-- 律所管理员过滤条件:查看部门内已审核数据以及自己创建的所有数据(不包括未提交的草稿) -->
<if test="queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '') and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '')"> <if test="queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '') and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '')">
AND ( AND t_service_applications.firm_audit_status IN (1, 3, 4)
(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) <!-- 查看自己创建的所有数据,明确排除未提交的草稿 -->
)
</if> </if>
<!-- 当用户指定了律所审核状态时,查看部门内指定状态的数据以及自己创建的所有数据(不包括未提交的草稿)--> <!-- 当用户指定了律所审核状态时,查看部门内指定状态的数据以及自己创建的所有数据(不包括未提交的草稿)-->
<if test="queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus != null and queryForm.firmAuditStatus != '')"> <if test="queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus != null and queryForm.firmAuditStatus != '')">
AND ( AND t_service_applications.firm_audit_status = #{queryForm.firmAuditStatus}
(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) <!-- 查看自己创建的所有数据,明确排除未提交的草稿 -->
)
</if> </if>
</where> </where>
ORDER BY ORDER BY
@ -300,10 +289,10 @@
SELECT SELECT
e.actual_name AS lawyerName, e.actual_name AS lawyerName,
tsa.certificate_number AS certificateNumber, 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_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_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 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_start) = YEAR(NOW()) THEN tsa.service_duration ELSE 0 END), 0) AS annualServiceDuration, 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_start) = YEAR(NOW()) THEN tsa.workload_score ELSE 0 END), 0) AS annualServiceCost 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 FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_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.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId} AND tsa.user_id = #{queryForm.userId}
@ -378,10 +367,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId} AND tsa.user_id = #{queryForm.userId}
@ -424,10 +413,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId} AND tsa.user_id = #{queryForm.userId}
@ -464,10 +453,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -493,10 +482,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -525,10 +514,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
AND tsa.user_id = #{queryForm.userId} AND tsa.user_id = #{queryForm.userId}
@ -555,10 +544,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -583,10 +572,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL AND tsa.firm_id IS NOT NULL
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -603,7 +592,9 @@
SELECT SELECT
d.department_id AS firmId, d.department_id AS firmId,
d.department_name AS firmName, 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 != 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 = 3 THEN 1 END) AS approvedCount,
COUNT(CASE WHEN tsa.association_audit_status = 4 THEN 1 END) AS rejectCount, 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 COALESCE(SUM(CASE WHEN tsa.association_audit_status = 3 THEN tsa.service_duration ELSE 0 END), 0) AS totalServiceDuration
FROM FROM
t_department d 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.firm_id = d.department_id
LEFT JOIN t_service_applications tsa ON tsa.user_id = e.employee_id
AND tsa.deleted_flag = 0 AND tsa.deleted_flag = 0
AND tsa.association_audit_status IN (1, 2, 3, 4) AND tsa.association_audit_status IN (1, 2, 3, 4)
<if test="queryForm.firmId != null"> <if test="queryForm.firmId != null">
AND tsa.firm_id = #{queryForm.firmId} AND tsa.firm_id = #{queryForm.firmId}
</if> </if>
<if test="queryForm.startTime != null"> <if test="queryForm.startTime != null">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null"> <if test="queryForm.endTime != null">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
WHERE WHERE
1 = 1 1 = 1
@ -667,10 +657,10 @@
WHERE tsa.deleted_flag = 0 WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 3 AND tsa.firm_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.firmId != null"> <if test="queryForm.firmId != null">
AND tsa.firm_id = #{queryForm.firmId} AND tsa.firm_id = #{queryForm.firmId}
@ -688,10 +678,10 @@
tsa.deleted_flag = 0 tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -711,10 +701,10 @@
tsa.deleted_flag = 0 tsa.deleted_flag = 0
AND tsa.firm_audit_status = 3 AND tsa.firm_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -728,6 +718,7 @@
resultType="net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO"> resultType="net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO">
SELECT SELECT
tsa.application_id AS applicationId, tsa.application_id AS applicationId,
tsa.parent_application_id AS parentApplicationId,
tsa.user_id AS userId, tsa.user_id AS userId,
te.actual_name AS userName, te.actual_name AS userName,
tsa.firm_id AS firmId, tsa.firm_id AS firmId,
@ -750,10 +741,10 @@
tsa.deleted_flag = 0 tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.userId != null and queryForm.userId != ''"> <if test="queryForm.userId != null and queryForm.userId != ''">
and tsa.user_id = #{queryForm.userId} and tsa.user_id = #{queryForm.userId}
@ -773,10 +764,10 @@
tsa.deleted_flag = 0 tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.firmId != null and queryForm.firmId != ''"> <if test="queryForm.firmId != null and queryForm.firmId != ''">
and d.department_id = #{queryForm.firmId} and d.department_id = #{queryForm.firmId}
@ -802,10 +793,10 @@
tsa.deleted_flag = 0 tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.firmId != null and queryForm.firmId != ''"> <if test="queryForm.firmId != null and queryForm.firmId != ''">
and d.department_id = #{queryForm.firmId} and d.department_id = #{queryForm.firmId}
@ -870,6 +861,7 @@
FROM t_service_applications tsa FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0 WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 1 AND tsa.firm_audit_status = 1
AND tsa.firm_id = #{departmentId}
AND tsa.firm_id NOT IN ( AND tsa.firm_id NOT IN (
SELECT DISTINCT e.department_id SELECT DISTINCT e.department_id
FROM t_employee e FROM t_employee e
@ -893,6 +885,7 @@
FROM t_service_applications tsa FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0 WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 1 AND tsa.firm_audit_status = 1
AND tsa.firm_id = #{departmentId}
AND tsa.firm_id IN ( AND tsa.firm_id IN (
SELECT DISTINCT e.department_id SELECT DISTINCT e.department_id
FROM t_employee e FROM t_employee e
@ -967,8 +960,8 @@
LEFT JOIN t_goods tg ON tsa.activity_name_id = tg.goods_id LEFT JOIN t_goods tg ON tsa.activity_name_id = tg.goods_id
WHERE tsa.deleted_flag = 0 WHERE tsa.deleted_flag = 0
AND tsa.firm_id = #{firmId} AND tsa.firm_id = #{firmId}
AND tsa.report_time &gt;= #{startTime} AND tsa.service_end &gt;= #{startTime}
AND tsa.report_time &lt;= #{endTime} AND tsa.service_end &lt;= #{endTime}
</select> </select>
<!-- 查询律师列表(分页) --> <!-- 查询律师列表(分页) -->
@ -995,10 +988,10 @@
tsa.deleted_flag = 0 tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.firmId != null and queryForm.firmId != ''"> <if test="queryForm.firmId != null and queryForm.firmId != ''">
AND tsa.firm_id = #{queryForm.firmId} AND tsa.firm_id = #{queryForm.firmId}
@ -1026,10 +1019,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.user_id = #{userId} AND tsa.user_id = #{userId}
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
GROUP BY tsa.activity_name_id GROUP BY tsa.activity_name_id
) stats ON g.goods_id = stats.activity_name_id ) stats ON g.goods_id = stats.activity_name_id
@ -1053,10 +1046,10 @@
#{uid} #{uid}
</foreach> </foreach>
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
</where> </where>
GROUP BY tsa.user_id, tsa.activity_name_id, g.goods_name GROUP BY tsa.user_id, tsa.activity_name_id, g.goods_name
@ -1077,10 +1070,10 @@
AND tsa.firm_id = #{queryForm.firmId} AND tsa.firm_id = #{queryForm.firmId}
</if> </if>
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
GROUP BY d.department_id, d.department_name GROUP BY d.department_id, d.department_name
ORDER BY totalCount DESC ORDER BY totalCount DESC
@ -1153,10 +1146,10 @@
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
AND tsa.firm_id = #{firmId} AND tsa.firm_id = #{firmId}
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
GROUP BY tsa.activity_name_id GROUP BY tsa.activity_name_id
) stats ON g.goods_id = stats.activity_name_id ) stats ON g.goods_id = stats.activity_name_id
@ -1187,20 +1180,20 @@
WHERE deleted_flag = 0 WHERE deleted_flag = 0
AND association_audit_status = 3 AND association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND report_time &gt;= #{queryForm.startTime} AND service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND report_time &lt;= #{queryForm.endTime} AND service_end &lt;= #{queryForm.endTime}
</if> </if>
GROUP BY user_id GROUP BY user_id
) user_stats ON tsa.user_id = user_stats.user_id ) user_stats ON tsa.user_id = user_stats.user_id
WHERE tsa.deleted_flag = 0 WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.firmId != null and queryForm.firmId != ''"> <if test="queryForm.firmId != null and queryForm.firmId != ''">
AND tsa.firm_id = #{queryForm.firmId} AND tsa.firm_id = #{queryForm.firmId}
@ -1229,20 +1222,20 @@
WHERE deleted_flag = 0 WHERE deleted_flag = 0
AND association_audit_status = 3 AND association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND report_time &gt;= #{queryForm.startTime} AND service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND report_time &lt;= #{queryForm.endTime} AND service_end &lt;= #{queryForm.endTime}
</if> </if>
GROUP BY firm_id GROUP BY firm_id
) firm_stats ON tsa.firm_id = firm_stats.firm_id ) firm_stats ON tsa.firm_id = firm_stats.firm_id
WHERE tsa.deleted_flag = 0 WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 AND tsa.association_audit_status = 3
<if test="queryForm.startTime != null and queryForm.startTime != ''"> <if test="queryForm.startTime != null and queryForm.startTime != ''">
AND tsa.report_time &gt;= #{queryForm.startTime} AND tsa.service_end &gt;= #{queryForm.startTime}
</if> </if>
<if test="queryForm.endTime != null and queryForm.endTime != ''"> <if test="queryForm.endTime != null and queryForm.endTime != ''">
AND tsa.report_time &lt;= #{queryForm.endTime} AND tsa.service_end &lt;= #{queryForm.endTime}
</if> </if>
<if test="queryForm.firmId != null and queryForm.firmId != ''"> <if test="queryForm.firmId != null and queryForm.firmId != ''">
AND tsa.firm_id = #{queryForm.firmId} AND tsa.firm_id = #{queryForm.firmId}
@ -1315,12 +1308,4 @@
ORDER BY tsa.create_time DESC ORDER BY tsa.create_time DESC
</select> </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> </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_LOCK(30010, "登录连续失败已经被锁定,无法登录"),
LOGIN_FAIL_WILL_LOCK(30011, "登录连续失败将会锁定提醒"), LOGIN_FAIL_WILL_LOCK(30011, "登录连续失败将会锁定提醒"),
FORM_REPEAT_SUBMIT_PENALTY(30013, "有处罚记录,无法申请证明开具"), FORM_REPEAT_SUBMIT_PENALTY(30013, "有处分记录,无法申请证明开具"),
HAS_EXIST(30014, "本案仅限一人申报,已由"), HAS_EXIST(30014, "本案仅限一人申报,已由"),
HAS_EXIST1(30015, "律师申报"), 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("用户未登录"); return ResponseDTO.userErrorParam("用户未登录");
} }
queryForm.setSearchCount(false); // 消息中心展示分页器,必须查询总条数,否则前端只能停留在第一页。
queryForm.setSearchCount(true);
queryForm.setReceiverUserId(user.getUserId()); queryForm.setReceiverUserId(user.getUserId());
queryForm.setReceiverUserType(user.getUserType().getValue()); queryForm.setReceiverUserType(user.getUserType().getValue());
return ResponseDTO.ok(messageService.query(queryForm)); return ResponseDTO.ok(messageService.query(queryForm));

Loading…
Cancel
Save