诉求调解相关接口完成

master
liuqingkun 3 years ago
parent 7e805cdd2f
commit d5d2721107
  1. 263
      doc/api.md
  2. 11
      src/main/java/org/springblade/common/constant/BusinessConstant.java
  3. 40
      src/main/java/org/springblade/modules/business/controller/AppealMediateController.java
  4. 2
      src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml
  5. 28
      src/main/java/org/springblade/modules/business/service/IAppealMediationService.java
  6. 9
      src/main/java/org/springblade/modules/business/service/IAppealRegService.java
  7. 135
      src/main/java/org/springblade/modules/business/service/impl/AppealMediationServiceImpl.java
  8. 12
      src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java
  9. 50
      src/main/java/org/springblade/modules/business/vo/AppealMediationDetailListVO.java
  10. 106
      src/main/java/org/springblade/modules/business/vo/AppealMediationVO.java

@ -346,9 +346,9 @@
| - addressNow | string | N | 现住址 | | - addressNow | string | N | 现住址 |
| - phone | string | N | 联系电话 | | - phone | string | N | 联系电话 |
| disposeDept | string | N | 何单位处理过 | | disposeDept | string | N | 何单位处理过 |
| hasProtocol | string | N | 协议书 | | protocol | string | N | 协议书 |
| hasOpinion | string | N | 处理意见 | | opinion | string | N | 处理意见 |
| hasReviewOpinion | string | N | 复查意见 | | reviewOpinion | string | N | 复查意见 |
| legalPaper | string | N | 法律文书 | | legalPaper | string | N | 法律文书 |
| problemDesc | string | N | 主要问题 | | problemDesc | string | N | 主要问题 |
@ -381,7 +381,7 @@
"reviewOpinion": "无", "reviewOpinion": "无",
"legalPaper": "无", "legalPaper": "无",
"firstRegTime": "2023-03-02 00:00:00", "firstRegTime": "2023-03-02 00:00:00",
"problemDesc": "来访者为" "problemDesc": "来访者为.........."
} }
``` ```
@ -410,16 +410,17 @@
- 返回示例 - 返回示例
```json ```json
{ {
"code": 200, "code": 200,
"success": true, "success": true,
"data": [ "data": [
{ {
"id": "122555646684684", "appealId": 1,
"mediateTime": "2012-05-15 12:30", "mediationId": 1,
"talkingAdvice": "接谈意见..........." "talkingTime": "2023-03-01 13:00:00",
} "talkingHis": "谈话记录谈话记录"
], }
"msg": "操作成功" ],
"msg": "操作成功"
} }
``` ```
@ -437,48 +438,58 @@
- 返回示例 - 返回示例
```json ```json
{ {
"code": 200, "code": 200,
"success": true, "success": true,
"data": [ "data": {
{ "appealId": 1,
"appealId": "诉求ID", "appealRegId": 1,
"appealRegId": "诉求登记ID", "visitors": [
"streetName": "胶州市", {
"disputeName": "土地纠纷", "appealId": 1,
"disposeDept": "市住建局", "appealRegId": 1,
"hasProtocol": "无协议书", "username": "庄培燕",
"hasOpinion": "无处理意见", "gender": "女",
"hasReviewOpinion": "无复查意见", "age": 25,
"legalPaper": "无法律文书", "cardno": "37234635323451345",
"regTime": "2012-05-15 12:30", "address": "大相家村",
"problemDesc": "矛盾描述...........", "addressNow": "",
"talkingAdviceList": [ "phone": "13566457424",
{ "sort": 1
"id": "调解记录id", }
"talkingTime": "2022-06-03 12:05", ],
"talkingHis": "第一次接谈意见..........." "personNum": -1,
},{ "streetId": "1666697016771792897",
"id": "调解记录id", "disputeId": "1666697784342007809",
"talkingTime": "2022-06-02 10:05", "disputeName": "损害赔偿纠纷",
"talkingHis": "第二次接谈意见..........." "disposeDept": "",
} "disposeDeptName": "",
"protocol": "无",
], "opinion": "无",
"userList": [ "reviewOpinion": "无",
{ "legalPaper": "无",
"id": 1546486176165, "firstRegTime": "2023-03-02 00:00:00",
"username": "张三", "skipGrant": -1,
"gender": 1, "problemDesc": "来访者为",
"age": 32, "talkingHisList": [
"cardno": "3708821548488178", {
"address": "洋河镇", "appealId": 1,
"addressNow": "洋河镇", "mediationId": 1,
"phone": "13564854126" "talkingTime": "2023-03-01 13:00:00",
} "talkingHis": "谈话记录谈话记录"
] }
} ],
], "attitude": "",
"msg": "操作成功" "talkingAdvice": "",
"dutyDeptIds": "",
"copyDeptIds": "",
"disputeLevel": -1,
"feedbackDeadline": "",
"finishDeadline": "",
"remark": "",
"submitTime": "",
"fileList": []
},
"msg": "操作成功"
} }
``` ```
@ -496,58 +507,58 @@
- 返回示例 - 返回示例
```json ```json
{ {
"code": 200, "code": 200,
"success": true, "success": true,
"data": [ "data": {
{ "appealId": 1,
"id": "调解记录id", "appealRegId": 1,
"appealId": "诉求ID", "visitors": [
"appealRegId": "诉求登记ID", {
"streetName": "胶州市", "appealId": 1,
"disputeLevel": "事件等级", "appealRegId": 1,
"status": "诉求状态", "username": "庄培燕",
"disputeName": "土地纠纷", "gender": "女",
"disposeDept": "市住建局", "age": 25,
"hasProtocol": "无协议书", "cardno": "37234635323451345",
"hasOpinion": "无处理意见", "address": "大相家村",
"hasReviewOpinion": "无复查意见", "addressNow": "",
"legalPaper": "无法律文书", "phone": "13566457424",
"regTime": "2012-05-15 12:30", "sort": 1
"problemDesc": "矛盾描述...........", }
"attitude": "上访人意见", ],
"dutyDeptNames": "负责部门名称, 以逗号分割", "personNum": -1,
"copyDeptNames": "抄送部门名称, 以逗号分割", "streetId": "1666697016771792897",
"feedbackDeadline": "2022-12-02", "disputeId": "1666697784342007809",
"finishDeadline": "2022-12-02", "disputeName": "损害赔偿纠纷",
"remark": "备注", "disposeDept": "",
"submitTime": "2022-08-19", "disposeDeptName": "",
"talkingAdviceList": [ "protocol": "无",
{ "opinion": "无",
"id": "调解记录id", "reviewOpinion": "无",
"talkingTime": "2022-06-03 12:05", "legalPaper": "无",
"talkingHis": "第一次接谈意见..........." "firstRegTime": "2023-03-02 00:00:00",
},{ "skipGrant": -1,
"id": "调解记录id", "problemDesc": "来访者为",
"talkingTime": "2022-06-02 10:05", "talkingHisList": [
"talkingHis": "第二次接谈意见..........." {
} "appealId": 1,
"mediationId": 1,
], "talkingTime": "2023-03-01 13:00:00",
"userList": [ "talkingHis": "谈话记录谈话记录"
{ }
"id": 1546486176165, ],
"username": "张三", "attitude": "上访人态度",
"gender": 1, "talkingAdvice": "上访人态度",
"age": 32, "dutyDeptIds": "上访人态度",
"cardno": "3708821548488178", "copyDeptIds": "上访人态度",
"address": "洋河镇", "disputeLevel": 1,
"addressNow": "洋河镇", "feedbackDeadline": "2023-10-01 00:00:00",
"phone": "13564854126" "finishDeadline": "2023-10-01 00:00:00",
} "remark": "",
] "submitTime": "2023-03-01 00:00:00",
} "fileList": []
], },
"msg": "操作成功" "msg": "操作成功"
} }
``` ```
@ -584,6 +595,42 @@
| fileList | list | N | 上传文件列表 | | fileList | list | N | 上传文件列表 |
| - url | list | N | 上传文件路径 | | - url | list | N | 上传文件路径 |
- 请求示例
```json
{
"appealId": 1,
"appealRegId": 1,
"streetId": "1666697016771792897",
"disputeName": "损害赔偿纠纷",
"disposeDept": "",
"disposeDeptName": "",
"protocol": "无",
"opinion": "无",
"reviewOpinion": "无",
"legalPaper": "无",
"firstRegTime": "2023-03-02 00:00:00",
"skipGrant": -1,
"problemDesc": "来访者为",
"talkingHisList": [
{
"appealId": 1,
"mediationId": 1,
"talkingTime": "2023-03-01 13:00:00",
"talkingHis": "谈话记录谈话记录"
}
],
"attitude": "",
"talkingAdvice": "",
"dutyDeptIds": "",
"copyDeptIds": "",
"disputeLevel": -1,
"feedbackDeadline": "",
"finishDeadline": "",
"remark": "",
"submitTime": "",
"fileList": []
}
```
- 返回示例 - 返回示例
```json ```json

@ -23,6 +23,9 @@ package org.springblade.common.constant;
*/ */
public interface BusinessConstant { public interface BusinessConstant {
Integer CODE_TRUE = 1;
Integer CODE_FALSE = 0;
/** /**
* 启用禁用, 0:禁用, 1:启用 * 启用禁用, 0:禁用, 1:启用
*/ */
@ -34,4 +37,12 @@ public interface BusinessConstant {
*/ */
Integer SOURCE_TYPE_SYSTEM = 0; Integer SOURCE_TYPE_SYSTEM = 0;
Integer SOURCE_TYPE_IMPORT = 1; Integer SOURCE_TYPE_IMPORT = 1;
/**
* 纠纷等级(事件等级), 0:简单, 1:一般, 2:重大, 3:疑难
*/
Integer DISPUTE_LEVEL_ZERO = 0;
Integer DISPUTE_LEVEL_ONE = 1;
Integer DISPUTE_LEVEL_TWO = 2;
Integer DISPUTE_LEVEL_THREE = 3;
} }

@ -16,6 +16,7 @@
*/ */
package org.springblade.modules.business.controller; package org.springblade.modules.business.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiSort; import com.github.xiaoymin.knife4j.annotations.ApiSort;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -23,14 +24,14 @@ import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tenant.annotation.TenantDS; import org.springblade.core.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.modules.business.vo.AppealListVO; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.business.entity.AppealMediation;
import org.springblade.modules.business.service.IAppealMediationService;
import org.springblade.modules.business.vo.AppealMediationDetailListVO;
import org.springblade.modules.business.vo.AppealMediationVO; import org.springblade.modules.business.vo.AppealMediationVO;
import org.springblade.modules.business.vo.AppealRegVO; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -46,6 +47,8 @@ import java.util.List;
@Api(value = "诉求调解管理", tags = "诉求调解管理接口") @Api(value = "诉求调解管理", tags = "诉求调解管理接口")
public class AppealMediateController extends BladeController { public class AppealMediateController extends BladeController {
private final IAppealMediationService mediationService;
/** /**
* 调解记录列表(点击"调解记录") * 调解记录列表(点击"调解记录")
* *
@ -54,8 +57,16 @@ public class AppealMediateController extends BladeController {
*/ */
@GetMapping("/getMediateList") @GetMapping("/getMediateList")
public R getMediateList(String appealId) { public R getMediateList(String appealId) {
List<AppealMediation> mediationList = mediationService.list(Wrappers.<AppealMediation>lambdaQuery().eq(AppealMediation::getAppealId, appealId));
List<AppealMediationDetailListVO> vos = new ArrayList<>();
mediationList.forEach(entity -> {
AppealMediationDetailListVO vo = BeanUtil.copy(entity, AppealMediationDetailListVO.class);
vo.setMediationId(entity.getId());
vos.add(vo);
});
return null; return R.data(vos);
} }
/** /**
@ -66,20 +77,18 @@ public class AppealMediateController extends BladeController {
*/ */
@GetMapping("/getNewestReg") @GetMapping("/getNewestReg")
public R getNewestReg(String appealId) { public R getNewestReg(String appealId) {
return R.data(mediationService.getNewestReg(appealId));
return null;
} }
/** /**
* 根据调解记录id获取详情, 获取 诉求信息, 本次调解记录(参数id指定的调解记录), 所有调解访谈记录列表(带id) * 根据调解记录id获取详情, 获取 诉求信息, 本次调解记录(参数id指定的调解记录), 所有调解访谈记录列表(带id)
* *
* @param appealId 诉求ID * @param mediateId 调解记录ID
* @return * @return
*/ */
@GetMapping("/detail") @GetMapping("/detail")
public R detail(String appealId) { public R detail(String mediateId) {
return R.data(mediationService.detail(mediateId));
return null;
} }
/** /**
@ -88,9 +97,8 @@ public class AppealMediateController extends BladeController {
* @param entity 诉求调解实体 * @param entity 诉求调解实体
* @return * @return
*/ */
@GetMapping("/save") @PostMapping("/save")
public R save(@RequestBody AppealMediationVO entity) { public R save(@RequestBody AppealMediationVO entity) {
return R.status(mediationService.saveMediate(entity));
return null;
} }
} }

@ -54,5 +54,7 @@
select * select *
from mp_appeal_reg from mp_appeal_reg
where appeal_id = #{appealId} where appeal_id = #{appealId}
order by create_time desc
limit 1
</select> </select>
</mapper> </mapper>

@ -16,14 +16,40 @@
*/ */
package org.springblade.modules.business.service; package org.springblade.modules.business.service;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.entity.AppealMediation; import org.springblade.modules.business.entity.AppealMediation;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.vo.AppealMediationVO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
/** /**
* 服务类 * 服务类
* *
* @author BladeX * @author BladeX
*/ */
public interface IAppealMediationService extends BaseService<AppealMediation> { public interface IAppealMediationService extends BaseService<AppealMediation> {
/**
* 根据诉求id获取最新的登记信息及所有调解访谈记录列表(点击"诉求调解")
*
* @param appealId 诉求ID
* @return
*/
AppealMediationVO getNewestReg(String appealId);
/**
* 根据调解记录id获取详情, 获取 诉求信息, 本次调解记录(参数id指定的调解记录), 所有调解访谈记录列表(带id)
*
* @param mediateId 调解记录ID
* @return
*/
AppealMediationVO detail(String mediateId);
/**
* 根据调解记录id获取详情, 获取 诉求信息, 本次调解记录(参数id指定的调解记录), 所有调解访谈记录列表(带id)
*
* @param entity 诉求调解实体
* @return
*/
boolean saveMediate(@RequestBody AppealMediationVO entity);
} }

@ -16,6 +16,7 @@
*/ */
package org.springblade.modules.business.service; package org.springblade.modules.business.service;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.modules.business.entity.AppealReg; import org.springblade.modules.business.entity.AppealReg;
@ -59,4 +60,12 @@ public interface IAppealRegService extends BaseService<AppealReg> {
* 保存 * 保存
*/ */
boolean saveReg(AppealRegVO entity); boolean saveReg(AppealRegVO entity);
/**
* 获取最后一次登记记录
*
* @param appealId
* @return
*/
AppealReg getLastReg(@Param("appealId") String appealId);
} }

@ -16,18 +16,149 @@
*/ */
package org.springblade.modules.business.service.impl; package org.springblade.modules.business.service.impl;
import org.springblade.modules.business.entity.AppealMediation; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.BusinessConstant;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.entity.*;
import org.springblade.modules.business.mapper.AppealMediationMapper; import org.springblade.modules.business.mapper.AppealMediationMapper;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.service.IAppealMediationService; import org.springblade.modules.business.mapper.AppealVisitorMapper;
import org.springblade.modules.business.service.*;
import org.springblade.modules.business.vo.AppealMediationDetailListVO;
import org.springblade.modules.business.vo.AppealMediationVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* 服务实现类 * 服务实现类
* *
* @author BladeX * @author BladeX
*/ */
@Service @Service
@RequiredArgsConstructor
public class AppealMediationServiceImpl extends BaseServiceImpl<AppealMediationMapper, AppealMediation> implements IAppealMediationService { public class AppealMediationServiceImpl extends BaseServiceImpl<AppealMediationMapper, AppealMediation> implements IAppealMediationService {
private final IAppealService appealService;
private final IAppealRegService appealRegService;
private final AppealVisitorMapper visitorMapper;
private final IAppealMediationFileService fileService;
@Override
public AppealMediationVO getNewestReg(String appealId) {
return getMediationDetail(appealId, null);
}
@Override
public AppealMediationVO detail(String mediateId) {
AppealMediation mediation = baseMapper.selectById(mediateId);
if (Func.isEmpty(mediation)) {
return null;
}
return getMediationDetail(mediation.getAppealId().toString(), mediateId);
}
@Override
public boolean saveMediate(AppealMediationVO entity) {
// 解析保存数据, 构建保存对象
Appeal appeal = BeanUtil.copy(entity, Appeal.class);
appeal.setId(entity.getAppealId());
AppealReg reg = BeanUtil.copy(entity, AppealReg.class);
AppealMediation mediation = BeanUtil.copy(entity, AppealMediation.class);
if (Func.isEmpty(appeal))
return false;
appeal.setSourceType(BusinessConstant.SOURCE_TYPE_SYSTEM);
// 更新诉求和诉求登记的信息
appeal.setSkipGrant(appeal.getSkipGrant() == -1 ? BusinessConstant.CODE_FALSE : appeal.getSkipGrant());
appeal.setDisputeLevel(appeal.getDisputeLevel() == -1 ? BusinessConstant.DISPUTE_LEVEL_ZERO : appeal.getDisputeLevel());
appealService.updateById(appeal);
reg.setId(entity.getAppealRegId());
appealRegService.updateById(reg);
List<AppealMediationDetailListVO> talkingHisList = entity.getTalkingHisList();
if (Func.isEmpty(talkingHisList))
return false;
mediation.setTalkingTime(talkingHisList.get(0).getTalkingTime());
mediation.setTalkingHis(talkingHisList.get(0).getTalkingHis());
save(mediation);
List<AppealMediationFile> fileList = entity.getFileList();
fileList.forEach(file -> {
file.setAppealId(mediation.getAppealId());
file.setAppealId(mediation.getAppealRegId());
file.setMediationId(mediation.getId());
});
fileService.saveBatch(fileList);
return true;
}
private AppealMediationVO getMediationDetail(String appealId, String mediationId) {
AppealMediationVO vo = new AppealMediationVO();
Appeal appeal = appealService.getById(appealId);
if (Func.isEmpty(appeal)) {
return null;
}
// 获取全部调解记录, 按照时间顺序排列
List<AppealMediation> mediationList = baseMapper.selectList(
Wrappers.<AppealMediation>lambdaQuery().eq(AppealMediation::getAppealId, appealId));
// 转化为谈话记录列表
List<AppealMediationDetailListVO> detailList = new ArrayList<>();
mediationList.forEach(mediation -> {
AppealMediationDetailListVO listVO = BeanUtil.copy(mediation, AppealMediationDetailListVO.class);
listVO.setMediationId(mediation.getId());
detailList.add(listVO);
});
// 若未指定调解记录, 取最后一次, 否则取指定的调解记录
AppealMediation mediation = null;
if (Func.isNotBlank(mediationId)) {
mediation = mediationList.stream().filter(o -> o.getId() == Long.parseLong(mediationId)).findAny().orElse(null);
}
// 若指定调解记录, 获取该记录对应的登记, 否则取最后一次登记记录
AppealReg appealReg = Func.isEmpty(mediation) ? appealRegService.getLastReg(appealId) : appealRegService.getById(mediation.getAppealRegId());
// 获取登记的来访人员
List<AppealVisitor> visitorList = visitorMapper.selectList(
Wrappers.<AppealVisitor>lambdaQuery().eq(AppealVisitor::getAppealRegId, appealReg.getId()));
// 4. 组织返回对象数据
vo.setAppealId(Long.valueOf(appealId));
vo.setVisitors(visitorList);
vo.setStreetId(appeal.getStreetId());
vo.setDisputeId(appeal.getDisputeId());
vo.setDisputeName(appeal.getDisputeName());
vo.setDisposeDept(appealReg.getDisposeDept());
vo.setDisposeDeptName(appealReg.getDisposeDeptName());
vo.setProtocol(appealReg.getProtocol());
vo.setOpinion(appealReg.getOpinion());
vo.setReviewOpinion(appealReg.getReviewOpinion());
vo.setLegalPaper(appealReg.getLegalPaper());
vo.setFirstRegTime(appeal.getFirstRegTime());
vo.setProblemDesc(appeal.getProblemDesc());
vo.setTalkingHisList(detailList);
if (Func.isNotEmpty(mediation)) {
List<AppealMediationFile> fileList = fileService.list(
Wrappers.<AppealMediationFile>lambdaQuery().eq(AppealMediationFile::getMediationId, mediation.getId()));
vo.setAttitude(mediation.getAttitude());
vo.setTalkingAdvice(mediation.getAttitude());
vo.setDutyDeptIds(mediation.getAttitude());
vo.setCopyDeptIds(mediation.getAttitude());
vo.setDisputeLevel(appeal.getDisputeLevel());
vo.setFeedbackDeadline(mediation.getFeedbackDeadline());
vo.setFinishDeadline(mediation.getFinishDeadline());
vo.setRemark(mediation.getRemark());
vo.setSubmitTime(mediation.getSubmitTime());
vo.setFileList(fileList);
}
return vo;
}
} }

@ -18,6 +18,8 @@ package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.BusinessConstant;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
@ -96,7 +98,8 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea
AppealReg reg = BeanUtil.copy(entity, AppealReg.class); AppealReg reg = BeanUtil.copy(entity, AppealReg.class);
List<AppealVisitor> visitors = entity.getVisitors(); List<AppealVisitor> visitors = entity.getVisitors();
// 1. 先保存appeal // 1. 先保存appeal, 固定数据来源为系统
appeal.setSourceType(BusinessConstant.SOURCE_TYPE_SYSTEM);
int nums = Func.isEmpty(appeal.getId()) ? appealMapper.insert(appeal) : appealMapper.updateById(appeal); int nums = Func.isEmpty(appeal.getId()) ? appealMapper.insert(appeal) : appealMapper.updateById(appeal);
if (nums <= 0) { if (nums <= 0) {
return false; return false;
@ -105,7 +108,7 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea
// 2. 将appealId赋值给appealReg, 保存appealReg对象 // 2. 将appealId赋值给appealReg, 保存appealReg对象
reg.setId(null); reg.setId(null);
reg.setPersonNum(visitors.size()); reg.setPersonNum(visitors.size());
baseMapper.insert(reg); save(reg);
// 3. 将appealId和appealRegId赋值给来访人员, 保存来访人员 // 3. 将appealId和appealRegId赋值给来访人员, 保存来访人员
for (int i = 0; i < visitors.size(); i++) { for (int i = 0; i < visitors.size(); i++) {
@ -118,4 +121,9 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea
visitorService.saveBatch(visitors); visitorService.saveBatch(visitors);
return true; return true;
} }
@Override
public AppealReg getLastReg(String appealId) {
return baseMapper.getLastReg(appealId);
}
} }

@ -0,0 +1,50 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
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;
/**
* 视图类
*
* @author Chill
*/
@Data
public class AppealMediationDetailListVO implements Serializable {
private static final long serialVersionUID = 1L;
private Long appealId;
private Long mediationId;
/**
* 接谈时间
*/
private Date talkingTime;
/**
* 接谈记录
*/
private String talkingHis;
}

@ -17,9 +17,12 @@
package org.springblade.modules.business.vo; package org.springblade.modules.business.vo;
import lombok.Data; import lombok.Data;
import org.springblade.modules.business.entity.AppealMediationFile;
import org.springblade.modules.business.entity.AppealVisitor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 视图类 * 视图类
@ -32,40 +35,125 @@ public class AppealMediationVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Long id; private Long appealId;
private Long appealRegId;
/** /**
* 来访人名称 * 来访人列表
*/ */
private String username; private List<AppealVisitor> visitors;
/** /**
* 来访人身份证号 * 来访人
*/ */
private String cardno; private Integer personNum;
/**
* 所属街道字典id
*/
private Long streetId;
/**
* 纠纷字典id
*/
private Long disputeId;
/** /**
* 纠纷名称 * 纠纷名称
*/ */
private String disputeName; private String disputeName;
/**
* 何单位处理过-单位id
*/
private String disposeDept;
/**
* 何单位处理过-单位名称
*/
private String disposeDeptName;
/**
* 基层协议
*/
private String protocol;
/**
* 基层处理意见
*/
private String opinion;
/**
* 部门复查意见
*/
private String reviewOpinion;
/**
* 法律文书
*/
private String legalPaper;
/** /**
* 首次登记时间 * 首次登记时间
*/ */
private Date firstRegTime; private Date firstRegTime;
/** /**
* 办结时间 * 是否越级上报, 0:, 1:
*/ */
private Date finishTime; private Integer skipGrant;
/** /**
* 反应问题 * 反应问题
*/ */
private String problemDesc; private String problemDesc;
List<AppealMediationDetailListVO> talkingHisList;
/** /**
* 诉求状态(办理状态) 0:待处理, 1:正在处理, 2:达成协议, 3:调解成功 * 上访人意见和态度
*/ */
private int status; private String attitude;
/**
* 接谈意见
*/
private String talkingAdvice;
/**
* 责任单位id列表, 以逗号分割
*/
private String dutyDeptIds;
/**
* 抄送单位id列表, 以逗号分割
*/
private String copyDeptIds;
/**
* 纠纷等级(事件等级), 0:简单, 1:一般, 2:重大, 3:疑难
*/
private Integer disputeLevel;
/**
* 反馈时限
*/
private Date feedbackDeadline;
/**
* 办结时限
*/
private Date finishDeadline;
/**
* 备注
*/
private String remark;
/**
* 提交时间
*/
private Date submitTime;
private List<AppealMediationFile> fileList;
} }

Loading…
Cancel
Save