|
|
@@ -36,212 +36,230 @@ import java.util.*;
|
|
|
@Slf4j
|
|
|
public class ModelNotarizationServiceImpl implements ModelNotarizationService {
|
|
|
|
|
|
- @Autowired
|
|
|
- private ModelMapper modelMapper;
|
|
|
- @Autowired
|
|
|
- private UserDomain userDomain;
|
|
|
- @Autowired
|
|
|
- private NotaryNoteMapper notaryNoteDao;
|
|
|
- @Autowired
|
|
|
- private NotaryOfficeMapper notaryOfficeMapper;
|
|
|
- @Autowired
|
|
|
- private ApplicationContextUtil contextUtil;
|
|
|
+ @Autowired
|
|
|
+ private ModelMapper modelMapper;
|
|
|
+ @Autowired
|
|
|
+ private UserDomain userDomain;
|
|
|
+ @Autowired
|
|
|
+ private NotaryNoteMapper notaryNoteDao;
|
|
|
+ @Autowired
|
|
|
+ private NotaryOfficeMapper notaryOfficeMapper;
|
|
|
+ @Autowired
|
|
|
+ private ApplicationContextUtil contextUtil;
|
|
|
|
|
|
- /**
|
|
|
- * 查询公证文书列表
|
|
|
- *
|
|
|
- * @param req
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public AppBaseResponse query(ModelReq req) {
|
|
|
- AppBaseResponse<List<ModelReq>> response = new AppBaseResponse<>();
|
|
|
- QueryWrapper<ModelEntity> qw = getQueryWrapper(req);
|
|
|
- if (qw == null) {
|
|
|
- return AppBaseResponse.error(ResultCode.PERMISSION_UNAUTHORISE);
|
|
|
- }
|
|
|
- IPage<ModelEntity> page = new Page<>(req.getIndex(), req.getSize());
|
|
|
- page = modelMapper.selectPage(page, qw);
|
|
|
- List<ModelEntity> list = page.getRecords();
|
|
|
- List<ModelReq> res = BeanCopyUtils.convertList2List(list, ModelReq.class);
|
|
|
- if (list != null && list.size() > 0) {
|
|
|
- Set<Integer> officeNames = new HashSet<>();
|
|
|
- for (ModelReq modelReq : res) {
|
|
|
- officeNames.add(modelReq.getNotaryOfficeId());
|
|
|
- }
|
|
|
- List<NotaryOfficeEntity> officeList = notaryOfficeMapper.selectBatchIds(officeNames);
|
|
|
- Map<String, String> officeNameMap = new HashMap<String, String>();
|
|
|
- for (NotaryOfficeEntity entity : officeList) {
|
|
|
- officeNameMap.put(String.valueOf(entity.getId()), entity.getName());
|
|
|
- }
|
|
|
- for (ModelReq model : res) {
|
|
|
- model.setNotaryOfficeName(officeNameMap.get(String.valueOf(model.getNotaryOfficeId())));
|
|
|
- if (ModelConstant.MODEL_TYPE_NOTE.equals(model.getCode())) {
|
|
|
- model.setNotaryNote(getNotaryNote(model));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- response.setData(new AppResultData<List<ModelReq>>(res, new me.zhengjie.base.Page(req.getIndex(), req.getSize(), (int) page.getTotal())));
|
|
|
- return response;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 查询公证文书列表
|
|
|
+ *
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public AppBaseResponse query(ModelReq req) {
|
|
|
+ AppBaseResponse<List<ModelReq>> response = new AppBaseResponse<>();
|
|
|
+ QueryWrapper<ModelEntity> qw = getQueryWrapper(req);
|
|
|
+ if (qw == null) {
|
|
|
+ return AppBaseResponse.error(ResultCode.PERMISSION_UNAUTHORISE);
|
|
|
+ }
|
|
|
+ IPage<ModelEntity> page = new Page<>(req.getIndex(), req.getSize());
|
|
|
+ page = modelMapper.selectPage(page, qw);
|
|
|
+ List<ModelEntity> list = page.getRecords();
|
|
|
+ List<ModelReq> res = BeanCopyUtils.convertList2List(list, ModelReq.class);
|
|
|
+ if (list != null && list.size() > 0) {
|
|
|
+ Set<Integer> officeNames = new HashSet<>();
|
|
|
+ for (ModelReq modelReq : res) {
|
|
|
+ officeNames.add(modelReq.getNotaryOfficeId());
|
|
|
+ }
|
|
|
+ List<NotaryOfficeEntity> officeList = notaryOfficeMapper.selectBatchIds(officeNames);
|
|
|
+ Map<String, String> officeNameMap = new HashMap<String, String>();
|
|
|
+ for (NotaryOfficeEntity entity : officeList) {
|
|
|
+ officeNameMap.put(String.valueOf(entity.getId()), entity.getName());
|
|
|
+ }
|
|
|
+ for (ModelReq model : res) {
|
|
|
+ model.setNotaryOfficeName(officeNameMap.get(String.valueOf(model.getNotaryOfficeId())));
|
|
|
+ if (ModelConstant.MODEL_TYPE_NOTE.equals(model.getCode())) {
|
|
|
+ model.setNotaryNote(getNotaryNote(model));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ response.setData(new AppResultData<List<ModelReq>>(res,
|
|
|
+ new me.zhengjie.base.Page(req.getIndex(), req.getSize(), (int) page.getTotal())));
|
|
|
+ return response;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取面谈笔录
|
|
|
- *
|
|
|
- * @param res
|
|
|
- * @return
|
|
|
- */
|
|
|
- private List<NotaryNoteReq> getNotaryNote(ModelReq res) {
|
|
|
- QueryWrapper<NotaryNoteEntity> notaryNoteQw = new QueryWrapper<>();
|
|
|
- notaryNoteQw.eq("model_id", res.getId());
|
|
|
- notaryNoteQw.orderByAsc("sort");
|
|
|
- List<NotaryNoteEntity> notaryNoteList = notaryNoteDao.selectList(notaryNoteQw);
|
|
|
- return BeanCopyUtils.convertList2List(notaryNoteList, NotaryNoteReq.class);
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 获取面谈笔录
|
|
|
+ *
|
|
|
+ * @param res
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<NotaryNoteReq> getNotaryNote(ModelReq res) {
|
|
|
+ QueryWrapper<NotaryNoteEntity> notaryNoteQw = new QueryWrapper<>();
|
|
|
+ notaryNoteQw.eq("model_id", res.getId());
|
|
|
+ notaryNoteQw.orderByAsc("sort");
|
|
|
+ List<NotaryNoteEntity> notaryNoteList = notaryNoteDao.selectList(notaryNoteQw);
|
|
|
+ return BeanCopyUtils.convertList2List(notaryNoteList, NotaryNoteReq.class);
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取查询对象
|
|
|
- *
|
|
|
- * @param req
|
|
|
- * @return
|
|
|
- */
|
|
|
- private QueryWrapper<ModelEntity> getQueryWrapper(ModelReq req) {
|
|
|
- QueryWrapper<ModelEntity> qw = new QueryWrapper<>();
|
|
|
- String roleName = userDomain.getUserMaxRole();
|
|
|
- if ("超级管理员".equals(roleName)) {
|
|
|
- } else if ("公证处管理员".equals(roleName)) {
|
|
|
- JwtUserDto user = contextUtil.getCurrentUser();
|
|
|
- qw.eq("notary_office_id", user.getUser().getOrgId().split("_")[1]);
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- Set<String> codes = null;
|
|
|
- if ("notary".equals(req.getChannel())) {
|
|
|
- codes = new HashSet<>(Arrays.asList("10,11,12".split(",")));
|
|
|
- } else {
|
|
|
- codes = new HashSet<>(Arrays.asList("1,2,3,4,5,6,7,8,9".split(",")));
|
|
|
- }
|
|
|
- qw.in("code", codes);
|
|
|
- qw.in("status", "0", "1");
|
|
|
- qw.orderByAsc("sort");
|
|
|
- return qw;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 获取查询对象
|
|
|
+ *
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private QueryWrapper<ModelEntity> getQueryWrapper(ModelReq req) {
|
|
|
+ QueryWrapper<ModelEntity> qw = new QueryWrapper<>();
|
|
|
+ String roleName = userDomain.getUserMaxRole();
|
|
|
+ if ("超级管理员".equals(roleName)) {
|
|
|
+ } else if ("公证处管理员".equals(roleName)) {
|
|
|
+ JwtUserDto user = contextUtil.getCurrentUser();
|
|
|
+ qw.eq("notary_office_id", user.getUser().getOrgId().split("_")[1]);
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ // 产品类型
|
|
|
+ if (StringUtils.isNotBlank(req.getProductType())) {
|
|
|
+ qw.eq("product_type", req.getProductType());
|
|
|
+ }
|
|
|
+ // 合同类型
|
|
|
+ if (req.getContractType() != null) {
|
|
|
+ qw.eq("contract_type", req.getContractType());
|
|
|
+ }
|
|
|
+ // 文书类型
|
|
|
+ if (StringUtils.isNotBlank(req.getCode())) {
|
|
|
+ qw.eq("code", req.getCode());
|
|
|
+ }
|
|
|
+ // 所属机构notary_office_id
|
|
|
+ if (req.getNotaryOfficeId()!=null) {
|
|
|
+ qw.eq("notary_office_id", req.getNotaryOfficeId());
|
|
|
+ }
|
|
|
+ Set<String> codes = null;
|
|
|
+ if ("notary".equals(req.getChannel())) {
|
|
|
+ codes = new HashSet<>(Arrays.asList("10,11,12".split(",")));
|
|
|
+ } else {
|
|
|
+ codes = new HashSet<>(Arrays.asList("1,2,3,4,5,6,7,8,9".split(",")));
|
|
|
+ }
|
|
|
+ qw.in("code", codes);
|
|
|
+ qw.in("status", "0", "1");
|
|
|
+ qw.orderByAsc("sort");
|
|
|
+ return qw;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 创建公证文书模板
|
|
|
- *
|
|
|
- * @param req
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public AppBaseResponse create(ModelReq req) {
|
|
|
- AppBaseResponse response = new AppBaseResponse();
|
|
|
- ModelEntity existModel = getModel(req);
|
|
|
- if (existModel != null) {
|
|
|
- response.fail(ResultCode.MODEL_ALREADY_EXISGT);
|
|
|
- return response;
|
|
|
- }
|
|
|
- if ("1,2,3,4,5,6,7,8,9".indexOf(req.getCode()) > -1 && isSortExist(req)) {
|
|
|
- response.fail(ResultCode.MODEL_SORT_EXISTED);
|
|
|
- return response;
|
|
|
- }
|
|
|
- ModelEntity model = ModelEntity.builder().code(req.getCode()).content(req.getContent())
|
|
|
- .ifModify(0).notaryOfficeId(req.getNotaryOfficeId()).productType(req.getProductType()).contractType(req.getContractType())
|
|
|
- .status(1).title(req.getTitle()).createTime(new Date()).build();
|
|
|
- if ("1,2,3,4,5,6,7,8,9".indexOf(req.getCode()) > -1) {
|
|
|
- model.setSort(req.getSort());
|
|
|
- } else {
|
|
|
- model.setSort(0);
|
|
|
- }
|
|
|
- modelMapper.insert(model);
|
|
|
- //
|
|
|
- if (ModelConstant.MODEL_TYPE_NOTE.equals(req.getCode())) {
|
|
|
- ModelEntity savedModel = getModel(req);
|
|
|
- List<NotaryNoteEntity> entityList = BeanCopyUtils.convertList2List(req.getNotaryNote(), NotaryNoteEntity.class);
|
|
|
- int i = 1;
|
|
|
- for (NotaryNoteEntity entity : entityList) {
|
|
|
- entity.setModelId(savedModel.getId());
|
|
|
- entity.setCreateTime(LocalDateTime.now());
|
|
|
- entity.setSort(i++);
|
|
|
- notaryNoteDao.insert(entity);
|
|
|
- }
|
|
|
- }
|
|
|
- return response;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 创建公证文书模板
|
|
|
+ *
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public AppBaseResponse create(ModelReq req) {
|
|
|
+ AppBaseResponse response = new AppBaseResponse();
|
|
|
+ ModelEntity existModel = getModel(req);
|
|
|
+ if (existModel != null) {
|
|
|
+ response.fail(ResultCode.MODEL_ALREADY_EXISGT);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ if ("1,2,3,4,5,6,7,8,9".indexOf(req.getCode()) > -1 && isSortExist(req)) {
|
|
|
+ response.fail(ResultCode.MODEL_SORT_EXISTED);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ ModelEntity model = ModelEntity.builder().code(req.getCode()).content(req.getContent()).ifModify(0)
|
|
|
+ .notaryOfficeId(req.getNotaryOfficeId()).productType(req.getProductType())
|
|
|
+ .contractType(req.getContractType()).status(1).title(req.getTitle()).createTime(new Date()).build();
|
|
|
+ if ("1,2,3,4,5,6,7,8,9".indexOf(req.getCode()) > -1) {
|
|
|
+ model.setSort(req.getSort());
|
|
|
+ } else {
|
|
|
+ model.setSort(0);
|
|
|
+ }
|
|
|
+ modelMapper.insert(model);
|
|
|
+ //
|
|
|
+ if (ModelConstant.MODEL_TYPE_NOTE.equals(req.getCode())) {
|
|
|
+ ModelEntity savedModel = getModel(req);
|
|
|
+ List<NotaryNoteEntity> entityList = BeanCopyUtils.convertList2List(req.getNotaryNote(),
|
|
|
+ NotaryNoteEntity.class);
|
|
|
+ int i = 1;
|
|
|
+ for (NotaryNoteEntity entity : entityList) {
|
|
|
+ entity.setModelId(savedModel.getId());
|
|
|
+ entity.setCreateTime(LocalDateTime.now());
|
|
|
+ entity.setSort(i++);
|
|
|
+ notaryNoteDao.insert(entity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return response;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取模型
|
|
|
- * @param req
|
|
|
- * @return
|
|
|
- */
|
|
|
- private ModelEntity getModel(ModelReq req) {
|
|
|
- QueryWrapper<ModelEntity> qw = new QueryWrapper<>();
|
|
|
- qw.eq("code", req.getCode());
|
|
|
- qw.eq("notary_office_id", req.getNotaryOfficeId());
|
|
|
- qw.eq("product_type", req.getProductType());
|
|
|
- qw.eq("contract_type", req.getContractType());
|
|
|
- qw.in("status", 0, 1);
|
|
|
- ModelEntity model = modelMapper.selectOne(qw);
|
|
|
- return model;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 获取模型
|
|
|
+ *
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private ModelEntity getModel(ModelReq req) {
|
|
|
+ QueryWrapper<ModelEntity> qw = new QueryWrapper<>();
|
|
|
+ qw.eq("code", req.getCode());
|
|
|
+ qw.eq("notary_office_id", req.getNotaryOfficeId());
|
|
|
+ qw.eq("product_type", req.getProductType());
|
|
|
+ qw.eq("contract_type", req.getContractType());
|
|
|
+ qw.in("status", 0, 1);
|
|
|
+ ModelEntity model = modelMapper.selectOne(qw);
|
|
|
+ return model;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 排序值是否已经存在
|
|
|
- *
|
|
|
- * @param req
|
|
|
- * @return
|
|
|
- */
|
|
|
- private boolean isSortExist(ModelReq req) {
|
|
|
- QueryWrapper<ModelEntity> qw = new QueryWrapper<>();
|
|
|
- qw.ne("code", req.getCode());
|
|
|
- qw.eq("notary_office_id", req.getNotaryOfficeId());
|
|
|
- qw.eq("product_type", req.getProductType());
|
|
|
- qw.eq("contract_type", req.getContractType());
|
|
|
- qw.eq("sort", req.getSort());
|
|
|
- if (req.getId() != null && req.getId() != 0) {
|
|
|
- qw.ne("id", req.getId());
|
|
|
- }
|
|
|
- qw.in("status", 0, 1);
|
|
|
- List<ModelEntity> modelList = modelMapper.selectList(qw);
|
|
|
- return modelList != null && modelList.size() > 0;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 排序值是否已经存在
|
|
|
+ *
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private boolean isSortExist(ModelReq req) {
|
|
|
+ QueryWrapper<ModelEntity> qw = new QueryWrapper<>();
|
|
|
+ qw.ne("code", req.getCode());
|
|
|
+ qw.eq("notary_office_id", req.getNotaryOfficeId());
|
|
|
+ qw.eq("product_type", req.getProductType());
|
|
|
+ qw.eq("contract_type", req.getContractType());
|
|
|
+ qw.eq("sort", req.getSort());
|
|
|
+ if (req.getId() != null && req.getId() != 0) {
|
|
|
+ qw.ne("id", req.getId());
|
|
|
+ }
|
|
|
+ qw.in("status", 0, 1);
|
|
|
+ List<ModelEntity> modelList = modelMapper.selectList(qw);
|
|
|
+ return modelList != null && modelList.size() > 0;
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * 修改公证文书模板
|
|
|
- *
|
|
|
- * @param req
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public AppBaseResponse update(ModelReq req) {
|
|
|
- AppBaseResponse response = new AppBaseResponse();
|
|
|
- if ("1,2,3,4,5,6,7,8,9".indexOf(req.getCode()) > -1 && isSortExist(req)) {
|
|
|
- response.fail(ResultCode.MODEL_SORT_EXISTED);
|
|
|
- return response;
|
|
|
- }
|
|
|
- ModelEntity model = ModelEntity.builder()
|
|
|
- .id(req.getId()).code(req.getCode()).sort(req.getSort())
|
|
|
- .content(req.getContent()).notaryOfficeId(req.getNotaryOfficeId()).status(req.getStatus()).contractType(req.getContractType())
|
|
|
- .title(req.getTitle()).productType(req.getProductType()).build();
|
|
|
- modelMapper.updateById(model);
|
|
|
- if (ModelConstant.MODEL_TYPE_NOTE.equals(req.getCode())) {
|
|
|
- QueryWrapper<NotaryNoteEntity> qw = new QueryWrapper<>();
|
|
|
- qw.eq("model_id", req.getId());
|
|
|
- notaryNoteDao.delete(qw);
|
|
|
- //
|
|
|
- List<NotaryNoteEntity> entityList = BeanCopyUtils.convertList2List(req.getNotaryNote(), NotaryNoteEntity.class);
|
|
|
- int i = 1;
|
|
|
- for (NotaryNoteEntity entity : entityList) {
|
|
|
- entity.setId(null);
|
|
|
- entity.setModelId(req.getId());
|
|
|
- entity.setCreateTime(LocalDateTime.now());
|
|
|
- entity.setSort(i++);
|
|
|
- notaryNoteDao.insert(entity);
|
|
|
- }
|
|
|
- }
|
|
|
- return response;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 修改公证文书模板
|
|
|
+ *
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public AppBaseResponse update(ModelReq req) {
|
|
|
+ AppBaseResponse response = new AppBaseResponse();
|
|
|
+ if ("1,2,3,4,5,6,7,8,9".indexOf(req.getCode()) > -1 && isSortExist(req)) {
|
|
|
+ response.fail(ResultCode.MODEL_SORT_EXISTED);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ ModelEntity model = ModelEntity.builder().id(req.getId()).code(req.getCode()).sort(req.getSort())
|
|
|
+ .content(req.getContent()).notaryOfficeId(req.getNotaryOfficeId()).status(req.getStatus())
|
|
|
+ .contractType(req.getContractType()).title(req.getTitle()).productType(req.getProductType()).build();
|
|
|
+ modelMapper.updateById(model);
|
|
|
+ if (ModelConstant.MODEL_TYPE_NOTE.equals(req.getCode())) {
|
|
|
+ QueryWrapper<NotaryNoteEntity> qw = new QueryWrapper<>();
|
|
|
+ qw.eq("model_id", req.getId());
|
|
|
+ notaryNoteDao.delete(qw);
|
|
|
+ //
|
|
|
+ List<NotaryNoteEntity> entityList = BeanCopyUtils.convertList2List(req.getNotaryNote(),
|
|
|
+ NotaryNoteEntity.class);
|
|
|
+ int i = 1;
|
|
|
+ for (NotaryNoteEntity entity : entityList) {
|
|
|
+ entity.setId(null);
|
|
|
+ entity.setModelId(req.getId());
|
|
|
+ entity.setCreateTime(LocalDateTime.now());
|
|
|
+ entity.setSort(i++);
|
|
|
+ notaryNoteDao.insert(entity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return response;
|
|
|
+ }
|
|
|
}
|