Commit ef4f6d3a authored by 廖旭伟's avatar 廖旭伟

保存终端提交用户事项申请,用户申请事项列表姓名脱敏

parent 3fa4040a
......@@ -143,7 +143,7 @@ DROP TABLE IF EXISTS `mortals_xhx_user_matter_details`;
CREATE TABLE mortals_xhx_user_matter_details(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`applyrId` bigint(20) NOT NULL COMMENT '用户申报id',
`datumId` bigint(20) NOT NULL COMMENT '材料id',
`datumId` bigint(20) COMMENT '材料id',
`matterId` bigint(20) COMMENT '事项id',
`matterCode` varchar(512) COMMENT '事项编码',
`shortName` varchar(512) COMMENT '材料简称',
......
......@@ -2600,6 +2600,7 @@ data|object|数据对象
  createUserId|Long|创建用户
  updateUserId|Long|更新用户
  updateTime|Date|修改时间
  matterDatumFileList|array|材料附件明细
dict|object|字典对象
**响应消息样例:**
......@@ -3080,6 +3081,7 @@ data|object|数据对象
  createUserId|Long|创建用户
  updateUserId|Long|更新用户
  updateTime|Date|修改时间
  matterDatumFileList|array|材料附件明细
dict|object|字典对象
**响应消息样例:**
......@@ -3304,6 +3306,23 @@ data|object|数据对象
  createTime|Date|创建时间
  updateUserId|Long|更新用户
  updateTime|Date|更新时间
  userMatterDetails|array|材料明细
   id|Long|序号,主键,自增长
   applyrId|Long|用户申报id
   datumId|Long|材料id
   matterId|Long|事项id
   matterCode|String|事项编码
   shortName|String|材料简称
   fullName|String|材料全称
   fileName|String|附件名称
   previewUrl|String|文件预览地址
   formContent|String|填单表单内容
   formTemplate|String|填单表单模板
   templateUrl|String|模板文件地址
   createUserId|Long|创建用户
   createTime|Date|创建时间
   updateUserId|Long|更新用户
   updateTime|Date|更新时间
dict|object|字典对象
**响应消息样例:**
......@@ -4311,4 +4330,78 @@ data|object|数据对象
```
### 终端保存更新用户申请事项
**请求URL:** user/matter/apply/save
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 保存或更新事项申请材料:id为空时为新增保存,否则为更新提交
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:-------
userId|Long|是|站点id
matterId|Long|否|事项ID
applyAddr|String|否|申报地址名称
deviceName|String|否|申报设备名称
applyPerson|String|否|申请人姓名
userMatterDetails|array|是|材料明细
 datumId|Long|附件材料ID
**请求样例:**
```
{
"userId":1,
"matterId":2,
"applyAddr":"宜宾市民中心",
"deviceName":"一楼自助服务终端",
"applyPerson":"刘德华",
"userMatterDetails":[
{
"datumId":2
}
]
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
 id|Long|保存后主键id
 entity|object|保存更新实体
  id|Long|主键,自增长
  siteId|Long|站点id
  siteName|String|站点名称
  matterId|Long|事项id
  matterCode|String|事项编码
  shortName|String|材料简称
  fullName|String|材料全称
  uselType|Integer|使用方式(1.拍照上传,2.在线填写)
  suggest|Integer|是否推荐(0否1是)
  fillSum|Integer|填写次数
  createTime|Date|创建时间
  createUserId|Long|创建用户
  updateUserId|Long|更新用户
  updateTime|Date|修改时间
**响应消息样例:**
```
{
"msg":"新增模块成功",
"code":1,
"data":{}
}
}
```
## 字典附录
package com.mortals.xhx.module.matter.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.matter.model.UserMatterApplyEntity;
import com.mortals.xhx.module.matter.model.UserMatterDetailsEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -9,6 +12,9 @@ import java.util.List;
* @author zxfei
* @date 2023-04-10
*/
@Data
public class UserMatterApplyVo extends BaseEntityLong {
/** 申报事项明细*/
private List<UserMatterDetailsEntity> userMatterDetails;
}
\ No newline at end of file
package com.mortals.xhx.module.matter.service.impl;
import cn.hutool.core.util.RandomUtil;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.module.matter.model.*;
import com.mortals.xhx.module.matter.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.matter.dao.UserMatterApplyDao;
import com.mortals.xhx.module.matter.model.UserMatterApplyEntity;
import com.mortals.xhx.module.matter.service.UserMatterApplyService;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* UserMatterApplyService
* 用户申报信息 service实现
......@@ -15,5 +25,98 @@ import com.mortals.xhx.module.matter.service.UserMatterApplyService;
*/
@Service("userMatterApplyService")
public class UserMatterApplyServiceImpl extends AbstractCRUDServiceImpl<UserMatterApplyDao, UserMatterApplyEntity, Long> implements UserMatterApplyService {
@Autowired
private UserMatterDetailsService userMatterDetailsService;
@Autowired
private MatterApplyService matterApplyService;
@Autowired
private MatterDatumService matterDatumService;
@Autowired
private MatterDatumFileService matterDatumFileService;
@Override
protected void findAfter(UserMatterApplyEntity params, Context context, List<UserMatterApplyEntity> list) throws AppException {
list.stream().peek(item->{
List<UserMatterDetailsEntity> matterDetailsFileEntities = userMatterDetailsService.find(new UserMatterDetailsQuery().applyrId(item.getId()));
item.setUserMatterDetails(matterDetailsFileEntities);
item.setApplyPerson(desensitizedName(item.getApplyPerson()));
}).count();
super.findAfter(params, context, list);
}
@Override
protected void findAfter(UserMatterApplyEntity params, PageInfo pageInfo, Context context, List<UserMatterApplyEntity> list) throws AppException {
list.stream().peek(item->{
List<UserMatterDetailsEntity> matterDetailsFileEntities = userMatterDetailsService.find(new UserMatterDetailsQuery().applyrId(item.getId()));
item.setUserMatterDetails(matterDetailsFileEntities);
item.setApplyPerson(desensitizedName(item.getApplyPerson()));
}).count();
super.findAfter(params, context, list);
}
@Override
protected void saveBefore(UserMatterApplyEntity entity, Context context) throws AppException {
super.saveBefore(entity,context);
entity.setApplyCode("SQ"+ new Date().getTime());
if(entity.getMatterId()==null){
throw new AppException("申请事项不能为空");
}else {
MatterApplyEntity matterApplyEntity = matterApplyService.get(entity.getMatterId());
if(matterApplyEntity!=null){
entity.setMatterCode(matterApplyEntity.getMatterCode());
entity.setMatterName(matterApplyEntity.getMatterName());
}
}
}
@Override
protected void saveAfter(UserMatterApplyEntity entity, Context context) throws AppException {
if (!ObjectUtils.isEmpty(entity.getUserMatterDetails())) {
List<UserMatterDetailsEntity> details = doSaveAfer(entity, context);
userMatterDetailsService.save(details);
}
super.saveAfter(entity, context);
}
private List<UserMatterDetailsEntity> doSaveAfer(UserMatterApplyEntity entity, Context context) throws AppException{
List<UserMatterDetailsEntity> details = new ArrayList<>();
if (!ObjectUtils.isEmpty(entity.getUserMatterDetails())) {
for(UserMatterDetailsEntity item:entity.getUserMatterDetails()){
MatterDatumEntity datumEntity = matterDatumService.get(item.getDatumId());
if(datumEntity==null){
throw new AppException("事项材料ID不正确");
}else {
List<MatterDatumFileEntity> datumFileList = matterDatumFileService.find(new MatterDatumFileQuery().datumId(item.getDatumId()));
for(MatterDatumFileEntity datumFile:datumFileList){
UserMatterDetailsEntity matterDetailsEntity = new UserMatterDetailsEntity();
matterDetailsEntity.setApplyrId(entity.getId());
matterDetailsEntity.setMatterId(entity.getMatterId());
matterDetailsEntity.setMatterCode(entity.getMatterCode());
matterDetailsEntity.setDatumId(item.getDatumId());
matterDetailsEntity.setFullName(datumEntity.getFullName());
matterDetailsEntity.setShortName(datumEntity.getShortName());
matterDetailsEntity.setFileName(datumFile.getFileName());
matterDetailsEntity.setPreviewUrl(datumFile.getPreviewUrl());
matterDetailsEntity.setTemplateUrl(datumFile.getTemplatePath());
matterDetailsEntity.setCreateTime(new Date());
details.add(matterDetailsEntity);
}
}
}
}
return details;
}
private static String desensitizedName(String fullName){
if (StringUtils.isNotEmpty(fullName)) {
String name = StringUtils.left(fullName, 1);
return StringUtils.rightPad(name, StringUtils.length(fullName), "*");
}
return fullName;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment