Commit 55c35bdf authored by 廖旭伟's avatar 廖旭伟

纠错管理bug修改

parent 920d332c
...@@ -38,6 +38,7 @@ public class ErrorRecoveryServiceImpl extends AbstractCRUDServiceImpl<ErrorRecov ...@@ -38,6 +38,7 @@ public class ErrorRecoveryServiceImpl extends AbstractCRUDServiceImpl<ErrorRecov
entity.setAnswerUserId(context.getUser().getId()); entity.setAnswerUserId(context.getUser().getId());
entity.setAnswerUserName(context.getUser().getRealName()); entity.setAnswerUserName(context.getUser().getRealName());
} }
entity.setAnswerDate(new Date());
} }
super.updateBefore(entity,context); super.updateBefore(entity,context);
} }
......
...@@ -7,10 +7,10 @@ import com.mortals.framework.annotation.Excel; ...@@ -7,10 +7,10 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.matter.model.vo.MatterDatumFileVo; import com.mortals.xhx.module.matter.model.vo.MatterDatumFileVo;
/** /**
* 材料附件实体对象 * 材料附件业务实体对象
* *
* @author zxfei * @author zxfei
* @date 2022-11-16 * @date 2023-03-11
*/ */
public class MatterDatumFileEntity extends MatterDatumFileVo { public class MatterDatumFileEntity extends MatterDatumFileVo {
...@@ -37,17 +37,21 @@ public class MatterDatumFileEntity extends MatterDatumFileVo { ...@@ -37,17 +37,21 @@ public class MatterDatumFileEntity extends MatterDatumFileVo {
*/ */
private String fileUrl; private String fileUrl;
/** /**
* 附件本地下载地址 * 本地文件地址
*/ */
private String localFileUrl; private String localFileUrl;
/** /**
* 附件类型 (示例样表.示例样表,空白表格.空白表格) * 附件类型 (1.示例样表,2.空白表格)
*/ */
private String filetype; private String filetype;
/** /**
* 附件来源 (0.政务网,1.自定义) * 附件来源 (0.政务网,1.自定义)
*/ */
private Integer source; private Integer source;
/**
* 预览地址
*/
private String previewUrl;
...@@ -123,28 +127,28 @@ public class MatterDatumFileEntity extends MatterDatumFileVo { ...@@ -123,28 +127,28 @@ public class MatterDatumFileEntity extends MatterDatumFileVo {
this.fileUrl = fileUrl; this.fileUrl = fileUrl;
} }
/** /**
* 获取 附件本地下载地址 * 获取 本地文件地址
* @return String * @return String
*/ */
public String getLocalFileUrl(){ public String getLocalFileUrl(){
return localFileUrl; return localFileUrl;
} }
/** /**
* 设置 附件本地下载地址 * 设置 本地文件地址
* @param localFileUrl * @param localFileUrl
*/ */
public void setLocalFileUrl(String localFileUrl){ public void setLocalFileUrl(String localFileUrl){
this.localFileUrl = localFileUrl; this.localFileUrl = localFileUrl;
} }
/** /**
* 获取 附件类型 (示例样表.示例样表,空白表格.空白表格) * 获取 附件类型 (1.示例样表,2.空白表格)
* @return String * @return String
*/ */
public String getFiletype(){ public String getFiletype(){
return filetype; return filetype;
} }
/** /**
* 设置 附件类型 (示例样表.示例样表,空白表格.空白表格) * 设置 附件类型 (1.示例样表,2.空白表格)
* @param filetype * @param filetype
*/ */
public void setFiletype(String filetype){ public void setFiletype(String filetype){
...@@ -164,6 +168,20 @@ public class MatterDatumFileEntity extends MatterDatumFileVo { ...@@ -164,6 +168,20 @@ public class MatterDatumFileEntity extends MatterDatumFileVo {
public void setSource(Integer source){ public void setSource(Integer source){
this.source = source; this.source = source;
} }
/**
* 获取 预览地址
* @return String
*/
public String getPreviewUrl(){
return previewUrl;
}
/**
* 设置 预览地址
* @param previewUrl
*/
public void setPreviewUrl(String previewUrl){
this.previewUrl = previewUrl;
}
...@@ -194,6 +212,7 @@ public class MatterDatumFileEntity extends MatterDatumFileVo { ...@@ -194,6 +212,7 @@ public class MatterDatumFileEntity extends MatterDatumFileVo {
sb.append(",localFileUrl:").append(getLocalFileUrl()); sb.append(",localFileUrl:").append(getLocalFileUrl());
sb.append(",filetype:").append(getFiletype()); sb.append(",filetype:").append(getFiletype());
sb.append(",source:").append(getSource()); sb.append(",source:").append(getSource());
sb.append(",previewUrl:").append(getPreviewUrl());
return sb.toString(); return sb.toString();
} }
...@@ -211,8 +230,10 @@ public class MatterDatumFileEntity extends MatterDatumFileVo { ...@@ -211,8 +230,10 @@ public class MatterDatumFileEntity extends MatterDatumFileVo {
this.localFileUrl = ""; this.localFileUrl = "";
this.filetype = "示例样表"; this.filetype = "";
this.source = 0;
this.source = 1; this.previewUrl = "";
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.service; package com.mortals.xhx.module.matter.service;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.matter.model.MatterDatumEntity; import com.mortals.xhx.module.matter.model.MatterDatumEntity;
/** /**
...@@ -11,4 +13,12 @@ import com.mortals.xhx.module.matter.model.MatterDatumEntity; ...@@ -11,4 +13,12 @@ import com.mortals.xhx.module.matter.model.MatterDatumEntity;
*/ */
public interface MatterDatumService extends ICRUDService<MatterDatumEntity,Long>{ public interface MatterDatumService extends ICRUDService<MatterDatumEntity,Long>{
/**
* 添加材料到公共库
*
* @param datumIds
* @param siteId
* @param context
*/
Rest<String> addToLibrary(String datumIds, Long siteId, Context context);
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.service.impl; package com.mortals.xhx.module.matter.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RandomUtil;
import com.mortals.framework.exception.AppException;
import com.mortals.xhx.common.utils.HttpDownloadUtil;
import com.mortals.xhx.common.utils.WordUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.matter.dao.MatterDatumFileDao; import com.mortals.xhx.module.matter.dao.MatterDatumFileDao;
...@@ -6,6 +12,8 @@ import com.mortals.xhx.module.matter.model.MatterDatumFileEntity; ...@@ -6,6 +12,8 @@ import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
import com.mortals.xhx.module.matter.service.MatterDatumFileService; import com.mortals.xhx.module.matter.service.MatterDatumFileService;
import javax.naming.Context; import javax.naming.Context;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -19,10 +27,71 @@ import java.util.Map; ...@@ -19,10 +27,71 @@ import java.util.Map;
@Service("matterDatumFileService") @Service("matterDatumFileService")
public class MatterDatumFileServiceImpl extends AbstractCRUDServiceImpl<MatterDatumFileDao, MatterDatumFileEntity, Long> implements MatterDatumFileService { public class MatterDatumFileServiceImpl extends AbstractCRUDServiceImpl<MatterDatumFileDao, MatterDatumFileEntity, Long> implements MatterDatumFileService {
@Value("${upload.path}")
private String filePath;
public static String word[] = {"doc", "dot", "wps", "wpt", "docx", "dotx", "docm", "dotm"};
public static String imgs[] = {"jpg", "png", "jpeg", "gif"};
public static String pdf[] = {"pdf"};
@Override @Override
public void deleteFileByDatumId(Long datumId, Context context) { public void deleteFileByDatumId(Long datumId, Context context) {
Map<String, Object> condition = new HashMap<>(); Map<String, Object> condition = new HashMap<>();
condition.put("datumId", datumId); condition.put("datumId", datumId);
this.dao.delete(condition); this.dao.delete(condition);
} }
@Override
protected void saveBefore(MatterDatumFileEntity entity, com.mortals.framework.model.Context context) throws AppException {
this.validData(entity, context);
String rootPath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/";
String prePath = "file/preview/";
String savePath = entity.getLocalFileUrl();
String newName = genPreviewPath(rootPath, prePath, savePath);
entity.setPreviewUrl(prePath+newName);
}
protected void updateBefore(MatterDatumFileEntity entity, com.mortals.framework.model.Context context) throws AppException {
this.validData(entity, context);
String rootPath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/";
String prePath = "file/preview/";
String savePath = entity.getLocalFileUrl();
String newName = genPreviewPath(rootPath, prePath, savePath);
entity.setPreviewUrl(prePath+newName);
}
private String genPreviewPath(String rootPath, String prePath, String tempPath) {
//生成样表预览图片
String samplePath = rootPath + tempPath;
String filePath = rootPath + prePath;
File pathDir = new File(filePath);
if (!pathDir.exists()) {
pathDir.mkdirs();
}
String newName = RandomUtil.randomNumbers(12) + ".jpg";
String filePathAll = filePath + newName;
//判断文件类型是否为doc pdf jpg png 等
String extName = FileUtil.getSuffix(samplePath);
if (this.isExsitArry(extName, word)) {
WordUtil.convertWordToJPEG(samplePath, filePathAll);
} else if (this.isExsitArry(extName, pdf)) {
WordUtil.pdfToImages(samplePath, filePathAll);
} else if (this.isExsitArry(extName, imgs)) {
try {
com.mortals.framework.util.FileUtil.copyFile(samplePath, filePathAll);
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
return newName;
}
public boolean isExsitArry(String chex, String arry[]) {
for (String ex : arry) {
if (chex.equalsIgnoreCase(ex)) {
return true;
}
}
return false;
}
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.service.impl; package com.mortals.xhx.module.matter.service.impl;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.matter.model.*; import com.mortals.xhx.module.matter.model.*;
import com.mortals.xhx.module.matter.service.MatterDatumFileService; import com.mortals.xhx.module.matter.service.MatterDatumFileService;
import com.mortals.xhx.module.matter.service.MatterService; import com.mortals.xhx.module.matter.service.MatterService;
import com.mortals.xhx.module.site.model.*;
import com.mortals.xhx.module.site.service.SiteDatumLibraryService;
import com.mortals.xhx.module.site.service.SiteService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
...@@ -13,7 +19,11 @@ import com.mortals.xhx.module.matter.dao.MatterDatumDao; ...@@ -13,7 +19,11 @@ import com.mortals.xhx.module.matter.dao.MatterDatumDao;
import com.mortals.xhx.module.matter.service.MatterDatumService; import com.mortals.xhx.module.matter.service.MatterDatumService;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* MatterDatumService * MatterDatumService
...@@ -31,6 +41,10 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD ...@@ -31,6 +41,10 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD
private MatterDatumFileService matterDatumFileService; private MatterDatumFileService matterDatumFileService;
@Autowired @Autowired
private UploadService uploadService; private UploadService uploadService;
@Autowired
private SiteDatumLibraryService siteDatumLibraryService;
@Autowired
private SiteService siteService;
@Override @Override
...@@ -83,4 +97,63 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD ...@@ -83,4 +97,63 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD
} }
@Override
public Rest<String> addToLibrary(String datumIds, Long siteId, Context context) {
if (ObjectUtils.isEmpty(siteId)) {
throw new AppException("请选择对应站点");
}
List<Long> datumIdList = Arrays.asList(datumIds.split(",")).stream().map(Long::parseLong).collect(Collectors.toList());
MatterDatumQuery datumQuery = new MatterDatumQuery();
datumQuery.setIdList(datumIdList);
List<MatterDatumEntity> entities = this.find(datumQuery);
int success = 0;
int fail = 0;
List<SiteDatumLibraryEntity> addEntities = new ArrayList<>();
for (MatterDatumEntity datum : entities) {
SiteDatumLibraryEntity datumLibrary = updateOrSave(datum, siteId, context);
//SiteMatterEntity siteMatterEntity = updateOrSave(matterEntity, siteId, context);
if (!ObjectUtils.isEmpty(datumLibrary)) {
addEntities.add(datumLibrary);
success++;
} else {
fail++;
}
}
if (!ObjectUtils.isEmpty(addEntities)) {
siteDatumLibraryService.save(addEntities, context);
}
String msg = "当前加入材料已存在!";
if (datumIdList.size() == 1) {
if (success > 0) {
msg = "加入材料成功!";
}
} else if (datumIdList.size() > 1) {
if (success > 0 && fail == 0) {
msg = String.format("加入材料成功%d条!", success);
} else if (success > 0 && fail > 0) {
msg = String.format("加入材料成功%d条,重复加入材料%d条!", success, fail);
} else if (success == 0 && fail > 0) {
msg = String.format("重复加入材料%d条!", fail);
}
}
return Rest.ok(msg);
}
private SiteDatumLibraryEntity updateOrSave(MatterDatumEntity item, Long siteId, Context context) {
SiteDatumLibraryEntity siteDatumLibraryEntity = siteDatumLibraryService.selectOne(new SiteDatumLibraryQuery().siteId(siteId).datumId(item.getId()));
if (ObjectUtils.isEmpty(siteDatumLibraryEntity)) {
SiteEntity siteEntity = siteService.getCache(siteId.toString());
SiteDatumLibraryEntity datumLibraryEntity = BeanUtil.covert(item,SiteDatumLibraryEntity.class);
datumLibraryEntity.setDatumId(item.getId());
datumLibraryEntity.setSiteId(siteId);
datumLibraryEntity.setSiteName(siteEntity==null?"":siteEntity.getSiteName());
datumLibraryEntity.setCreateTime(new Date());
if(context!=null&&context.getUser()!=null) {
datumLibraryEntity.setCreateUserId(context.getUser().getId());
}
return datumLibraryEntity;
}
return null;
}
} }
\ No newline at end of file
...@@ -259,9 +259,13 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter ...@@ -259,9 +259,13 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
siteMatterEntity.setMatterId(item.getId()); siteMatterEntity.setMatterId(item.getId());
siteMatterEntity.setMatterCode(item.getMatterNo()); siteMatterEntity.setMatterCode(item.getMatterNo());
siteMatterEntity.setMatterName(item.getMatterName()); siteMatterEntity.setMatterName(item.getMatterName());
siteMatterEntity.setMatterCode(item.getTcode());
siteMatterEntity.setDeptCode(item.getDeptCode()); siteMatterEntity.setDeptCode(item.getDeptCode());
siteMatterEntity.setSource(item.getSource()); siteMatterEntity.setSource(item.getSource());
siteMatterEntity.setEventTypeShow(item.getEventTypeShow()); siteMatterEntity.setEventTypeShow(item.getEventTypeShow());
siteMatterEntity.setViewsCount(0l);
siteMatterEntity.setIsConvert(0);
siteMatterEntity.setUrl(item.getUrl());
siteMatterEntity.setDeptName(deptEntity == null ? "" : deptEntity.getName()); siteMatterEntity.setDeptName(deptEntity == null ? "" : deptEntity.getName());
siteMatterEntity.setDeptId(deptEntity == null ? -1L : deptEntity.getId()); siteMatterEntity.setDeptId(deptEntity == null ? -1L : deptEntity.getId());
siteMatterEntity.setCreateUserId(context == null ? 1L : context.getUser() == null ? 1L : context.getUser().getId()); siteMatterEntity.setCreateUserId(context == null ? 1L : context.getUser() == null ? 1L : context.getUser().getId());
......
...@@ -165,6 +165,11 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe ...@@ -165,6 +165,11 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
int code=VALUE_RESULT_SUCCESS; int code=VALUE_RESULT_SUCCESS;
try { try {
PageInfo pageInfo = buildPageInfo(query); PageInfo pageInfo = buildPageInfo(query);
if(ObjectUtils.isEmpty(query.getEventTypeShowNotList())){
ArrayList<String> notList = new ArrayList<>();
notList.add("行政处罚");
query.setEventTypeShowNotList(notList);
}
Result<MatterEntity> result = this.getService().findSubList(query, pageInfo, context); Result<MatterEntity> result = this.getService().findSubList(query, pageInfo, context);
model.put(KEY_RESULT_DATA, result.getList()); model.put(KEY_RESULT_DATA, result.getList());
model.put(PAGEINFO_KEY, result.getPageInfo()); model.put(PAGEINFO_KEY, result.getPageInfo());
......
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
...@@ -11,9 +14,12 @@ import com.mortals.xhx.module.matter.model.MatterDatumFileQuery; ...@@ -11,9 +14,12 @@ import com.mortals.xhx.module.matter.model.MatterDatumFileQuery;
import com.mortals.xhx.module.matter.service.MatterDatumFileService; import com.mortals.xhx.module.matter.service.MatterDatumFileService;
import com.mortals.xhx.module.matter.service.MatterDatumService; import com.mortals.xhx.module.matter.service.MatterDatumService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -59,4 +65,28 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat ...@@ -59,4 +65,28 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
entity.setDatumFileList(matterDatumFileEntities); entity.setDatumFileList(matterDatumFileEntities);
return super.viewAfter(id, model, entity, context); return super.viewAfter(id, model, entity, context);
} }
/**
* 添加事项到站点
*/
@PostMapping(value = "addToLibrary")
public String addToLibrary(@RequestBody Map<String, Object> map) {
JSONObject jsonObject = new JSONObject();
Map<String, Object> model = new HashMap<String, Object>();
String datumIds = (String) map.get("datumIds");
Long siteId = DataUtil.converStr2Long(map.get("siteId").toString(), 0L);
try {
Rest<String> rest = this.service.addToLibrary(datumIds, siteId, getContext());
jsonObject.put(KEY_RESULT_MSG, rest.getMsg());
jsonObject.put(KEY_RESULT_DATA, model);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
this.recordSysLog(this.request, rest.getMsg());
} catch (Exception e) {
log.error("获取异常", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
} }
\ No newline at end of file
...@@ -8,8 +8,9 @@ import java.util.List; ...@@ -8,8 +8,9 @@ import java.util.List;
* 站点事项 DAO接口 * 站点事项 DAO接口
* *
* @author zxfei * @author zxfei
* @date 2022-01-12 * @date 2023-03-10
*/ */
public interface SiteMatterDao extends ICRUDDao<SiteMatterEntity,Long>{ public interface SiteMatterDao extends ICRUDDao<SiteMatterEntity,Long>{
......
...@@ -11,7 +11,7 @@ import java.util.List; ...@@ -11,7 +11,7 @@ import java.util.List;
* 站点事项DaoImpl DAO接口 * 站点事项DaoImpl DAO接口
* *
* @author zxfei * @author zxfei
* @date 2022-01-12 * @date 2023-03-10
*/ */
@Repository("siteMatterDao") @Repository("siteMatterDao")
public class SiteMatterDaoImpl extends BaseCRUDDaoMybatis<SiteMatterEntity,Long> implements SiteMatterDao { public class SiteMatterDaoImpl extends BaseCRUDDaoMybatis<SiteMatterEntity,Long> implements SiteMatterDao {
......
package com.mortals.xhx.module.site.model; package com.mortals.xhx.module.site.model;
import com.mortals.xhx.common.code.SourceEnum; import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.site.model.vo.SiteMatterVo; import com.mortals.xhx.module.site.model.vo.SiteMatterVo;
/** /**
* 站点事项实体对象 * 站点事项实体对象
* *
* @author zxfei * @author zxfei
* @date 2022-11-16 * @date 2023-03-11
*/ */
public class SiteMatterEntity extends SiteMatterVo { public class SiteMatterEntity extends SiteMatterVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 站点ID * 站点id
*/ */
private Long siteId; private Long siteId;
/** /**
...@@ -41,30 +45,42 @@ public class SiteMatterEntity extends SiteMatterVo { ...@@ -41,30 +45,42 @@ public class SiteMatterEntity extends SiteMatterVo {
*/ */
private String deptName; private String deptName;
/** /**
* 事项类型 * 部门编码
*/ */
private String eventTypeShow; private String deptCode;
/** /**
* 事项来源 * 事项来源
*/ */
private Integer source; private Integer source;
/** /**
* 部门编号 * 事项类型
*/ */
private String deptCode; private String eventTypeShow;
/**
* 浏览次数
*/
private Long viewsCount;
/**
* 是否生成本地附件
*/
private Integer isConvert;
/**
* 事项详情链接
*/
private String url;
public SiteMatterEntity(){} public SiteMatterEntity(){}
/** /**
* 获取 站点ID * 获取 站点id
* @return Long * @return Long
*/ */
public Long getSiteId(){ public Long getSiteId(){
return siteId; return siteId;
} }
/** /**
* 设置 站点ID * 设置 站点id
* @param siteId * @param siteId
*/ */
public void setSiteId(Long siteId){ public void setSiteId(Long siteId){
...@@ -155,25 +171,24 @@ public class SiteMatterEntity extends SiteMatterVo { ...@@ -155,25 +171,24 @@ public class SiteMatterEntity extends SiteMatterVo {
this.deptName = deptName; this.deptName = deptName;
} }
/** /**
* 获取 事项类型 * 获取 部门编码
* @return String * @return String
*/ */
public String getEventTypeShow(){ public String getDeptCode(){
return eventTypeShow; return deptCode;
} }
/** /**
* 设置 事项类型 * 设置 部门编码
* @param eventTypeShow * @param deptCode
*/ */
public void setEventTypeShow(String eventTypeShow){ public void setDeptCode(String deptCode){
this.eventTypeShow = eventTypeShow; this.deptCode = deptCode;
} }
/** /**
* 获取 事项来源 * 获取 事项来源
* @return Integer * @return Integer
*/ */
public Integer getSource(){ public Integer getSource(){
return source; return source;
} }
/** /**
...@@ -184,18 +199,60 @@ public class SiteMatterEntity extends SiteMatterVo { ...@@ -184,18 +199,60 @@ public class SiteMatterEntity extends SiteMatterVo {
this.source = source; this.source = source;
} }
/** /**
* 获取 部门编号 * 获取 事项类型
* @return String * @return String
*/ */
public String getDeptCode(){ public String getEventTypeShow(){
return deptCode; return eventTypeShow;
} }
/** /**
* 设置 部门编号 * 设置 事项类型
* @param deptCode * @param eventTypeShow
*/ */
public void setDeptCode(String deptCode){ public void setEventTypeShow(String eventTypeShow){
this.deptCode = deptCode; this.eventTypeShow = eventTypeShow;
}
/**
* 获取 浏览次数
* @return Long
*/
public Long getViewsCount(){
return viewsCount;
}
/**
* 设置 浏览次数
* @param viewsCount
*/
public void setViewsCount(Long viewsCount){
this.viewsCount = viewsCount;
}
/**
* 获取 是否生成本地附件
* @return Integer
*/
public Integer getIsConvert(){
return isConvert;
}
/**
* 设置 是否生成本地附件
* @param isConvert
*/
public void setIsConvert(Integer isConvert){
this.isConvert = isConvert;
}
/**
* 获取 事项详情链接
* @return String
*/
public String getUrl(){
return url;
}
/**
* 设置 事项详情链接
* @param url
*/
public void setUrl(String url){
this.url = url;
} }
...@@ -226,9 +283,12 @@ public class SiteMatterEntity extends SiteMatterVo { ...@@ -226,9 +283,12 @@ public class SiteMatterEntity extends SiteMatterVo {
sb.append(",matterCode:").append(getMatterCode()); sb.append(",matterCode:").append(getMatterCode());
sb.append(",deptId:").append(getDeptId()); sb.append(",deptId:").append(getDeptId());
sb.append(",deptName:").append(getDeptName()); sb.append(",deptName:").append(getDeptName());
sb.append(",eventTypeShow:").append(getEventTypeShow());
sb.append(",source:").append(getSource());
sb.append(",deptCode:").append(getDeptCode()); sb.append(",deptCode:").append(getDeptCode());
sb.append(",source:").append(getSource());
sb.append(",eventTypeShow:").append(getEventTypeShow());
sb.append(",viewsCount:").append(getViewsCount());
sb.append(",isConvert:").append(getIsConvert());
sb.append(",url:").append(getUrl());
return sb.toString(); return sb.toString();
} }
...@@ -248,10 +308,16 @@ public class SiteMatterEntity extends SiteMatterVo { ...@@ -248,10 +308,16 @@ public class SiteMatterEntity extends SiteMatterVo {
this.deptName = ""; this.deptName = "";
this.deptCode = "";
this.source = null;
this.eventTypeShow = ""; this.eventTypeShow = "";
this.source = 0; this.viewsCount = 0L;
this.deptCode = ""; this.isConvert = 0;
this.url = "";
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.site.model.vo; package com.mortals.xhx.module.site.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.site.model.SiteMatterEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 站点事项视图对象 * 站点事项视图对象
* *
* @author zxfei * @author zxfei
* @date 2022-01-12 * @date 2023-03-10
*/ */
@Data
public class SiteMatterVo extends BaseEntityLong { public class SiteMatterVo extends BaseEntityLong {
/** /** 材料数量 */
* 所属部门 private Integer datumCount;
*/
private String belongDept;
/**
* 窗口到现场次数
*/
private Integer windowToTheSceneNum;
/**
* 网办到现场次数
*/
private Integer onlineToTheSceneNum;
/**
* 区域编码
*/
private String areaCode;
/** 事项类型排除列表 */ public Integer getDatumCount() {
private List <String> eventTypeShowNotList; return datumCount;
}
public void setDatumCount(Integer datumCount) {
this.datumCount = datumCount;
}
} }
\ No newline at end of file
package com.mortals.xhx.module.site.service; package com.mortals.xhx.module.site.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.site.dao.SiteMatterDao;
import com.mortals.xhx.module.site.model.SiteMatterEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity;
/** /**
* SiteMatterService * SiteMatterService
* <p> *
* 站点事项 service接口 * 站点事项 service接口
* *
* @author zxfei * @author zxfei
* @date 2022-01-12 * @date 2023-03-10
*/ */
public interface SiteMatterService extends ICRUDService<SiteMatterEntity, Long> { public interface SiteMatterService extends ICRUDService<SiteMatterEntity,Long>{
SiteMatterDao getDao(); /**
* 增加浏览次数
void deleteBysiteIdAndSource(Long siteId, Integer source, Context context); * @param id
*/
void addViewsCount(Long id);
} }
\ No newline at end of file
package com.mortals.xhx.module.site.service.impl; package com.mortals.xhx.module.site.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.module.matter.model.MatterEntity; import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.model.MatterQuery; import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
import com.mortals.xhx.module.matter.service.MatterService; import com.mortals.xhx.module.matter.model.MatterDatumFileQuery;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import com.mortals.xhx.module.matter.service.MatterDatumService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.site.dao.SiteMatterDao; import com.mortals.xhx.module.site.dao.SiteMatterDao;
import com.mortals.xhx.module.site.model.SiteMatterEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity;
import com.mortals.xhx.module.site.service.SiteMatterService; import com.mortals.xhx.module.site.service.SiteMatterService;
import org.springframework.util.ObjectUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* SiteMatterService * SiteMatterService
* 站点事项 service实现 * 站点事项 service实现
* *
* @author zxfei * @author zxfei
* @date 2022-01-12 * @date 2023-03-10
*/ */
@Service("siteMatterService") @Service("siteMatterService")
public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao, SiteMatterEntity, Long> implements SiteMatterService { public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao, SiteMatterEntity, Long> implements SiteMatterService {
@Autowired @Autowired
private MatterService matterService; private MatterDatumService matterDatumService;
@Override @Override
protected void findAfter(SiteMatterEntity params, PageInfo pageInfo, Context context, List<SiteMatterEntity> list) throws AppException { protected void findAfter(SiteMatterEntity params, PageInfo pageInfo, Context context, List<SiteMatterEntity> list) throws AppException {
// List<Long> matterIdlist = list.parallelStream().map(item -> item.getMatterId()).collect(Collectors.toList()); list.stream().peek(item->{
//Map<Long, MatterEntity> matterEntityMap = matterService.find(new MatterQuery().idList(matterIdlist)).parallelStream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n)); List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
list.forEach(item -> { if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
if (!ObjectUtils.isEmpty(item.getMatterId())) { item.setDatumCount(matterDatumFileEntities.size());
MatterEntity matterEntity = matterService.get(item.getMatterId()); }else {
if (!ObjectUtils.isEmpty(matterEntity)) { item.setDatumCount(0);
item.setBelongDept(matterEntity.getBelongDept());
item.setWindowToTheSceneNum(matterEntity.getWindowToTheSceneNum());
item.setOnlineToTheSceneNum(matterEntity.getOnlineToTheSceneNum());
item.setDeptCode(matterEntity.getDeptCode());
item.setAreaCode(matterEntity.getAreaCode());
}
} }
}); }).count();
super.findAfter(params, pageInfo, context, list); super.findAfter(params, context, list);
} }
/**
* @param entity
* @param context
* @throws AppException
*/
@Override @Override
protected void updateBefore(SiteMatterEntity entity, Context context) throws AppException { protected void findAfter(SiteMatterEntity params, Context context, List<SiteMatterEntity> list) throws AppException {
super.updateBefore(entity, context); list.stream().peek(item->{
SiteMatterEntity beforeSiteMatterEntity = this.get(entity.getId(), context); List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if (!ObjectUtils.isEmpty(beforeSiteMatterEntity.getDeptId()) && !beforeSiteMatterEntity.getDeptId().equals(entity.getDeptId())) { if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
//更新事项中的部门编号 item.setDatumCount(matterDatumFileEntities.size());
MatterEntity matterEntity = matterService.get(entity.getMatterId(), context); }else {
if (!ObjectUtils.isEmpty(matterEntity)) { item.setDatumCount(0);
matterEntity.setDeptCode(entity.getDeptCode());
matterEntity.setDeptName(entity.getDeptName());
matterService.update(matterEntity, context);
}
} }
}).count();
super.findAfter(params, context, list);
} }
@Override @Override
public void deleteBysiteIdAndSource(Long siteId, Integer source, Context context) { public void addViewsCount(Long id) {
Map<String, Object> condition = new HashMap<>(); Map<String,Object> data = new HashMap<>();
condition.put("siteId", siteId); data.put("viewsCountIncrement",1);
condition.put("source", source); Map<String,Object> condition = new HashMap<>();
this.dao.delete(condition); condition.put("id",id);
dao.update(data,condition);
} }
} }
\ No newline at end of file
...@@ -3,49 +3,51 @@ package com.mortals.xhx.module.site.web; ...@@ -3,49 +3,51 @@ package com.mortals.xhx.module.site.web;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.site.model.SiteMatterEntity; import com.mortals.xhx.module.site.model.SiteMatterEntity;
import com.mortals.xhx.module.site.model.SiteMatterQuery;
import com.mortals.xhx.module.site.service.SiteMatterService; import com.mortals.xhx.module.site.service.SiteMatterService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
* 站点事项 *
* * 站点事项
* @author zxfei *
* @date 2022-01-20 * @author zxfei
*/ * @date 2023-03-10
*/
@RestController @RestController
@RequestMapping("site/matter") @RequestMapping("site/matter")
public class SiteMatterController extends BaseCRUDJsonBodyMappingController<SiteMatterService, SiteMatterEntity, Long> { public class SiteMatterController extends BaseCRUDJsonBodyMappingController<SiteMatterService,SiteMatterEntity,Long> {
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
public SiteMatterController() { public SiteMatterController(){
super.setFormClass(SiteMatterForm.class); super.setModuleDesc( "站点事项");
super.setModuleDesc("站点事项"); }
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "source", paramService.getParamBySecondOrganize("SiteMatter","source"));
super.init(model, context);
} }
/**
* @param query
* @param model
* @param context
* @throws AppException
*/
@Override @Override
protected void doListBefore(SiteMatterEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(SiteMatterEntity query, Map<String, Object> model, Context context) throws AppException {
super.doListBefore(query, model, context); Map<String,String> orderMap = new HashMap<>();
if(ObjectUtils.isEmpty(query.getEventTypeShowNotList())){ orderMap.put("viewsCount","DESC");
ArrayList<String> notList = new ArrayList<>(); query.setOrderCols(orderMap);
notList.add("行政处罚"); super.doListBefore(query,model,context);
query.setEventTypeShowNotList(notList);
} }
@Override
protected int viewAfter(Long id, Map<String, Object> model, SiteMatterEntity entity, Context context) throws AppException {
this.service.addViewsCount(id);
return 1;
} }
} }
\ No newline at end of file
...@@ -36,14 +36,17 @@ ...@@ -36,14 +36,17 @@
<resultMap type="MatterDatumFileEntity" id="MatterDatumFileEntity-Map"> <resultMap type="MatterDatumFileEntity" id="MatterDatumFileEntity-Map">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="datumId" column="datumId" /> <result property="datumId" column="datumId" />
<result property="matterCode" column="matterCode" />
<result property="materialName" column="materialName" />
<result property="fileName" column="fileName" /> <result property="fileName" column="fileName" />
<result property="fileUrl" column="fileUrl" /> <result property="fileUrl" column="fileUrl" />
<result property="localFileUrl" column="localFileUrl" />
<result property="filetype" column="filetype" /> <result property="filetype" column="filetype" />
<result property="source" column="source" /> <result property="source" column="source" />
<result property="previewUrl" column="previewUrl" />
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" /> <result property="createUserId" column="createUserId" />
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="materialName" column="materialName" />
</resultMap> </resultMap>
...@@ -133,7 +136,7 @@ ...@@ -133,7 +136,7 @@
<!-- 子表所有列 --> <!-- 子表所有列 -->
<sql id="_columns_sub"> <sql id="_columns_sub">
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
b.id,b.datumId,b.fileName,b.fileUrl,b.filetype,b.source,b.createTime,b.createUserId,b.updateTime,b.materialName, b.id,b.datumId,b.matterCode,b.materialName,b.fileName,b.fileUrl,b.filetype,b.source,b.localFileUrl,b.previewUrl,b.createTime,b.createUserId,b.updateTime,b.materialName,
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
......
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