diff --git a/tcctlo-admin/src/main/java/com/tcctlo/web/controller/system/SysRoleController.java b/tcctlo-admin/src/main/java/com/tcctlo/web/controller/system/SysRoleController.java index ddd410a6..beb07fb3 100644 --- a/tcctlo-admin/src/main/java/com/tcctlo/web/controller/system/SysRoleController.java +++ b/tcctlo-admin/src/main/java/com/tcctlo/web/controller/system/SysRoleController.java @@ -64,6 +64,16 @@ public class SysRoleController extends BaseController return getDataTable(list); } + @GetMapping("/getAll") + public AjaxResult getAll(SysRole role) + { + AjaxResult ajaxResult = new AjaxResult(); + ajaxResult.put("msg","查询成功"); + ajaxResult.put("code", 200); + ajaxResult.put("data", roleService.selectRoleList(role)); + return ajaxResult; + } + @Log(title = "角色管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:role:export')") @PostMapping("/export") diff --git a/tcctlo-admin/src/main/resources/application.yml b/tcctlo-admin/src/main/resources/application.yml index e554238a..9d16ce05 100644 --- a/tcctlo-admin/src/main/resources/application.yml +++ b/tcctlo-admin/src/main/resources/application.yml @@ -154,8 +154,9 @@ dromara: domain: http://47.109.202.121:9000/law-firm/ # 访问域名,注意“/”结尾,例如:http://minio.abc.com/abc/ base-path: law/ # 基础路径 serviceFilePath: D:\templeteWordDownload\ -#serviceFilePath: /backitems/lawFirm/wordTemplate/ +#serviceFilePath: /backitems/lawFirm/wordTemplate/template/ generatedWordPath: D:/word/ +#generatedWordPath: /backitems/lawFirm/wordTemplate/generateWord/ diff --git a/tcctlo-common/src/main/java/com/tcctlo/common/core/domain/entity/SysUser.java b/tcctlo-common/src/main/java/com/tcctlo/common/core/domain/entity/SysUser.java index 4a96fb4d..c7a0e1ed 100644 --- a/tcctlo-common/src/main/java/com/tcctlo/common/core/domain/entity/SysUser.java +++ b/tcctlo-common/src/main/java/com/tcctlo/common/core/domain/entity/SysUser.java @@ -64,6 +64,14 @@ public class SysUser extends BaseEntity /** 用户头像 */ private String avatar; + public List getRolesName() { + return rolesName; + } + + public void setRolesName(List rolesName) { + this.rolesName = rolesName; + } + /** 密码 */ private String password; @@ -94,6 +102,8 @@ public class SysUser extends BaseEntity /** 角色对象 */ private List roles; + List rolesName; + /** 角色组 */ private Long[] roleIds; diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/AuditRecordController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/AuditRecordController.java new file mode 100644 index 00000000..bafaca82 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/AuditRecordController.java @@ -0,0 +1,87 @@ +package com.tcctlo.law.controller; + +import com.tcctlo.common.core.domain.AjaxResult; +import org.springframework.web.bind.annotation.*; +import org.springframework.stereotype.Controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import com.tcctlo.law.service.IAuditRecordService; +import com.tcctlo.law.entity.AuditRecord; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + *

+ * 审核记录表 前端控制器 + *

+ * + * @author + * @since 2025-02-25 + */ + +@RestController +@RequestMapping("/auditRecord") +public class AuditRecordController { + + + @Autowired + private IAuditRecordService iAuditRecordService; + + @GetMapping(value = "/list") + public AjaxResult list(@RequestParam(required = false) Integer current, @RequestParam(required = false) Integer size) { + if (current == null) { + current = 1; + } + if (size == null) { + size = 10; + } + Page pageList = iAuditRecordService.list(current, size); + return AjaxResult.success(pageList); + } + + + @GetMapping(value = "/{id}") + public AjaxResult getById(@PathVariable("id") Long id) { + AuditRecord auditRecord = iAuditRecordService.getById(id); + return AjaxResult.success(auditRecord); + } + + @PostMapping(value = "/create") + public AjaxResult create(@RequestBody AuditRecord params) { + AjaxResult ajaxResult = new AjaxResult(); + if (iAuditRecordService.create(params)) { + ajaxResult.put("msg", "添加成功"); + ajaxResult.put("code", 200); + }else { + ajaxResult.put("msg", "添加失败"); + ajaxResult.put("code", 500); + } + return ajaxResult; + } + + /** + * 根据案件ID获取案件审核记录 + * @param caseId 案件ID + * @return 生和记录 + */ + @GetMapping(value = "selectByCaseId/{caseId}") + public AjaxResult selectByCaseId(@PathVariable("caseId") Long caseId) { + List list = iAuditRecordService.selectByCaseId(caseId); + return AjaxResult.success(list); + } + + + @PostMapping(value = "/delete/{id}") + public AjaxResult delete(@PathVariable("id") Long id) { + Integer result = iAuditRecordService.delete(id); + return AjaxResult.success(result); + } + + @PostMapping(value = "/update") + public AjaxResult update(@RequestBody AuditRecord params) { + Integer result = iAuditRecordService.update(params); + return AjaxResult.success(result); + } +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CaseInformationController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CaseInformationController.java index 747f3509..f6678396 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CaseInformationController.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CaseInformationController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tcctlo.common.core.controller.BaseController; import com.tcctlo.common.core.domain.AjaxResult; import com.tcctlo.law.entity.CaseInformation; +import com.tcctlo.law.entity.FileManager; import com.tcctlo.law.service.ICaseInformationService; import com.tcctlo.law.vo.CaseArchivedVO; import com.tcctlo.law.vo.CaseInformationEnterVO; @@ -11,6 +12,7 @@ import com.tcctlo.law.vo.CaseInformationListVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; /** @@ -40,6 +42,16 @@ public class CaseInformationController extends BaseController { return AjaxResult.success(iCaseInformationService.caseReview(params)); } + /** + * 案件相关文件上传 + * @param fileManager 案件相关文件 + * @return + */ + @PostMapping(value = "/caseInfoUpload") + public AjaxResult caseInfoUpload(@RequestBody List fileManager) { + return AjaxResult.success(iCaseInformationService.caseInfoUpload(fileManager)); + } + /** * 案件撤销 * @param params 参数:案件编号、收案状态【id、caseStatus】 @@ -50,6 +62,16 @@ public class CaseInformationController extends BaseController { return AjaxResult.success(iCaseInformationService.claimWithdrawal(params)); } + /** + * 案件终止 + * @param params 参数:案件编号、收案状态【id、caseStatus】 + * @return + */ + @PostMapping(value = "/closeCase") + public AjaxResult closeCase(@RequestBody Map params) { + return AjaxResult.success(iCaseInformationService.closeCase(params)); + } + /** * 设置案件结案 * @param params 参数:案件编号、审核状态、审核意见【id、auditStatus、auditOpinion】 diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CollectionRecordController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CollectionRecordController.java index 5dc6fa27..a0f7bf61 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CollectionRecordController.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/CollectionRecordController.java @@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tcctlo.common.core.domain.AjaxResult; import com.tcctlo.law.entity.CollectionRecord; import com.tcctlo.law.service.ICollectionRecordService; +import com.tcctlo.law.vo.CollectionRecordEnterVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Map; + /** *

* 收款记录表 前端控制器 @@ -43,12 +47,91 @@ public class CollectionRecordController { return AjaxResult.success(collectionRecord); } + /** + * 收费记录审核 + * @param map 参数 + * @return 数据集 + */ + @PostMapping(value = "/audit") + public AjaxResult audit(@RequestBody Map map) { + AjaxResult ajaxResult = null; + Boolean res = iCollectionRecordService.audit(map); + if (res){ + ajaxResult = AjaxResult.success(); + return ajaxResult; + }else { + ajaxResult = AjaxResult.error(); + return ajaxResult; + } + } + + /** + * 缴费记录删除 + * @param params 案件ID、缴费记录ID、关联缴费记录文件ID + * @return 是否删除成功 + */ + @PostMapping(value = "/deleteLogic") + public AjaxResult deleteLogic(@RequestBody Map params) { + AjaxResult ajaxResult = null; + Boolean res = iCollectionRecordService.deleteLogic(params); + if (res){ + ajaxResult = AjaxResult.success(); + return ajaxResult; + }else { + ajaxResult = AjaxResult.error(); + return ajaxResult; + } + } + + /** + * 根据案件ID查询缴费记录 + * @param caseId 案件ID + * @return 缴费记录 + */ + @GetMapping(value = "selectByCaseId/{caseId}") + public AjaxResult selectByCaseId(@PathVariable("caseId") Long caseId) { + List collectionRecordEnterVOS = iCollectionRecordService.selectByCaseId(caseId); + return AjaxResult.success(collectionRecordEnterVOS); + } + @PostMapping(value = "/create") public AjaxResult create(@RequestBody CollectionRecord params) { Integer result = iCollectionRecordService.create(params); return AjaxResult.success(result); } + + /** + * 批量缴费 + * @param params 参数 + * @return 结果集 + */ + @PostMapping(value = "/casePaymentBatch") + public AjaxResult casePaymentBatch(@RequestBody List params) { + + AjaxResult ajaxResult = null; + Boolean res = iCollectionRecordService.casePaymentBatch(params); + if (res){ + ajaxResult = AjaxResult.success(); + return ajaxResult; + }else { + ajaxResult = AjaxResult.error(); + return ajaxResult; + } + } + + /** + * 案件缴费 + * @param params 参数 + * @return 缴费结果 + */ + @PostMapping(value = "/casePayment") + public AjaxResult casePayment(@RequestBody CollectionRecordEnterVO params) { + + iCollectionRecordService.casePayment(params); + return AjaxResult.success(); + } + @PostMapping(value = "/delete/{id}") public AjaxResult delete(@PathVariable("id") Long id) { Integer result = iCollectionRecordService.delete(id); diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractFormParameterController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractFormParameterController.java new file mode 100644 index 00000000..d0626ad2 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractFormParameterController.java @@ -0,0 +1,63 @@ +package com.tcctlo.law.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.tcctlo.common.core.domain.AjaxResult; +import com.tcctlo.law.entity.ContractFormParameter; +import com.tcctlo.law.service.IContractFormParameterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 合同表单参数 前端控制器 + *

+ * + * @author + * @since 2025-02-21 + */ + +@RestController +@RequestMapping("/contractFormParameter") +public class ContractFormParameterController { + + + @Autowired + private IContractFormParameterService iContractFormParameterService; + + @GetMapping(value = "/list") + public AjaxResult list(@RequestParam(required = false) Integer current, @RequestParam(required = false) Integer size) { + if (current == null) { + current = 1; + } + if (size == null) { + size = 10; + } + Page pageList = iContractFormParameterService.list(current,size); + return AjaxResult.success(pageList); + } + + + @GetMapping(value = "/{id}") + public AjaxResult getById(@PathVariable("id") Long id) { + ContractFormParameter contractFormParameter = iContractFormParameterService.getById(id); + return AjaxResult.success(contractFormParameter); + } + + @PostMapping(value = "/create") + public AjaxResult create(@RequestBody ContractFormParameter params) { + Integer result = iContractFormParameterService.create(params); + return AjaxResult.success(result); + } + + @PostMapping(value = "/delete/{id}") + public AjaxResult delete(@PathVariable("id") Long id) { + Integer result = iContractFormParameterService.delete(id); + return AjaxResult.success(result); + } + + @PostMapping(value = "/update") + public AjaxResult update(@RequestBody ContractFormParameter params) { + Integer result = iContractFormParameterService.update(params); + return AjaxResult.success(result); + } +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractTemplateController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractTemplateController.java index ad081fbb..dfb33a26 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractTemplateController.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ContractTemplateController.java @@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tcctlo.common.core.domain.AjaxResult; import com.tcctlo.law.entity.ContractTemplate; import com.tcctlo.law.service.IContractTemplateService; -import com.tcctlo.law.vo.ImpulseInformationVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.net.MalformedURLException; import java.util.Map; /** @@ -63,7 +63,7 @@ public class ContractTemplateController { } @PostMapping(value = "/create") - public AjaxResult create(@RequestBody ContractTemplate params) { + public AjaxResult create(@RequestBody ContractTemplate params){ Integer result = iContractTemplateService.create(params); return AjaxResult.success(result); } @@ -87,9 +87,13 @@ public class ContractTemplateController { } - @GetMapping(value = "/getWord/{id}") - public AjaxResult getWord(@PathVariable("id") Long id) throws Exception { - iContractTemplateService.getWord(id); - return AjaxResult.success(); + @PostMapping(value = "/getWord") + public AjaxResult getWord(@RequestBody Map param) throws Exception { + String downloadUrl = iContractTemplateService.getWord(param); + AjaxResult ajaxResult = new AjaxResult(); + ajaxResult.put("msg", "word生成成功"); + ajaxResult.put("code", 200); + ajaxResult.put("downloadUrl", downloadUrl); + return ajaxResult; } } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ImpulseInformationController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ImpulseInformationController.java index 0ecb3334..cdf39571 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ImpulseInformationController.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/ImpulseInformationController.java @@ -8,6 +8,7 @@ import com.tcctlo.law.vo.ImpulseInformationVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; /** @@ -66,7 +67,18 @@ public class ImpulseInformationController { */ @PostMapping("/retrievalConflict") public AjaxResult retrievalConflict(@RequestBody ImpulseInformation impulseInformation) { - Boolean res = iImpulseInformationService.retrievalConflict(impulseInformation); + Map res = iImpulseInformationService.retrievalConflict(impulseInformation); + return AjaxResult.success(res); + } + + /** + * 利冲检索-批量检索 + * @param impulseInformation 利冲信息 + * @return 检索结果 + */ + @PostMapping("/retrievalConflictBatch") + public AjaxResult retrievalConflictBatch(@RequestBody List impulseInformation) { + Map res = iImpulseInformationService.retrievalConflictBatch(impulseInformation); return AjaxResult.success(res); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/IndexController.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/IndexController.java new file mode 100644 index 00000000..5635c2de --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/controller/IndexController.java @@ -0,0 +1,75 @@ +package com.tcctlo.law.controller; + +import com.tcctlo.common.core.domain.AjaxResult; +import com.tcctlo.law.entity.IndexStatistics; +import com.tcctlo.law.service.IIndexService; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * 首页控制器 + */ +@RestController +@RequestMapping("/caseIndex") +public class IndexController { + + @Resource + private IIndexService iIndexService; + + /** + * 案件类型统计 conflictStatistics + * + * @return 结果集 + */ + @GetMapping("/caseTypeStatistics") + public AjaxResult caseTypeStatistics(@RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { + List integerIntegerMap = iIndexService.caseTypeStatistics(startTime, endTime); + return AjaxResult.success(integerIntegerMap); + } + + /** + * 利冲统计 + * + * @return 结果集 + */ + @GetMapping("/conflictStatistics") + public AjaxResult conflictStatistics(@RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { + List integerIntegerMap = iIndexService.conflictStatistics(startTime, endTime); + return AjaxResult.success(integerIntegerMap); + } + + /** + * 费用统计 + * + * @return 结果集 + */ + @GetMapping("/costStatistics") + public AjaxResult costStatistics(@RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { + List integerIntegerMap = iIndexService.costStatistics(startTime, endTime); + return AjaxResult.success(integerIntegerMap); + } + + /** + * 收益走势 + * + * @return 结果集 + */ + @GetMapping("/earningsTrend") + public AjaxResult earningsTrend(@RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { + List integerIntegerMap = iIndexService.earningsTrend(startTime, endTime); + return AjaxResult.success(integerIntegerMap); + } + + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/AuditRecord.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/AuditRecord.java new file mode 100644 index 00000000..14f6aadb --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/AuditRecord.java @@ -0,0 +1,93 @@ +package com.tcctlo.law.entity; +import com.baomidou.mybatisplus.annotation.*; + +import java.util.Date; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; +/** + *

+ * 审核记录表 + *

+ * + * @author + * @since 2025-02-25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("audit_record") +public class AuditRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 关联案件ID + */ + private Long caseId; + + /** + * 审核人ID(关联系统用户表) + */ + private Long userId; + + /** + * 审核人名称 + */ + private String userName; + + /** + * 审核内容 + */ + private String auditContent; + + /** + * 审核状态【0:未审核,1:审核通过,2:审核不通过】 + */ + private Integer auditResult; + + /** + * 状态【0:正常,1:停用】 + */ + private Integer status; + + /** + * 删除标志【0:未删除,1:已删除】 + */ + @TableLogic + private Integer delFag; + + /** + * 创建者 + */ + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + /** + * 备注 + */ + private String remake; + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CaseInformation.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CaseInformation.java index 429a193a..af99406f 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CaseInformation.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CaseInformation.java @@ -130,7 +130,7 @@ public class CaseInformation implements Serializable { /** * 审核意见 */ - private String auditOpinion; + /*private String auditOpinion;*/ /** * 案件涉及委托方/相对方ID集合 diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ClashInfoVO.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ClashInfoVO.java new file mode 100644 index 00000000..36b1dc1b --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ClashInfoVO.java @@ -0,0 +1,49 @@ +package com.tcctlo.law.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 案件利冲提示信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ClashInfoVO { + + /** + * 案件id + */ + private Long caseId; + + /** + * 涉及案件名称 + */ + private String caseInfoName; + + /** + * 案件编号 + */ + private String caseInfoNo; + + /** + * 案件涉及(人/企业)--名称 + */ + private String caseName; + + /** + * 案件涉及(人/企业)--[身份证/信用代码] + */ + private String caseNo; + + /** + * 类型【0:个人,1:企业】 + */ + private Integer caseType; + + /** + * 是否是委托方【0:是,1:否】 + */ + private Integer isClient; +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CollectionRecord.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CollectionRecord.java index d796f5d6..9f3a83ca 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CollectionRecord.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/CollectionRecord.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.*; import java.util.Date; import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; /** @@ -48,6 +50,27 @@ public class CollectionRecord implements Serializable { */ private String collectionUrlId; + /** + * 收款时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date collectionDate; + + /** + * 收款人ID + */ + private Long userId; + + /** + * 收款人名称 + */ + private String userName; + + /** + * 审核状态(0:需要审核,1:不需要审核,2:未审核) + */ + private Integer auditStatus; + /** * 状态【0:正常,1:停用】 */ diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractFormParameter.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractFormParameter.java new file mode 100644 index 00000000..d09ef6b9 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractFormParameter.java @@ -0,0 +1,91 @@ +package com.tcctlo.law.entity; +import com.baomidou.mybatisplus.annotation.*; + +import java.util.Date; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; +/** + *

+ * 合同表单参数 + *

+ * + * @author + * @since 2025-02-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("contract_form_parameter") +public class ContractFormParameter implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 关联合同模板ID + */ + private Long contractId; + + /** + * 表单属性名【英文】 + */ + private String formAttrName; + + /** + * 表单属性名【释义】 + */ + private String formAttrExplain; + + /** + * 表单属性类型 + */ + private String formAttrType; + + /** + * 是否必填【0:必填,1:否】 + */ + private Integer isRequire; + + /** + * 状态【0:正常,1:停用】 + */ + private Integer status; + + /** + * 删除标志【0:未删除,1:已删除】 + */ + private Integer delFag; + + /** + * 创建者 + */ + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + /** + * 备注 + */ + private String remake; + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractTemplate.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractTemplate.java index f22627cf..b306f783 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractTemplate.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/ContractTemplate.java @@ -44,16 +44,31 @@ public class ContractTemplate implements Serializable { */ private String filePath; + /** + * 原始模版路径 + */ + private String filePathSource; + /** * 阿里云OSS访问地址 */ private String fileUrl; + /** + * 原始模版阿里云OSS访问地址 + */ + private String fileUrlSource; + /** * 生成的新文件名 */ private String newFileName; + /** + * 生成的原始模板文件新名称 + */ + private String newFileNameSource; + /** * 电子签章位置(X轴) */ diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/FileManager.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/FileManager.java index aab4b578..5f32bcad 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/FileManager.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/FileManager.java @@ -3,8 +3,12 @@ import com.baomidou.mybatisplus.annotation.*; import java.util.Date; import java.io.Serializable; + +import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + /** *

* 文件管理 @@ -14,6 +18,8 @@ import lombok.EqualsAndHashCode; * @since 2025-02-06 */ @Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) @TableName("file_manager") public class FileManager implements Serializable { @@ -47,7 +53,7 @@ public class FileManager implements Serializable { private String fileUrl; /** - * 文件类型【0:归档文件,1:收款记录文件】 + * 文件类型【0:归档文件,1:收款记录文件,2:案件相关文件】 */ private Integer fileType; diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/IndexStatistics.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/IndexStatistics.java new file mode 100644 index 00000000..5a139550 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/IndexStatistics.java @@ -0,0 +1,16 @@ +package com.tcctlo.law.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 首页统计实体类 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class IndexStatistics { + private String name; + private Double value; +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/wordTemplateEntity/BaseWordEntity.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/wordTemplateEntity/BaseWordEntity.java new file mode 100644 index 00000000..c2932d8f --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/entity/wordTemplateEntity/BaseWordEntity.java @@ -0,0 +1,36 @@ +package com.tcctlo.law.entity.wordTemplateEntity; + +import com.deepoove.poi.config.Name; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class BaseWordEntity { + + /** + * 甲方 + */ + @Name("firstParty") + private String firstParty; + + /** + * 承办律师 + */ + @Name("solicitor") + private String solicitor; + + /** + * 统一社会信用代码或身份证号码 + */ + @Name("socialCreditCode") + private String socialCreditCode; + + /** + * 地址 + */ + @Name("address") + private String address; +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/AuditRecordMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/AuditRecordMapper.java new file mode 100644 index 00000000..b4555261 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/AuditRecordMapper.java @@ -0,0 +1,25 @@ +package com.tcctlo.law.mapper; + +import com.tcctlo.law.entity.AuditRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 审核记录表 Mapper 接口 + *

+ * + * @author + * @since 2025-02-25 + */ +public interface AuditRecordMapper extends BaseMapper { + + /** + * 根据案件ID查询审核记录 + * @param caseId 案件ID + * @return 结果集 + */ + List selectByCaseId(@Param("caseId") Long caseId); +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CaseInformationMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CaseInformationMapper.java index d7c9c409..54911824 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CaseInformationMapper.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CaseInformationMapper.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.tcctlo.law.vo.CaseInformationListVO; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Map; @@ -27,6 +29,21 @@ public interface CaseInformationMapper extends BaseMapper { */ Page selectCondition(@Param("page") Page page, @Param("condition") Map condition); + /** + * 修改案件审核状态 + * @param caseId 案件Id + * @param auditStatus 审核状态吗 + * @return 结果集 + */ + int updateAuditStatusInt(@Param("caseId") Long caseId, @Param("auditStatus") Integer auditStatus); + + /** + * + * @param caseId 案件ID + * @param amountReceived 收款金额 + * @return 结果集 + */ + int updateCaseAmount(@Param("caseId") Long caseId, @Param("amountReceived") BigDecimal amountReceived); /** * 根据案件ID查询案件信息 @@ -83,4 +100,43 @@ public interface CaseInformationMapper extends BaseMapper { * @return 结案结果 */ Boolean caseClosed(@Param("params") Map params); + + /** + * 根据业务类型查询案件数量 + * @param type 业务类型 + * @return 结果集 + */ + Integer selectCountByBusinessType(@Param("type") Integer type, + @Param("startTime")Date startTime, + @Param("endTime")Date endTime); + + /** + * 利冲统计 + * @param caseStatus 收案状态 + * @return 结果集 + */ + Integer conflictStatistics(@Param("caseStatus") Integer caseStatus, + @Param("startTime")Date startTime, + @Param("endTime")Date endTime); + + /** + * 未收款统计 + * @return 结果集 + */ + Integer outstandingPayment(@Param("startTime")Date startTime, + @Param("endTime")Date endTime); + + /** + * 部分收费统计 + * @return 结果集 + */ + Integer partialCharge(@Param("startTime")Date startTime, + @Param("endTime")Date endTime); + + /** + * 逾期未收费 + * @return 结果集 + */ + Integer overdue(@Param("startTime")Date startTime, + @Param("endTime")Date endTime); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CollectionRecordMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CollectionRecordMapper.java index 1df46958..ca20492a 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CollectionRecordMapper.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/CollectionRecordMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.tcctlo.law.vo.CollectionRecordEnterVO; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -31,6 +32,13 @@ public interface CollectionRecordMapper extends BaseMapper { */ int removeByCaseId(@Param("caseIds") List caseIds); + /** + * 根据缴费记录ID删除缴费记录 + * @param id 缴费记录ID + * @return 删除结果 + */ + Boolean deleteLogic(@Param("id") Long id); + /** * 根据案件ID和收款记录ID删除收款记录 * @param id 收款记录ID @@ -38,4 +46,20 @@ public interface CollectionRecordMapper extends BaseMapper { * @return 结果集 */ int removeByCaseIdAdnRecordId(@Param("id") Long id, @Param("caseId") Long caseId); + + + /** + * 收益记录趋势 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 结果集 + */ + List earningsTrend(@Param("startTime") Date startTime, @Param("endTime") Date endTime); + + /** + * 收费记录审核 + * @param id id + * @return 结果集 + */ + int audit(@Param("id") Long id); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractFormParameterMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractFormParameterMapper.java new file mode 100644 index 00000000..7837537f --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractFormParameterMapper.java @@ -0,0 +1,16 @@ +package com.tcctlo.law.mapper; + +import com.tcctlo.law.entity.ContractFormParameter; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 合同表单参数 Mapper 接口 + *

+ * + * @author + * @since 2025-02-21 + */ +public interface ContractFormParameterMapper extends BaseMapper { + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractTemplateMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractTemplateMapper.java index 70685c74..2924bce2 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractTemplateMapper.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/ContractTemplateMapper.java @@ -1,10 +1,13 @@ package com.tcctlo.law.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tcctlo.law.entity.ContractTemplate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.tcctlo.law.entity.wordTemplateEntity.BaseWordEntity; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** *

@@ -22,4 +25,19 @@ public interface ContractTemplateMapper extends BaseMapper { * @return 结果集 */ Integer deleteTemplate(@Param("ids") List ids); + + /** + * 根据案件编号查询合同模板参数 + * @param caseId 案件ID + * @return 结果集 + */ + List selectWordParam(@Param("caseId") Long caseId); + + /** + * 条件分页查询 + * @param page 分页 + * @param condition 条件 + * @return 结果集 + */ + Page selectCondition(@Param("page") Page page, @Param("condition") Map condition); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/FileManagerMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/FileManagerMapper.java index 01671fe8..248fa10b 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/FileManagerMapper.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/FileManagerMapper.java @@ -53,4 +53,11 @@ public interface FileManagerMapper extends BaseMapper { * @return 结果集 */ List selectFileByCaseId(@Param("caseId") Long caseId); + + /** + * 根据收款记录表中记录的文件ID查询文件 + * @param ids ids + * @return 数据集 + */ + List selectByCRid(@Param("ids") List ids); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/IndexMapper.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/IndexMapper.java new file mode 100644 index 00000000..45c55164 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/mapper/IndexMapper.java @@ -0,0 +1,5 @@ +package com.tcctlo.law.mapper; + +public interface IndexMapper { + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IAuditRecordService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IAuditRecordService.java new file mode 100644 index 00000000..67a71ba5 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IAuditRecordService.java @@ -0,0 +1,72 @@ +package com.tcctlo.law.service; + +import com.tcctlo.law.entity.AuditRecord; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.List; + +/** + *

+ * 审核记录表 服务类 + *

+ * + * @author + * @since 2025-02-25 + */ +public interface IAuditRecordService { + + /** + *

+ * 分页列表查询 + *

+ * @param pageNo + * @param pageSize + * @return + */ + Page list(Integer pageNo, Integer pageSize); + + /** + *

+ * 详情接口 + *

+ * @param id + * @return + */ + AuditRecord getById(Long id); + + /** + *

+ * 新增接口 + *

+ * @param auditRecord + * @return + */ + Boolean create(AuditRecord auditRecord); + + + /** + *

+ * 删除接口 + *

+ * @param id + * @return + */ + Integer delete(Long id); + + /** + *

+ * 更新接口 + *

+ * @param auditRecord + * @return + */ + Integer update(AuditRecord auditRecord); + + /** + * 根据案件ID查询审核记录 + * @param caseId 案件ID + * @return 结果集 + */ + List selectByCaseId(Long caseId); +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICaseInformationService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICaseInformationService.java index 1cc4e476..0ddf8dd4 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICaseInformationService.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICaseInformationService.java @@ -3,10 +3,12 @@ package com.tcctlo.law.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.tcctlo.law.entity.CaseInformation; +import com.tcctlo.law.entity.FileManager; import com.tcctlo.law.vo.CaseArchivedVO; import com.tcctlo.law.vo.CaseInformationEnterVO; import com.tcctlo.law.vo.CaseInformationListVO; +import java.util.List; import java.util.Map; /** @@ -129,10 +131,25 @@ public interface ICaseInformationService extends IService{ */ Boolean claimWithdrawal(Map params); + + /** + * 案件终止 + * @param params 参数 + * @return 是否终止成功 + */ + Boolean closeCase(Map params); + /** * 案件结案 * @param params 参数 * @return 是否结案成功 */ Boolean caseClosed(Map params); + + /** + * 案件相关文件上传 + * @param fileManager 案件相关文件 + * @return 是否上传成功 + */ + Boolean caseInfoUpload(List fileManager); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICollectionRecordService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICollectionRecordService.java index 65d7f5e1..6c772cb1 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICollectionRecordService.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/ICollectionRecordService.java @@ -3,6 +3,10 @@ package com.tcctlo.law.service; import com.tcctlo.law.entity.CollectionRecord; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.tcctlo.law.vo.CollectionRecordEnterVO; + +import java.util.List; +import java.util.Map; /** *

@@ -12,52 +16,93 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; * @author 张世琪 * @since 2025-02-06 */ -public interface ICollectionRecordService extends IService{ - +public interface ICollectionRecordService extends IService { + /** - *

- * 分页列表查询 - *

- * @param pageNo - * @param pageSize - * @return - */ + *

+ * 分页列表查询 + *

+ * + * @param pageNo + * @param pageSize + * @return + */ Page list(Integer pageNo, Integer pageSize); - + /** - *

- * 详情接口 - *

- * @param id - * @return - */ + *

+ * 详情接口 + *

+ * + * @param id + * @return + */ CollectionRecord getById(Long id); /** - *

- * 新增接口 - *

- * @param collectionRecord - * @return - */ + *

+ * 新增接口 + *

+ * + * @param collectionRecord + * @return + */ Integer create(CollectionRecord collectionRecord); - - + + /** - *

- * 删除接口 - *

- * @param id - * @return - */ + *

+ * 删除接口 + *

+ * + * @param id + * @return + */ Integer delete(Long id); /** - *

- * 更新接口 - *

- * @param collectionRecord - * @return - */ + *

+ * 更新接口 + *

+ * + * @param collectionRecord + * @return + */ Integer update(CollectionRecord collectionRecord); + + /** + * 案件缴费 + * + * @param params 参数 + */ + void casePayment(CollectionRecordEnterVO params); + + /** + * 批量案件缴费 + * + * @param params 参数 + */ + Boolean casePaymentBatch(List params); + + /** + * 逻辑删除缴费记录 + * + * @param id 缴费记录ID + * @return 是否删除成功 + */ + Boolean deleteLogic(Map params); + + /** + * 根据案件ID查询缴费记录 + * @param caseId 案件ID + * @return 结果集 + */ + List selectByCaseId(Long caseId); + + /** + * 收费记录审核 + * @param map 参数 + * @return 结果集 + */ + Boolean audit(Map map); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractFormParameterService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractFormParameterService.java new file mode 100644 index 00000000..8770ae8a --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractFormParameterService.java @@ -0,0 +1,63 @@ +package com.tcctlo.law.service; + +import com.tcctlo.law.entity.ContractFormParameter; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** + *

+ * 合同表单参数 服务类 + *

+ * + * @author + * @since 2025-02-21 + */ +public interface IContractFormParameterService { + + /** + *

+ * 分页列表查询 + *

+ * @param pageNo + * @param pageSize + * @return + */ + Page list(Integer pageNo, Integer pageSize); + + /** + *

+ * 详情接口 + *

+ * @param id + * @return + */ + ContractFormParameter getById(Long id); + + /** + *

+ * 新增接口 + *

+ * @param contractFormParameter + * @return + */ + Integer create(ContractFormParameter contractFormParameter); + + + /** + *

+ * 删除接口 + *

+ * @param id + * @return + */ + Integer delete(Long id); + + /** + *

+ * 更新接口 + *

+ * @param contractFormParameter + * @return + */ + Integer update(ContractFormParameter contractFormParameter); +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractTemplateService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractTemplateService.java index 044ba0f0..e84aa933 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractTemplateService.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IContractTemplateService.java @@ -1,9 +1,9 @@ package com.tcctlo.law.service; -import com.tcctlo.law.entity.ContractTemplate; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.tcctlo.law.entity.ContractTemplate; -import java.io.FileNotFoundException; +import java.net.MalformedURLException; import java.util.Map; /** @@ -82,7 +82,7 @@ public interface IContractTemplateService { /** * 批量删除 * - * @param ids ids + * @param param ids * @return 结果集 */ Integer deleteTemplate(Map param); @@ -91,5 +91,5 @@ public interface IContractTemplateService { * 根据word模板生成word * @param id 模板id */ - void getWord(Long id) throws Exception; + String getWord(Map param) throws Exception; } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IImpulseInformationService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IImpulseInformationService.java index 1265942e..404e115a 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IImpulseInformationService.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IImpulseInformationService.java @@ -1,5 +1,6 @@ package com.tcctlo.law.service; +import com.tcctlo.law.entity.ClashInfoVO; import com.tcctlo.law.entity.ImpulseInformation; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -76,5 +77,12 @@ public interface IImpulseInformationService extends IService * @param impulseInformation 利冲信息 * @return 是否利冲 */ - Boolean retrievalConflict(ImpulseInformation impulseInformation); + Map retrievalConflict(ImpulseInformation impulseInformation); + + /** + * 利冲检索-批量 + * @param impulseInformation 利冲信息 + * @return 结果集 + */ + Map retrievalConflictBatch(List impulseInformation); } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IIndexService.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IIndexService.java new file mode 100644 index 00000000..eeed3e4b --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/IIndexService.java @@ -0,0 +1,42 @@ +package com.tcctlo.law.service; + +import com.tcctlo.law.entity.IndexStatistics; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 首页service + */ +public interface IIndexService { + + /** + * 案件类型统计 + * + * @return 结果集 + */ + List caseTypeStatistics(Date startTime, Date endTime); + + /** + * 利冲统计 + * + * @return 结果集 + */ + List conflictStatistics(Date startTime, Date endTime); + + /** + * 费用统计 + * + * @return 结果集 + */ + List costStatistics(Date startTime, Date endTime); + + /** + * 收益走势 + * @param startTime 其实 + * @param endTime + * @return + */ + List earningsTrend(Date startTime, Date endTime); +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/AuditRecordServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/AuditRecordServiceImpl.java new file mode 100644 index 00000000..514abe44 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/AuditRecordServiceImpl.java @@ -0,0 +1,74 @@ +package com.tcctlo.law.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tcctlo.common.core.domain.model.LoginUser; +import com.tcctlo.common.utils.SecurityUtils; +import com.tcctlo.law.entity.AuditRecord; +import com.tcctlo.law.mapper.AuditRecordMapper; +import com.tcctlo.law.mapper.CaseInformationMapper; +import com.tcctlo.law.service.IAuditRecordService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +/** +*

+* 审核记录表 服务实现类 +*

+* +* @author +* @since 2025-02-25 +*/ +@Service +public class AuditRecordServiceImpl extends ServiceImpl implements IAuditRecordService { + + + @Resource + private AuditRecordMapper auditRecordMapper; + + @Resource + private CaseInformationMapper caseInformationMapper; + + @Override + public Page list(Integer pageNo, Integer pageSize) { + return auditRecordMapper.selectPage(new Page<>(pageNo, pageSize), new QueryWrapper<>()); + } + + @Override + public AuditRecord getById(Long id) { + AuditRecord auditRecord = auditRecordMapper.selectById(id); + return auditRecord; + } + + @Override + public Boolean create(AuditRecord auditRecord) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserId(); + String username = loginUser.getUsername(); + String nickName = loginUser.getUser().getNickName(); + auditRecord.setUserId(userId); + auditRecord.setUserName(nickName); + caseInformationMapper.updateAuditStatusInt(auditRecord.getCaseId(), auditRecord.getAuditResult()); + return auditRecordMapper.insert(auditRecord) > 0; + } + + @Override + public Integer delete(Long id) { + return auditRecordMapper.deleteById(id); + } + + @Override + public Integer update(AuditRecord auditRecord) { + return auditRecordMapper.updateById(auditRecord); + } + + @Override + public List selectByCaseId(Long caseId) { + return auditRecordMapper.selectByCaseId(caseId); + } + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CaseInformationServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CaseInformationServiceImpl.java index 9cc973cf..c965fabc 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CaseInformationServiceImpl.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CaseInformationServiceImpl.java @@ -2,8 +2,10 @@ package com.tcctlo.law.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tcctlo.common.core.domain.entity.SysRole; import com.tcctlo.common.core.domain.model.LoginUser; import com.tcctlo.common.utils.SecurityUtils; import com.tcctlo.common.utils.StringUtils; @@ -23,7 +25,10 @@ import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -46,6 +51,9 @@ public class CaseInformationServiceImpl extends ServiceImpl page = new Page<>(pageNo, pageSize); Page caseInformationPage = caseInformationMapper.selectCondition(page, params); for (CaseInformationListVO item : caseInformationPage.getRecords()) { - /*item.setEntrustingParty(informationMapper.selectByCaseId(item.getId(), 0).stream().map(ImpulseInformation::getCaseName).collect(Collectors.joining(","))); //委托方 - item.setOpposite(informationMapper.selectByCaseId(item.getId(), 1).stream().map(ImpulseInformation::getCaseName).collect(Collectors.joining(","))); //相对方 - item.setAttorneyAgent(caseLawyerMapper.selectAttorneyAgentLawByCaseId(item.getId()).getLawyerName()); //代理律师 - item.setAssistingLawyer(caseLawyerMapper.selectAssistingLawyerByCaseId(item.getId()).stream().map(CaseLawyer::getLawyerName).collect(Collectors.joining(","))); //协办律师 - int fileNum = caseInformationMapper.selectCaseFileNum(item.getId()); - item.setFileFlag(fileNum > 0); - item.setFileList(fileManagerMapper.selectFileByCaseId(item.getId()));*/ + + Date paymentDeadline = item.getPaymentDeadline(); + if (paymentDeadline != null) { + if (DateUtil.compare(paymentDeadline, new Date()) < 0 && item.getAmountReceivedSum().compareTo(item.getAmountReceivable()) < 0) { + item.setCollectionStatus(3); + } + } List entrustingParty = informationMapper.selectByCaseId(item.getId(), 0); - if (CollUtil.isNotEmpty(entrustingParty)){ + if (CollUtil.isNotEmpty(entrustingParty)) { item.setEntrustingParty(entrustingParty.stream().map(ImpulseInformation::getCaseName).collect(Collectors.joining(","))); } List opposite = informationMapper.selectByCaseId(item.getId(), 1); - if (CollUtil.isNotEmpty(opposite)){ + if (CollUtil.isNotEmpty(opposite)) { item.setOpposite(opposite.stream().map(ImpulseInformation::getCaseName).collect(Collectors.joining(","))); } CaseLawyer attorneyAgent = caseLawyerMapper.selectAttorneyAgentLawByCaseId(item.getId()); - if (BeanUtil.isNotEmpty(attorneyAgent)){ + if (BeanUtil.isNotEmpty(attorneyAgent)) { item.setAttorneyAgent(attorneyAgent.getLawyerName()); } List assistingLawyer = caseLawyerMapper.selectAssistingLawyerByCaseId(item.getId()); - if (CollUtil.isNotEmpty(assistingLawyer)){ + if (CollUtil.isNotEmpty(assistingLawyer)) { item.setAssistingLawyer(assistingLawyer.stream().map(CaseLawyer::getLawyerName).collect(Collectors.joining(","))); } + item.setUncollectedMoney(item.getAmountReceivable().subtract(item.getAmountReceivedSum())); + int fileNum = caseInformationMapper.selectCaseFileNum(item.getId()); item.setFileFlag(fileNum > 0); item.setFileList(fileManagerMapper.selectFileByCaseId(item.getId())); @@ -205,7 +215,6 @@ public class CaseInformationServiceImpl extends ServiceImpl list) { + List resList = new ArrayList<>(); + ArrayList clashInfoVOS = new ArrayList<>(); + for (ImpulseInformation item : list) { + item.setIsClient(1 - item.getIsClient()); + resList.addAll(impulseInformationMapper.retrievalConflict(item)); + } + for (ImpulseInformation item : resList) { + //案件名称、委托人\相对方名称、类型【个人/企业】 + ClashInfoVO clashInfoVO = new ClashInfoVO(); + + clashInfoVO.setCaseInfoName(item.getCaseName()); + } + return "null"; + } @Override @Transactional(isolation = Isolation.DEFAULT, rollbackFor = Exception.class) public Boolean enterCaseInfo(CaseInformationEnterVO caseInfo) { + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserId(); + String username = loginUser.getUsername(); + String nickName = loginUser.getUser().getNickName(); try { CaseInformation caseInformation = caseInfo.getCaseInformation(); //案件信息 - caseInformation.setCaseNo(new GenerateCaseNo().generateCaseNo()); //生成案件编号 + caseInformation.setCaseNo(GenerateCaseNo.generateRecordNumber()); //生成案件编号 caseInformationMapper.insert(caseInfo.getCaseInformation()); //插入案件信息 Long caseId = caseInformation.getId(); //获取案件ID //插入案件关联利冲信息【设置委托方和相对方】 List impulseInformationList = new ArrayList<>(); List entrustingParty = caseInfo.getEntrustingParty(); - if (CollUtil.isNotEmpty(entrustingParty)){ + if (CollUtil.isNotEmpty(entrustingParty)) { impulseInformationList.addAll(caseInfo.getEntrustingParty().stream().peek(item -> { item.setCaseId(caseId); item.setIsClient(0); }).collect(Collectors.toList())); } List opposite = caseInfo.getOpposite(); - if (CollUtil.isNotEmpty(opposite)){ + if (CollUtil.isNotEmpty(opposite)) { impulseInformationList.addAll(caseInfo.getOpposite().stream().peek(item -> { item.setCaseId(caseId); item.setIsClient(1); }).collect(Collectors.toList())); - informationService.saveBatch(impulseInformationList); - List impulseInformationIds = impulseInformationList.stream().map(item -> item.getId()).collect(Collectors.toList()); - caseInformation.setImpulseInformationIds(StringUtils.join(impulseInformationIds, ",")); } + informationService.saveBatch(impulseInformationList); + List impulseInformationIds = impulseInformationList.stream().map(item -> item.getId()).collect(Collectors.toList()); + caseInformation.setImpulseInformationIds(StringUtils.join(impulseInformationIds, ",")); + //插入案件关联律师数据 List caseLawyerList = new ArrayList<>(); CaseLawyer attorneyAgent = caseInfo.getAttorneyAgent(); - if (BeanUtil.isNotEmpty(attorneyAgent)){ + if (BeanUtil.isNotEmpty(attorneyAgent)) { attorneyAgent.setLawyerType(0); attorneyAgent.setCaseId(caseId); caseLawyerList.add(attorneyAgent); //代理律师 } List assistingLawyer = caseInfo.getAssistingLawyer(); - if (CollUtil.isNotEmpty(assistingLawyer)){ + if (CollUtil.isNotEmpty(assistingLawyer)) { caseLawyerList.addAll(assistingLawyer.stream().peek(item -> { item.setCaseId(caseId); item.setLawyerType(1); }).collect(Collectors.toList())); //协办律师 - caseLawyerService.saveBatch(caseLawyerList); - List caseLawyerIds = caseLawyerList.stream().map(item -> item.getLawyerId()).collect(Collectors.toList()); - caseInformation.setCaseLawyerIds(StringUtils.join(caseLawyerIds, ",")); - caseInformationMapper.updateById(caseInformation); //更新案件表中的律师IDS和利冲信息IDS } + caseLawyerService.saveBatch(caseLawyerList); + List caseLawyerIds = caseLawyerList.stream().map(item -> item.getLawyerId()).collect(Collectors.toList()); + caseInformation.setCaseLawyerIds(StringUtils.join(caseLawyerIds, ",")); + caseInformationMapper.updateById(caseInformation); //更新案件表中的律师IDS和利冲信息IDS //插入案件关联收款记录信息【收款记录文件插入】 List collectionRecordList = caseInfo.getCollectionRecordList(); - if (CollUtil.isNotEmpty(collectionRecordList)){ + if (CollUtil.isNotEmpty(collectionRecordList)) { collectionRecordList.forEach(item -> { item.setCaseId(caseId); List fileManagerList = item.getFileManager().stream().peek(i -> { @@ -340,6 +370,14 @@ public class CaseInformationServiceImpl extends ServiceImpl fileIds = fileManagerList.stream().map(FileManager::getId).collect(Collectors.toList()); item.setCollectionUrlId(StringUtils.join(fileIds, ",")); + item.setUserId(userId); + item.setUserName(nickName); + String collect = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.joining(",")); + if (!collect.contains("FINANCE")){ + item.setAuditStatus(0); + }else { + item.setAuditStatus(1); + } collectionRecordMapper.insert(item); }); } @@ -356,6 +394,9 @@ public class CaseInformationServiceImpl extends ServiceImpl newAssistingLawyer = params.getAssistingLawyer(); //协办律师 List oldAssistingLawyer = caseLawyerMapper.selectAssistingLawyerByCaseId(params.getCaseInformation().getId()); @@ -441,10 +486,17 @@ public class CaseInformationServiceImpl extends ServiceImpl fileManager = item.getFileManager().stream().peek(i -> i.setCaseId(caseId)).collect(Collectors.toList()); fileManagerService.saveBatch(fileManager); item.setCollectionUrlId(fileManager.stream().map(i -> i.getId().toString()).collect(Collectors.joining(","))); + /*item.setUserId(userId); + item.setUserName(nickName); + String collect = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.joining(",")); + if (!collect.contains("FINANCE")){ + item.setAuditStatus(0); + }else { + item.setAuditStatus(1); + }*/ }); List list = BeanUtil.copyToList(insert, CollectionRecord.class); collectionRecordService.saveBatch(list); - /*BigDecimal addSum = BigDecimal.valueOf(insert.stream().mapToDouble(item -> item.getAmountReceived().doubleValue()).sum());*/ //获取删除的收款记录,计算出删除的收款记录的金额,在总金额中减去 List deleteIds = (List) CollUtil.subtract(oldIds, newIds); @@ -452,12 +504,11 @@ public class CaseInformationServiceImpl extends ServiceImpl item.getAmountReceived().doubleValue()).sum());*/ for (CollectionRecordEnterVO item : deleteData) { //根据caseId和收款记录ID删除收款记录 - collectionRecordMapper.removeByCaseIdAdnRecordId(item.getId(),caseId); + collectionRecordMapper.removeByCaseIdAdnRecordId(item.getId(), caseId); //根据caseId和收款记录ID删除收款记录文件 List fileIds = Arrays.stream(item.getCollectionUrlId().split(",")) .map(Long::parseLong) @@ -465,7 +516,7 @@ public class CaseInformationServiceImpl extends ServiceImpl params) { + return caseInformationMapper.claimWithdrawal(params); + } + @Override public Boolean caseClosed(Map params) { return caseInformationMapper.caseClosed(params); } + @Override + public Boolean caseInfoUpload(List fileManager) { + fileManager.forEach(item -> item.setFileType(2)); + return fileManagerService.saveBatch(fileManager); + } + /** * 编辑协办律师 * diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CollectionRecordServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CollectionRecordServiceImpl.java index 2bd5d775..f7669081 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CollectionRecordServiceImpl.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/CollectionRecordServiceImpl.java @@ -1,31 +1,61 @@ package com.tcctlo.law.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tcctlo.common.core.domain.entity.SysRole; +import com.tcctlo.common.core.domain.model.LoginUser; +import com.tcctlo.common.utils.SecurityUtils; import com.tcctlo.law.entity.CollectionRecord; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.tcctlo.law.entity.FileManager; +import com.tcctlo.law.mapper.CaseInformationMapper; import com.tcctlo.law.mapper.CollectionRecordMapper; +import com.tcctlo.law.mapper.FileManagerMapper; import com.tcctlo.law.service.ICollectionRecordService; +import com.tcctlo.law.service.IFileManagerService; +import com.tcctlo.law.vo.CollectionRecordEnterVO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; /** -*

-* 收款记录表 服务实现类 -*

-* -* @author 张世琪 -* @since 2025-02-06 -*/ + *

+ * 收款记录表 服务实现类 + *

+ * + * @author 张世琪 + * @since 2025-02-06 + */ @Service -public class CollectionRecordServiceImpl extends ServiceImpl implements ICollectionRecordService { +public class CollectionRecordServiceImpl extends ServiceImpl implements ICollectionRecordService { @Resource private CollectionRecordMapper collectionRecordMapper; + @Resource + private IFileManagerService fileManagerService; + + @Resource + private FileManagerMapper fileManagerMapper; + + @Resource + private CaseInformationMapper caseInformationMapper; + + @Override public Page list(Integer pageNo, Integer pageSize) { return collectionRecordMapper.selectPage(new Page<>(pageNo, pageSize), new QueryWrapper<>()); @@ -52,4 +82,117 @@ public class CollectionRecordServiceImpl extends ServiceImpl fileManagerList = params.getFileManager().stream().peek(item -> item.setFileType(1)).collect(Collectors.toList()); + fileManagerService.saveBatch(fileManagerList); + String fileIds = fileManagerList.stream().map(fileManager -> fileManager.getId().toString()).collect(Collectors.joining(",")); + collectionRecord.setCollectionUrlId(fileIds); + collectionRecordMapper.insert(collectionRecord); + + + //修改案件信息表中的已收金额-----根据案件ID查询缴费记录,做一个累加 + List lists = BeanUtil.copyToList(collectionRecordMapper.selectByCaseId(params.getCaseId()), CollectionRecord.class); + BigDecimal reduce = lists.stream().map(CollectionRecord::getAmountReceived).reduce(BigDecimal.ZERO, BigDecimal::add); + caseInformationMapper.updateCaseAmount(params.getCaseId(), reduce); //修改案件信息表中已收金额总计 + + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("缴费失败"); + } + } + + @Override + @Transactional(isolation = Isolation.DEFAULT, rollbackFor = Exception.class) + public Boolean casePaymentBatch(List params) { + try { + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserId(); + String nickName = loginUser.getUser().getNickName(); + + if (CollUtil.isNotEmpty(params)) { + List newData = params; //收款记录信息 + + //获取新添加的收款记录,计算出新的收款记录金额,在总金额中加上 + List insert = newData.stream().filter(item -> item.getId() == null).collect(Collectors.toList()); + insert.forEach(item -> { + List fileManager = item.getFileManager().stream().peek(item1 -> item1.setFileType(1)).collect(Collectors.toList()); + fileManagerService.saveBatch(fileManager); + item.setCollectionUrlId(fileManager.stream().map(i -> i.getId().toString()).collect(Collectors.joining(","))); + item.setUserId(userId); + item.setUserName(nickName); + String collect = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.joining(",")); + if (!collect.contains("FINANCE")) { + item.setAuditStatus(0); + } else { + item.setAuditStatus(1); + } + }); + List list = BeanUtil.copyToList(insert, CollectionRecord.class); + BigDecimal addMoney = list.stream().map(CollectionRecord::getAmountReceived).reduce(BigDecimal.ZERO, BigDecimal::add); //新增收款记录金额 + this.saveBatch(list); + Long caseId = list.get(0).getCaseId(); + caseInformationMapper.updateCaseAmount(caseId, caseInformationMapper.selectCaseById(caseId).getAmountReceivedSum().add(addMoney)); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("批量收款失败"); + } + } + + @Override + @Transactional(isolation = Isolation.DEFAULT, rollbackFor = Exception.class) + public Boolean deleteLogic(Map params) { + try { + Long id = params.get("id"); + Long caseId = params.get("caseId"); + CollectionRecord collectionRecord = collectionRecordMapper.selectById(id); + BigDecimal delMoney = collectionRecord.getAmountReceived(); //要减去的金额 + collectionRecordMapper.removeByCaseIdAdnRecordId(id, caseId); //从收款记录中删除 + caseInformationMapper.updateCaseAmount(caseId, caseInformationMapper.selectCaseById(caseId).getAmountReceivedSum().subtract(delMoney)); + + List fileIds = Arrays.stream(collectionRecord.getCollectionUrlId().split(",")).map(Long::parseLong).collect(Collectors.toList()); + fileManagerMapper.removeByCaseIdAndFileIds(caseId, fileIds); + + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("删除失败"); + } + return true; + } + + @Override + public List selectByCaseId(Long caseId) { + List lists = collectionRecordMapper.selectByCaseId(caseId); + for (CollectionRecordEnterVO item : lists) { + List collect = Arrays.stream(item.getCollectionUrlId().split(",")).map(Long::parseLong).collect(Collectors.toList()); + item.setFileManager(fileManagerMapper.selectByCRid(collect)); + item.setIsEdit(item.getAuditStatus() == 0); + } + return lists; + } + + @Override + public Boolean audit(Map map) { + Long id = map.get("id"); + return collectionRecordMapper.audit(id) > 0; + } + } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractFormParameterServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractFormParameterServiceImpl.java new file mode 100644 index 00000000..05a77c14 --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractFormParameterServiceImpl.java @@ -0,0 +1,54 @@ +package com.tcctlo.law.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tcctlo.law.entity.ContractFormParameter; +import com.tcctlo.law.mapper.ContractFormParameterMapper; +import com.tcctlo.law.service.IContractFormParameterService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** +*

+* 合同表单参数 服务实现类 +*

+* +* @author +* @since 2025-02-21 +*/ +@Service +public class ContractFormParameterServiceImpl extends ServiceImpl implements IContractFormParameterService { + + + @Resource + private ContractFormParameterMapper contractFormParameterMapper; + + @Override + public Page list(Integer pageNo, Integer pageSize) { + return contractFormParameterMapper.selectPage(new Page<>(pageNo, pageSize), new QueryWrapper<>()); + } + + @Override + public ContractFormParameter getById(Long id) { + ContractFormParameter contractFormParameter = contractFormParameterMapper.selectById(id); + return contractFormParameter; + } + + @Override + public Integer create(ContractFormParameter contractFormParameter) { + return contractFormParameterMapper.insert(contractFormParameter); + } + + @Override + public Integer delete(Long id) { + return contractFormParameterMapper.deleteById(id); + } + + @Override + public Integer update(ContractFormParameter contractFormParameter) { + return contractFormParameterMapper.updateById(contractFormParameter); + } + +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractTemplateServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractTemplateServiceImpl.java index 6b03d5cc..85a15819 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractTemplateServiceImpl.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ContractTemplateServiceImpl.java @@ -1,28 +1,28 @@ package com.tcctlo.law.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; -import com.tcctlo.common.core.domain.AjaxResult; +import com.tcctlo.common.utils.StringUtils; import com.tcctlo.law.entity.ContractTemplate; +import com.tcctlo.law.entity.wordTemplateEntity.BaseWordEntity; import com.tcctlo.law.mapper.ContractTemplateMapper; import com.tcctlo.law.service.IContractTemplateService; import com.tcctlo.law.tools.FileUpload; +import org.dromara.x.file.storage.core.FileInfo; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; -import java.time.LocalDateTime; -import java.util.*; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; /** @@ -57,7 +57,8 @@ public class ContractTemplateServiceImpl extends ServiceImpl list(Map params) { - return contractTemplateMapper.selectPage(new Page<>((Integer) params.get("current"), (Integer) params.get("size")), new QueryWrapper<>()); +// return contractTemplateMapper.selectPage(new Page<>((Integer) params.get("current"), (Integer) params.get("size")), new QueryWrapper<>()); + return contractTemplateMapper.selectCondition(new Page<>((Integer) params.get("current"), (Integer) params.get("size")), params); } @Override @@ -66,40 +67,16 @@ public class ContractTemplateServiceImpl extends ServiceImpl map = new HashMap<>(); - map.put("firstParty","甲方名称"); - map.put("secondParty","乙方名称"); - map.put("solicitor","张三、李四、王五"); - map.put("commitment","委托事项委托事项委托事项委托事项"); - map.put("signDate", LocalDateTime.now().toString()); - map.put("legalRepresentative","法定代表人"); - map.put("idNo","620121199708060011"); - map.put("creditCode","52031001156477894"); - map.put("bankName","中国建设银行"); - map.put("accountNum","4561112557894411"); - map.put("address","云南省昆明市"); - map.put("phone","13359490766"); - map.put("facsimile","0931-6554211"); - map.put("postcode","730300"); - XWPFTemplate template = XWPFTemplate.compile(filePath).render(map); + public String getWord(Map param) throws Exception { + Long wordId = param.get("wordId"); + Long caseId = param.get("caseId"); + ContractTemplate contractTemplate = contractTemplateMapper.selectById(wordId); + if (caseId == null) { + return contractTemplate.getFileUrlSource(); + } + if (StringUtils.isBlank(contractTemplate.getFilePath())){ + return contractTemplate.getFileUrlSource(); + } + List list = contractTemplateMapper.selectWordParam(caseId); + System.out.println(list); + BaseWordEntity baseWordEntity = new BaseWordEntity(); + String firstParty = list.stream().map(item -> item.getFirstParty()).collect(Collectors.joining("、")); + baseWordEntity.setFirstParty(firstParty); + baseWordEntity.setSolicitor(list.get(0).getSolicitor()); + baseWordEntity.setSocialCreditCode(list.get(0).getSocialCreditCode()); + baseWordEntity.setAddress(list.get(0).getAddress()); String savePath = generatedWordPath + UUID.randomUUID().toString() + ".docx"; + XWPFTemplate template = XWPFTemplate.compile(contractTemplate.getFilePath()).render(baseWordEntity); FileOutputStream out = new FileOutputStream(savePath); template.write(out); out.flush(); out.close(); template.close(); File file = new File(savePath); - System.out.println(fileUpload.uploadFile(file)); + FileInfo fileInfo = fileUpload.uploadFile(file); + String url = fileInfo.getUrl(); + System.out.println(url); + return url; } } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/IIndexServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/IIndexServiceImpl.java new file mode 100644 index 00000000..c4012dea --- /dev/null +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/IIndexServiceImpl.java @@ -0,0 +1,73 @@ +package com.tcctlo.law.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.tcctlo.law.entity.CollectionRecord; +import com.tcctlo.law.entity.IndexStatistics; +import com.tcctlo.law.mapper.CaseInformationMapper; +import com.tcctlo.law.mapper.CollectionRecordMapper; +import com.tcctlo.law.service.ICollectionRecordService; +import com.tcctlo.law.service.IIndexService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.function.BiConsumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +@Service +public class IIndexServiceImpl implements IIndexService { + + @Resource + private CaseInformationMapper caseInformationMapper; + + @Resource + private CollectionRecordMapper recordMapper; + + @Override + public List caseTypeStatistics(Date startTime, Date endTime) { + List res = new ArrayList<>(); + res.add(new IndexStatistics("民商事业务", Double.valueOf(caseInformationMapper.selectCountByBusinessType(0, startTime, endTime)))); + res.add(new IndexStatistics("刑事辩护业务", Double.valueOf(caseInformationMapper.selectCountByBusinessType(1, startTime, endTime)))); + res.add(new IndexStatistics("行政复议及诉讼业务", Double.valueOf(caseInformationMapper.selectCountByBusinessType(2, startTime, endTime)))); + res.add(new IndexStatistics("企业常年法律顾问", Double.valueOf(caseInformationMapper.selectCountByBusinessType(3, startTime, endTime)))); + res.add(new IndexStatistics("企业专项法律顾问", Double.valueOf(caseInformationMapper.selectCountByBusinessType(4, startTime, endTime)))); + return res; + } + + @Override + public List conflictStatistics(Date startTime, Date endTime) { + List res = new ArrayList<>(); + res.add(new IndexStatistics("利冲收案", Double.valueOf(caseInformationMapper.conflictStatistics(0, startTime, endTime)))); + res.add(new IndexStatistics("正常收案", Double.valueOf(caseInformationMapper.conflictStatistics(1, startTime, endTime)))); + res.add(new IndexStatistics("终止收案", Double.valueOf(caseInformationMapper.conflictStatistics(2, startTime, endTime)))); + res.add(new IndexStatistics("案件撤销", Double.valueOf(caseInformationMapper.conflictStatistics(3, startTime, endTime)))); + return res; + } + + @Override + public List costStatistics(Date startTime, Date endTime) { + List res = new ArrayList<>(); + res.add(new IndexStatistics("未收款", Double.valueOf(caseInformationMapper.outstandingPayment(startTime, endTime)))); + res.add(new IndexStatistics("部分收费", Double.valueOf(caseInformationMapper.partialCharge(startTime, endTime)))); + res.add(new IndexStatistics("付款逾期", Double.valueOf(caseInformationMapper.overdue(startTime, endTime)))); + return res; + } + + @Override + public List earningsTrend(Date startTime, Date endTime) { + List list = recordMapper.earningsTrend(startTime, endTime); + Map> map = list.stream().collect(Collectors.groupingBy(item -> DateUtil.parse(DateUtil.format(item.getCreateTime(), "yyyy-MM-dd")))); + TreeMap> treeMap = new TreeMap<>(map); + List res = new ArrayList<>(); + TreeMap> itemMap = new TreeMap<>(); + treeMap.forEach((date, collectionRecords) -> itemMap.put(DateUtil.format(date, "yyyy-MM-dd"), collectionRecords)); + itemMap.forEach((s, collectionRecords) -> { + IndexStatistics indexStatistics = new IndexStatistics(); + indexStatistics.setName(s); + indexStatistics.setValue(collectionRecords.stream().mapToDouble(item -> item.getAmountReceived().doubleValue()).sum()); + res.add(indexStatistics); + }); + return res; + } +} diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ImpulseInformationServiceImpl.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ImpulseInformationServiceImpl.java index da40f011..bbd10a0e 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ImpulseInformationServiceImpl.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/service/impl/ImpulseInformationServiceImpl.java @@ -7,20 +7,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tcctlo.common.utils.StringUtils; import com.tcctlo.law.entity.CaseInformation; +import com.tcctlo.law.entity.ClashInfoVO; import com.tcctlo.law.entity.ImpulseInformation; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tcctlo.law.mapper.CaseInformationMapper; import com.tcctlo.law.mapper.ImpulseInformationMapper; import com.tcctlo.law.service.IImpulseInformationService; +import com.tcctlo.law.vo.CaseInformationListVO; import com.tcctlo.law.vo.ImpulseInformationVO; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -81,8 +80,22 @@ public class ImpulseInformationServiceImpl extends ServiceImpl resList = impulseInformationMapper.retrievalConflict(impulseInformation); + return resList.isEmpty(); + }*/ + + @Override + public Map retrievalConflict(ImpulseInformation impulseInformation) { /** * 当 impulseInformation.getIsClient() 的值为 0 时,1 - 0 结果为 1;当 impulseInformation.getIsClient() 的值为 1 时,1 - 1 结果为 0 * 注意: @@ -90,9 +103,35 @@ public class ImpulseInformationServiceImpl extends ServiceImpl resMap = new TreeMap<>(); + List clashInfoVOS = new ArrayList<>(); impulseInformation.setIsClient(1 - impulseInformation.getIsClient()); List resList = impulseInformationMapper.retrievalConflict(impulseInformation); - return resList.isEmpty(); + resMap.put("result", resList.isEmpty()); + for (ImpulseInformation item : resList) { + ClashInfoVO clashInfoVO = new ClashInfoVO(); + CaseInformationListVO caseInformationListVO = caseInformationMapper.selectCaseById(item.getCaseId()); + clashInfoVO.setCaseId(item.getCaseId()); + clashInfoVO.setCaseInfoName(caseInformationListVO.getCaseName()); + clashInfoVO.setCaseInfoNo(caseInformationListVO.getCaseNo()); + clashInfoVO.setCaseName(item.getCaseName()); + clashInfoVO.setCaseNo(item.getCaseNo()); + clashInfoVO.setCaseType(item.getCaseType()); + clashInfoVO.setIsClient(item.getIsClient()); + clashInfoVOS.add(clashInfoVO); + } + resMap.put("clashInfo", clashInfoVOS); + return resMap; + } + + @Override + public Map retrievalConflictBatch(List impulseInformation) { + for (ImpulseInformation info : impulseInformation) { + info.setIsClient(1 - info.getIsClient()); + List resList = impulseInformationMapper.retrievalConflict(info); + + } + return Collections.emptyMap(); } @Override diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/tools/GenerateCaseNo.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/tools/GenerateCaseNo.java index 3ec41394..9fe8c847 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/tools/GenerateCaseNo.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/tools/GenerateCaseNo.java @@ -6,6 +6,28 @@ import java.text.SimpleDateFormat; import java.util.Date; public class GenerateCaseNo { + private static int dailyCounter = 0; + private static String lastDate = ""; + + public static synchronized String generateRecordNumber() { + // 获取当前日期 + String currentDate = java.time.LocalDate.now().toString(); + + // 如果日期变化,重置计数器 + if (!currentDate.equals(lastDate)) { + dailyCounter = 0; + lastDate = currentDate; + } + + // 增加计数器 + dailyCounter++; + + // 格式化编号,假设编号前缀为 "REC-",后跟日期和三位计数器 + String recordNumber = String.format("REC-%s-%03d", currentDate.replace("-", ""), dailyCounter); + + return recordNumber; + } + public String generateCaseNo() { // 获取当前日期和时间(精确到秒) SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -17,4 +39,6 @@ public class GenerateCaseNo { // 组合成订单编号 return currentDateTime + "-" + strRandom; } + + } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationEnterVO.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationEnterVO.java index 90e58be6..5d00cf46 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationEnterVO.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationEnterVO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.List; /** @@ -15,6 +16,11 @@ import java.util.List; @AllArgsConstructor public class CaseInformationEnterVO { + /** + * 案件未收款的金额 + */ + private BigDecimal uncollectedMoney; + /** * 案件信息 */ diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationListVO.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationListVO.java index 111434d4..dafeb750 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationListVO.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CaseInformationListVO.java @@ -6,6 +6,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.List; /** @@ -16,6 +17,11 @@ import java.util.List; @AllArgsConstructor public class CaseInformationListVO extends CaseInformation { + /** + * 案件未收款的金额 + */ + private BigDecimal uncollectedMoney; + /** * 委托方 */ @@ -48,4 +54,5 @@ public class CaseInformationListVO extends CaseInformation { private List fileList; + } diff --git a/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CollectionRecordEnterVO.java b/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CollectionRecordEnterVO.java index de519352..9ecc7ebd 100644 --- a/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CollectionRecordEnterVO.java +++ b/tcctlo-law-office/src/main/java/com/tcctlo/law/vo/CollectionRecordEnterVO.java @@ -13,6 +13,11 @@ import java.util.List; @AllArgsConstructor public class CollectionRecordEnterVO extends CollectionRecord { + /** + * 是否审核 + */ + private Boolean isEdit; + /** * 文件管理 */ diff --git a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/AuditRecordMapper.xml b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/AuditRecordMapper.xml new file mode 100644 index 00000000..0e798546 --- /dev/null +++ b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/AuditRecordMapper.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CaseInformationMapper.xml b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CaseInformationMapper.xml index 7a2aae8e..e2da03ed 100644 --- a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CaseInformationMapper.xml +++ b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CaseInformationMapper.xml @@ -8,7 +8,7 @@ ci . id - ,ci.case_no,ci.case_name,ci.case_context,ci.business_type,ci.business_classify,ci.case_type,ci.agency_stage,ci.case_source,ci.amount_receivable,ci.amount_received_sum,ci.payment_deadline,ci.reserve_money,ci.term_of_consultancy,ci.collection_status,ci.impulse_state,ci.case_status,ci.audit_status,ci.archive_status,ci.is_finish_case,ci.audit_opinion,ci.impulse_information_ids,ci.case_lawyer_ids,ci.status,ci.del_flag,ci.create_by,ci.create_time,ci.update_by,ci.update_time,ci.remake + ,ci.case_no,ci.case_name,ci.case_context,ci.business_type,ci.business_classify,ci.case_type,ci.agency_stage,ci.case_source,ci.amount_receivable,ci.amount_received_sum,ci.payment_deadline,ci.reserve_money,ci.term_of_consultancy,ci.collection_status,ci.impulse_state,ci.case_status,ci.audit_status,ci.archive_status,ci.is_finish_case,ci.impulse_information_ids,ci.case_lawyer_ids,ci.status,ci.del_flag,ci.create_by,ci.create_time,ci.update_by,ci.update_time,ci.remake update case_information ci @@ -65,17 +65,38 @@ + + update case_information ci + + + ci.audit_status = #{auditStatus}, + + + where ci.id = #{caseId} + + + update case_information ci + + + ci.amount_received_sum = #{amountReceived}, + + + where ci.id = #{caseId} + + + + + + + + diff --git a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CollectionRecordMapper.xml b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CollectionRecordMapper.xml index 92120785..b3fd03d4 100644 --- a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CollectionRecordMapper.xml +++ b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/CollectionRecordMapper.xml @@ -8,6 +8,10 @@ cr.collection_type collectionType, cr.amount_received amountReceived, cr.collection_url_id collectionUrlId, + cr.collection_date collectionDate, + cr.user_id userId, + cr.user_name userName, + cr.audit_status auditStatus, cr.status status, cr.del_flag delFlag, cr.create_by createBy, @@ -29,6 +33,16 @@ set cr.del_flag = 1, cr.status = 1 where case_id = #{caseId} and id = #{id} + + update collection_record cr + set cr.del_flag = 1, cr.status = 1 + where cr.id = #{id} + + + update collection_record cr + set cr.audit_status = 1 + where cr.id = #{id} + + diff --git a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractFormParameterMapper.xml b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractFormParameterMapper.xml new file mode 100644 index 00000000..07b3b8bf --- /dev/null +++ b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractFormParameterMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractTemplateMapper.xml b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractTemplateMapper.xml index 39f7e46f..34cf42bc 100644 --- a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractTemplateMapper.xml +++ b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/ContractTemplateMapper.xml @@ -8,4 +8,24 @@ #{id} + + diff --git a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/FileManagerMapper.xml b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/FileManagerMapper.xml index f765b65c..46d3559e 100644 --- a/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/FileManagerMapper.xml +++ b/tcctlo-law-office/src/main/resources/mapper/tcctlo-law-office/FileManagerMapper.xml @@ -6,7 +6,7 @@ INSERT INTO file_manager (case_id, new_file_name, old_file_name, file_url, file_type) VALUES - (#{item.caseId}, #{item.newFileName}, #{item.oldFileName}, #{item.fileurl}, #{item.fileType}) + (#{item.caseId}, #{item.newFileName}, #{item.oldFileName}, #{item.fileUrl}, #{item.fileType}) @@ -26,6 +26,19 @@ #{id} + + + diff --git a/tcctlo-law-office/src/test/java/com/tcctlo/law/WordTest.java b/tcctlo-law-office/src/test/java/com/tcctlo/law/WordTest.java index 30cc5630..6b8b54c9 100644 --- a/tcctlo-law-office/src/test/java/com/tcctlo/law/WordTest.java +++ b/tcctlo-law-office/src/test/java/com/tcctlo/law/WordTest.java @@ -1,6 +1,7 @@ package com.tcctlo.law; import com.deepoove.poi.XWPFTemplate; +import com.tcctlo.law.entity.wordTemplateEntity.BaseWordEntity; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -16,7 +17,7 @@ public class WordTest { HashMap map = new HashMap<>(); map.put("firstParty","甲方名称"); map.put("secondParty","乙方名称"); - map.put("solicitor","张三、李四、王五"); +// map.put("solicitor","张三、李四、王五"); map.put("commitment","委托事项委托事项委托事项委托事项"); map.put("signDate", LocalDateTime.now().toString()); map.put("legalRepresentative","法定代表人"); @@ -28,7 +29,22 @@ public class WordTest { map.put("phone","13359490766"); map.put("facsimile","0931-6554211"); map.put("postcode","730300"); - XWPFTemplate template = XWPFTemplate.compile("D:/templeteWord/常年法律顾问合同(2023.12版).docx").render(map); + XWPFTemplate template = XWPFTemplate.compile("D:/templeteWord/法律顾问合同/常年法律顾问合同(2023.12版).docx").render(map); + FileOutputStream out = new FileOutputStream("D:/word/常年法律顾问合同.docx"); + template.write(out); + out.flush(); + out.close(); + template.close(); + } + + @Test + void wordTest() throws Exception{ + BaseWordEntity baseWordEntity = new BaseWordEntity(); + baseWordEntity.setFirstParty("甲方名称"); + baseWordEntity.setSolicitor("承办律师"); + baseWordEntity.setSocialCreditCode("620121199708060011"); + baseWordEntity.setAddress("云南省昆明市城关区"); + XWPFTemplate template = XWPFTemplate.compile("D:/templeteWord/法律顾问合同/常年法律顾问合同(2023.12版).docx").render(baseWordEntity); FileOutputStream out = new FileOutputStream("D:/word/常年法律顾问合同.docx"); template.write(out); out.flush(); diff --git a/tcctlo-system/src/main/java/com/tcctlo/system/mapper/SysUserRoleMapper.java b/tcctlo-system/src/main/java/com/tcctlo/system/mapper/SysUserRoleMapper.java index 6a2c3ebb..b6a72a55 100644 --- a/tcctlo-system/src/main/java/com/tcctlo/system/mapper/SysUserRoleMapper.java +++ b/tcctlo-system/src/main/java/com/tcctlo/system/mapper/SysUserRoleMapper.java @@ -1,6 +1,8 @@ package com.tcctlo.system.mapper; import java.util.List; + +import com.tcctlo.common.core.domain.entity.SysRole; import org.apache.ibatis.annotations.Param; import com.tcctlo.system.domain.SysUserRole; @@ -59,4 +61,11 @@ public interface SysUserRoleMapper * @return 结果 */ public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); + + /** + * + * @param userId 用户ID + * @return 结果集 + */ + List selectByUserId(@Param("userId") Long userId); } diff --git a/tcctlo-system/src/main/java/com/tcctlo/system/service/impl/SysUserServiceImpl.java b/tcctlo-system/src/main/java/com/tcctlo/system/service/impl/SysUserServiceImpl.java index 176f1e9a..a863cbd5 100644 --- a/tcctlo-system/src/main/java/com/tcctlo/system/service/impl/SysUserServiceImpl.java +++ b/tcctlo-system/src/main/java/com/tcctlo/system/service/impl/SysUserServiceImpl.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.function.Consumer; import java.util.stream.Collectors; import javax.validation.Validator; @@ -80,7 +81,12 @@ public class SysUserServiceImpl implements ISysUserService { @Override @DataScope(deptAlias = "d", userAlias = "u") public List selectUserList(SysUser user) { - return userMapper.selectUserList(user); + List sysUsers = userMapper.selectUserList(user); + sysUsers.stream().peek(item -> { + List strings = userRoleMapper.selectByUserId(item.getUserId()); + item.setRolesName(strings); + }).collect(Collectors.toList()); + return sysUsers; } /** diff --git a/tcctlo-system/src/main/resources/mapper/system/SysUserMapper.xml b/tcctlo-system/src/main/resources/mapper/system/SysUserMapper.xml index 500ba70c..43a4848b 100644 --- a/tcctlo-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/tcctlo-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -92,6 +92,9 @@ AND u.user_id = #{userId} + + AND u.user_id in (select sur.user_id from sys_user_role sur where sur.role_id = #{roleId}) + AND u.user_name like concat('%', #{userName}, '%') diff --git a/tcctlo-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/tcctlo-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index 2fc6c523..74d44f76 100644 --- a/tcctlo-system/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/tcctlo-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -16,7 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + delete from sys_user_role where user_id in