diff --git a/doc/api.md b/doc/api.md index 29aa78f..204e2f3 100644 --- a/doc/api.md +++ b/doc/api.md @@ -285,35 +285,46 @@ - 返回示例 ```json { - "code": 200, - "success": true, - "data": [ - { - "id": "122555646684684", - "streetName": "胶州市", - "disputeName": "土地纠纷", - "disposeDept": "市住建局", - "hasProtocol": "无协议书", - "hasOpinion": "无处理意见", - "hasReviewOpinion": "无复查意见", - "legalPaper": "无法律文书", - "regTime": "2012-05-15 12:30", - "problemDesc": "矛盾描述...........", - "visitorList": [ - { - "id": 1546486176165, - "username": "张三", - "gender": 1, - "age": 32, - "cardno": "3708821548488178", - "address": "洋河镇", - "addressNow": "洋河镇", - "phone": "13564854126" - } - ] - } - ], - "msg": "操作成功" + "code": 200, + "success": true, + "data": { + "appealId": 1, + "visitors": [ + { + "id": "1", + "createUser": -1, + "createDept": -1, + "createTime": "", + "updateUser": -1, + "updateTime": "", + "status": -1, + "isDeleted": 0, + "appealId": 1, + "appealRegId": 1, + "username": "庄培燕", + "gender": "女", + "age": 25, + "cardno": "37234635323451345", + "address": "大相家村", + "addressNow": "", + "phone": "13566457424", + "sort": 1 + } + ], + "personNum": -1, + "streetId": "1666697016771792897", + "disputeId": "1666697784342007809", + "disputeName": "损害赔偿纠纷", + "disposeDept": "", + "disposeDeptName": "", + "protocol": "无", + "opinion": "无", + "reviewOpinion": "无", + "legalPaper": "无", + "firstRegTime": "2023-03-01 00:00:00", + "problemDesc": "来访者为七旬赵大姨,因为村委长期拖欠农民征用口粮地补偿款前来信访,谈话过程中一度情绪崩溃大哭, 经调解员安抚至情绪缓和后离开咨询室。" + }, + "msg": "操作成功" } ``` @@ -341,6 +352,39 @@ | legalPaper | string | N | 法律文书 | | problemDesc | string | N | 主要问题 | +- 请求示例 +```json +{ + "appealId": null, + "visitors": [ + { + "appealId": 1, + "appealRegId": 1, + "username": "庄培燕", + "gender": "女", + "age": 25, + "cardno": "37234635323451345", + "address": "大相家村", + "addressNow": "", + "phone": "13566457424", + "sort": 1 + } + ], + "personNum": -1, + "streetId": "1666697016771792897", + "disputeId": "1666697784342007809", + "disputeName": "损害赔偿纠纷", + "disposeDept": "", + "disposeDeptName": "", + "protocol": "无", + "opinion": "无", + "reviewOpinion": "无", + "legalPaper": "无", + "firstRegTime": "2023-03-02 00:00:00", + "problemDesc": "来访者为" +} +``` + - 返回示例 ```json { diff --git a/src/main/java/org/springblade/modules/business/controller/AppealRegController.java b/src/main/java/org/springblade/modules/business/controller/AppealRegController.java index edf46d3..71d9c22 100644 --- a/src/main/java/org/springblade/modules/business/controller/AppealRegController.java +++ b/src/main/java/org/springblade/modules/business/controller/AppealRegController.java @@ -29,7 +29,6 @@ import org.springblade.modules.business.vo.AppealRegVO; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Map; /** * 控制器 @@ -105,7 +104,7 @@ public class AppealRegController extends BladeController { */ @GetMapping("/getById") public R getById(String appealId) { - return null; + return R.data(regService.getById(appealId)); } /** @@ -113,6 +112,6 @@ public class AppealRegController extends BladeController { */ @PostMapping("/save") public R save(@RequestBody AppealRegVO entity) { - return null; + return R.status(regService.saveReg(entity)); } } diff --git a/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.java b/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.java index d310f6f..caca6a1 100644 --- a/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.java @@ -17,9 +17,12 @@ package org.springblade.modules.business.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import lombok.RequiredArgsConstructor; +import org.apache.ibatis.annotations.Param; import org.springblade.modules.business.entity.AppealReg; import org.springblade.modules.business.vo.AppealListVO; +import java.security.PrivateKey; import java.util.List; /** @@ -29,5 +32,18 @@ import java.util.List; */ public interface AppealRegMapper extends BaseMapper { - List getList(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username); + List getList(@Param("appealStatus") String appealStatus, + @Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("appealType") String appealType, + @Param("windowId") String windowId, + @Param("username") String username); + + /** + * 获取最后一次登记记录 + * + * @param appealId + * @return + */ + AppealReg getLastReg(@Param("appealId") String appealId); } diff --git a/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml b/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml index 458cd77..64596e3 100644 --- a/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml @@ -3,50 +3,56 @@ + + diff --git a/src/main/java/org/springblade/modules/business/service/IAppealRegService.java b/src/main/java/org/springblade/modules/business/service/IAppealRegService.java index 5e2a4e2..b7d68aa 100644 --- a/src/main/java/org/springblade/modules/business/service/IAppealRegService.java +++ b/src/main/java/org/springblade/modules/business/service/IAppealRegService.java @@ -58,5 +58,5 @@ public interface IAppealRegService extends BaseService { /** * 保存 */ - boolean save(AppealRegVO entity); + boolean saveReg(AppealRegVO entity); } diff --git a/src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java index 6baf73a..381240e 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java @@ -16,14 +16,24 @@ */ package org.springblade.modules.business.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.business.entity.Appeal; import org.springblade.modules.business.entity.AppealReg; +import org.springblade.modules.business.entity.AppealVisitor; +import org.springblade.modules.business.mapper.AppealMapper; import org.springblade.modules.business.mapper.AppealRegMapper; +import org.springblade.modules.business.mapper.AppealVisitorMapper; import org.springblade.modules.business.service.IAppealRegService; +import org.springblade.modules.business.service.IAppealVisitorService; import org.springblade.modules.business.vo.AppealListVO; import org.springblade.modules.business.vo.AppealRegVO; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -32,8 +42,13 @@ import java.util.List; * @author BladeX */ @Service +@RequiredArgsConstructor public class AppealRegServiceImpl extends BaseServiceImpl implements IAppealRegService { + private final IAppealVisitorService visitorService; + private final AppealMapper appealMapper; + private final AppealVisitorMapper visitorMapper; + @Override public List getList(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) { return baseMapper.getList(appealStatus, startTime, endTime, appealType, windowId, username); @@ -41,11 +56,66 @@ public class AppealRegServiceImpl extends BaseServiceImpl visitors = visitorMapper.selectList( + Wrappers.lambdaQuery().eq(AppealVisitor::getAppealId, appealId)); + + // 4. 组织返回对象数据 + vo.setAppealId(Long.valueOf(appealId)); + vo.setVisitors(visitors); + vo.setStreetId(appeal.getStreetId()); + vo.setDisputeId(appeal.getDisputeId()); + vo.setDisputeName(appeal.getDisputeName()); + vo.setDisposeDept(lastReg.getDisposeDept()); + vo.setDisposeDeptName(lastReg.getDisposeDeptName()); + vo.setProtocol(lastReg.getProtocol()); + vo.setOpinion(lastReg.getOpinion()); + vo.setReviewOpinion(lastReg.getReviewOpinion()); + vo.setLegalPaper(lastReg.getLegalPaper()); + vo.setFirstRegTime(appeal.getFirstRegTime()); + vo.setProblemDesc(appeal.getProblemDesc()); + return vo; } @Override - public boolean save(AppealRegVO entity) { - return false; + public boolean saveReg(AppealRegVO entity) { + // 解析保存数据, 构建保存对象 + Appeal appeal = BeanUtil.copy(entity, Appeal.class); + appeal.setId(entity.getAppealId()); + AppealReg reg = BeanUtil.copy(entity, AppealReg.class); + List visitors = entity.getVisitors(); + + // 1. 先保存appeal + int nums = Func.isEmpty(appeal.getId()) ? appealMapper.insert(appeal) : appealMapper.updateById(appeal); + if (nums <= 0) { + return false; + } + + // 2. 将appealId赋值给appealReg, 保存appealReg对象 + reg.setId(null); + reg.setPersonNum(visitors.size()); + baseMapper.insert(reg); + + // 3. 将appealId和appealRegId赋值给来访人员, 保存来访人员 + for (int i = 0; i < visitors.size(); i++) { + AppealVisitor visitor = visitors.get(i); + visitor.setId(null); + visitor.setAppealId(appeal.getId()); + visitor.setAppealRegId(reg.getId()); + visitor.setSort(i); + } + visitorService.saveBatch(visitors); + return true; } } diff --git a/src/main/java/org/springblade/modules/business/vo/AppealRegVO.java b/src/main/java/org/springblade/modules/business/vo/AppealRegVO.java index db65b81..08d7133 100644 --- a/src/main/java/org/springblade/modules/business/vo/AppealRegVO.java +++ b/src/main/java/org/springblade/modules/business/vo/AppealRegVO.java @@ -17,9 +17,11 @@ package org.springblade.modules.business.vo; import lombok.Data; +import org.springblade.modules.business.entity.AppealVisitor; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * 视图类 @@ -32,17 +34,27 @@ public class AppealRegVO implements Serializable { private static final long serialVersionUID = 1L; - private Long id; + private Long appealId; /** - * 来访人名称 + * 来访人列表 */ - private String username; + private List visitors; /** - * 来访人身份证号 + * 来访人数 */ - private String cardno; + private Integer personNum; + + /** + * 所属街道字典id + */ + private Long streetId; + + /** + * 纠纷字典id + */ + private Long disputeId; /** * 纠纷名称 @@ -50,22 +62,42 @@ public class AppealRegVO implements Serializable { private String disputeName; /** - * 首次登记时间 + * 何单位处理过-单位id */ - private Date firstRegTime; + private String disposeDept; /** - * 办结时间 + * 何单位处理过-单位名称 */ - private Date finishTime; + private String disposeDeptName; /** - * 反应问题 + * 基层协议 */ - private String problemDesc; + private String protocol; + + /** + * 基层处理意见 + */ + private String opinion; /** - * 诉求状态(办理状态) 0:待处理, 1:正在处理, 2:达成协议, 3:调解成功 + * 部门复查意见 */ - private int status; + private String reviewOpinion; + + /** + * 法律文书 + */ + private String legalPaper; + + /** + * 首次登记时间 + */ + private Date firstRegTime; + + /** + * 反应问题 + */ + private String problemDesc; }