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

用户同步时删除不存在的用户数据,新增单事项审批工作人员时将管理员类型也加入其中;所有管理员类型用户可以查看全部审批数据;优化单事项列表查询方法

parent a4b3f411
......@@ -50,7 +50,7 @@ import com.mortals.xhx.base.system.task.service.TaskService;
*/
@Service("taskService")
public class TaskServiceImpl extends AbstractCRUDServiceImpl<TaskDao, TaskEntity, Long>
implements TaskService, IApplicationStartedService {//
implements TaskService {//
private boolean isStop = false;
/** 休眠时间 */
......@@ -146,166 +146,166 @@ public class TaskServiceImpl extends AbstractCRUDServiceImpl<TaskDao, TaskEntity
return true;
}
@Override
public int getOrder() {
return 100;
}
@Override
public void start() throws AppException {
final String localIp = SystemUtil.getLocalHostIp();
log.info("任务执行线程启动...-->" + localIp);
thread = new Thread(() -> {
// 将本机上次执行而未完成的任务状态变更
try {
taskService.doForceUpdateTaskUnLock(localIp);
} catch (Throwable e) {
log.error("释放上次执行而未完成的任务锁失败-->" + localIp, e);
}
int threadSize = 10;
ExecutorService executorService = Executors.newFixedThreadPool(threadSize);
while (!isStop) {
if (!isUnlockSuccess && prevTask != null) {
try {
taskService.doForceUpdateTaskUnLock(prevTask);
isUnlockSuccess = true;
prevTask = null;
} catch (Throwable e) {
isUnlockSuccess = false;
if (checkPrintLog(prevTask)) {
log.error("释放任务锁失败-->" + prevTask, e);
}
try {
Thread.sleep(sleepTime);
} catch (Throwable ex) {
}
continue;
}
}
Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_MONTH);
int week = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (week == 0) {
week = 7;
}
int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int currTime = converTime(cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE));
try {
TaskQuery params = new TaskQuery();
params.setStatus(ExcuteStatus.WAIT_RUN.getValue());
List<TaskEntity> taskList = find(params, null);
if (taskList != null && taskList.size() > 0) {
final Date currDateTime = cal.getTime();
String currDateTimeStr = DateUtils.getDateTime(currDateTime, "yyyyMMddHHmm");
for (TaskEntity task : taskList) {
try {
String allowExcuteHost = task.getExcuteHost();
if (StringUtils.isNotEmpty(allowExcuteHost)
&& ("," + allowExcuteHost + ",").indexOf("," + localIp + ",") == -1) {
continue;
}
int strategy = task.getExcuteStrategy() == null ? -1 : task.getExcuteStrategy();
int excuteDate = task.getExcuteDate() == null ? -1 : task.getExcuteDate();
int interimExcuteStatus = task.getInterimExcuteStatus() == null ? -1
: task.getInterimExcuteStatus();
int excuteTime = converTime(task.getExcuteTime());
Date lastExcuteTime = task.getLastExcuteTime();
String lastExcuteTimeStr = "";
if (lastExcuteTime != null) {
lastExcuteTimeStr = DateUtils.getDateTime(lastExcuteTime, "yyyyMMddHHmm");
}
if (interimExcuteStatus != TaskInterimExcuteStatus.UNUSE.getValue() // 启用立即执行
|| ((strategy == TaskExcuteStrategy.DAY.getValue() // 按天
|| (strategy == TaskExcuteStrategy.WEEK.getValue()
&& week == excuteDate)
// 按周
|| (strategy == TaskExcuteStrategy.MONTH.getValue()
&& (day == excuteDate
|| (excuteDate > maxDay && day == maxDay))))// 按月
&& (excuteTime == currTime
&& !lastExcuteTimeStr.equals(currDateTimeStr)) // 执行间隔最少为一天
) || (strategy == TaskExcuteStrategy.INTERVAL.getValue() // 按间隔时间
&& (lastExcuteTime == null || lastExcuteTime.getTime()
+ excuteDate * 1000 <= currDateTime.getTime()))) {
final boolean printLog = checkPrintLog(task);
Object excuteBean = GlobalSysInfo.getBeanByName(task.getExcuteService());
if (excuteBean == null || !(excuteBean instanceof ITaskExcuteService)) {
if (printLog) {
log.warn("未获取到服务执行组件,任务执行失败!-->" + task);
}
continue;
}
final ITaskExcuteService excuteService = (ITaskExcuteService) excuteBean;
task.setLastExcuteHost(localIp);
if (taskService.doForceUpdateTaskLock(task)) {
task.setStatus(ExcuteStatus.RUNNING.getValue());
final TaskEntity excuteTask = task;
executorService.execute(new Runnable() {
@Override
public void run() {
try {
if (printLog) {
log.info("开始执行任务...-->" + excuteTask);
}
long startTime = System.currentTimeMillis();
excuteService.excuteTask(excuteTask);
// 执行成功,更新执行时间
excuteTask.setLastExcuteTime(currDateTime);
if (printLog) {
log.info("任务执行完成,用时:"
+ ((System.currentTimeMillis() - startTime) / 1000) + "秒-->"
+ excuteTask);
}
} catch (Throwable e) {
if (printLog) {
log.error("执行任务失败-->" + excuteTask, e);
}
if (strategy == TaskExcuteStrategy.INTERVAL.getValue()) {
// 按间隔时间,更新执行时间,避免一直重复执行
excuteTask.setLastExcuteTime(currDateTime);
}
} finally {
try {
taskService.doForceUpdateTaskUnLock(excuteTask);
isUnlockSuccess = true;
prevTask = null;
} catch (Throwable e) {
isUnlockSuccess = false;
prevTask = excuteTask;
if (printLog) {
log.error("释放任务锁失败-->" + excuteTask, e);
}
}
}
}
});
}
}
} catch (Throwable e) {
log.error("执行任务失败-->" + task, e);
}
}
}
} catch (Throwable e) {
log.error("获取任务信息失败", e);
}
try {
Thread.sleep(sleepTime);
} catch (Throwable e) {
}
}
executorService.shutdown();
log.info("任务执行线程退出!");
});
thread.start();
}
@Override
public void stop() throws AppException {
this.isStop = true;
if (thread != null) {
thread.interrupt();
}
}
// @Override
// public int getOrder() {
// return 100;
// }
//
// @Override
// public void start() throws AppException {
// final String localIp = SystemUtil.getLocalHostIp();
// log.info("任务执行线程启动...-->" + localIp);
// thread = new Thread(() -> {
// // 将本机上次执行而未完成的任务状态变更
// try {
// taskService.doForceUpdateTaskUnLock(localIp);
// } catch (Throwable e) {
// log.error("释放上次执行而未完成的任务锁失败-->" + localIp, e);
// }
// int threadSize = 10;
// ExecutorService executorService = Executors.newFixedThreadPool(threadSize);
// while (!isStop) {
// if (!isUnlockSuccess && prevTask != null) {
// try {
// taskService.doForceUpdateTaskUnLock(prevTask);
// isUnlockSuccess = true;
// prevTask = null;
// } catch (Throwable e) {
// isUnlockSuccess = false;
// if (checkPrintLog(prevTask)) {
// log.error("释放任务锁失败-->" + prevTask, e);
// }
// try {
// Thread.sleep(sleepTime);
// } catch (Throwable ex) {
// }
// continue;
// }
// }
// Calendar cal = Calendar.getInstance();
// int day = cal.get(Calendar.DAY_OF_MONTH);
// int week = cal.get(Calendar.DAY_OF_WEEK) - 1;
// if (week == 0) {
// week = 7;
// }
// int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
// int currTime = converTime(cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE));
// try {
// TaskQuery params = new TaskQuery();
// params.setStatus(ExcuteStatus.WAIT_RUN.getValue());
// List<TaskEntity> taskList = find(params, null);
// if (taskList != null && taskList.size() > 0) {
// final Date currDateTime = cal.getTime();
// String currDateTimeStr = DateUtils.getDateTime(currDateTime, "yyyyMMddHHmm");
// for (TaskEntity task : taskList) {
// try {
// String allowExcuteHost = task.getExcuteHost();
// if (StringUtils.isNotEmpty(allowExcuteHost)
// && ("," + allowExcuteHost + ",").indexOf("," + localIp + ",") == -1) {
// continue;
// }
// int strategy = task.getExcuteStrategy() == null ? -1 : task.getExcuteStrategy();
// int excuteDate = task.getExcuteDate() == null ? -1 : task.getExcuteDate();
// int interimExcuteStatus = task.getInterimExcuteStatus() == null ? -1
// : task.getInterimExcuteStatus();
// int excuteTime = converTime(task.getExcuteTime());
// Date lastExcuteTime = task.getLastExcuteTime();
// String lastExcuteTimeStr = "";
// if (lastExcuteTime != null) {
// lastExcuteTimeStr = DateUtils.getDateTime(lastExcuteTime, "yyyyMMddHHmm");
// }
// if (interimExcuteStatus != TaskInterimExcuteStatus.UNUSE.getValue() // 启用立即执行
// || ((strategy == TaskExcuteStrategy.DAY.getValue() // 按天
// || (strategy == TaskExcuteStrategy.WEEK.getValue()
// && week == excuteDate)
// // 按周
// || (strategy == TaskExcuteStrategy.MONTH.getValue()
// && (day == excuteDate
// || (excuteDate > maxDay && day == maxDay))))// 按月
// && (excuteTime == currTime
// && !lastExcuteTimeStr.equals(currDateTimeStr)) // 执行间隔最少为一天
// ) || (strategy == TaskExcuteStrategy.INTERVAL.getValue() // 按间隔时间
// && (lastExcuteTime == null || lastExcuteTime.getTime()
// + excuteDate * 1000 <= currDateTime.getTime()))) {
// final boolean printLog = checkPrintLog(task);
// Object excuteBean = GlobalSysInfo.getBeanByName(task.getExcuteService());
// if (excuteBean == null || !(excuteBean instanceof ITaskExcuteService)) {
// if (printLog) {
// log.warn("未获取到服务执行组件,任务执行失败!-->" + task);
// }
// continue;
// }
// final ITaskExcuteService excuteService = (ITaskExcuteService) excuteBean;
// task.setLastExcuteHost(localIp);
// if (taskService.doForceUpdateTaskLock(task)) {
// task.setStatus(ExcuteStatus.RUNNING.getValue());
// final TaskEntity excuteTask = task;
// executorService.execute(new Runnable() {
// @Override
// public void run() {
// try {
// if (printLog) {
// log.info("开始执行任务...-->" + excuteTask);
// }
// long startTime = System.currentTimeMillis();
// excuteService.excuteTask(excuteTask);
// // 执行成功,更新执行时间
// excuteTask.setLastExcuteTime(currDateTime);
// if (printLog) {
// log.info("任务执行完成,用时:"
// + ((System.currentTimeMillis() - startTime) / 1000) + "秒-->"
// + excuteTask);
// }
// } catch (Throwable e) {
// if (printLog) {
// log.error("执行任务失败-->" + excuteTask, e);
// }
// if (strategy == TaskExcuteStrategy.INTERVAL.getValue()) {
// // 按间隔时间,更新执行时间,避免一直重复执行
// excuteTask.setLastExcuteTime(currDateTime);
// }
// } finally {
// try {
// taskService.doForceUpdateTaskUnLock(excuteTask);
// isUnlockSuccess = true;
// prevTask = null;
// } catch (Throwable e) {
// isUnlockSuccess = false;
// prevTask = excuteTask;
// if (printLog) {
// log.error("释放任务锁失败-->" + excuteTask, e);
// }
// }
// }
// }
// });
// }
// }
// } catch (Throwable e) {
// log.error("执行任务失败-->" + task, e);
// }
// }
// }
// } catch (Throwable e) {
// log.error("获取任务信息失败", e);
// }
// try {
// Thread.sleep(sleepTime);
// } catch (Throwable e) {
// }
// }
// executorService.shutdown();
// log.info("任务执行线程退出!");
// });
// thread.start();
// }
//
// @Override
// public void stop() throws AppException {
// this.isStop = true;
// if (thread != null) {
// thread.interrupt();
// }
// }
}
\ No newline at end of file
......@@ -11,6 +11,10 @@ import java.util.List;
* @date 2022-01-12
*/
public interface MatterDatumDao extends ICRUDDao<MatterDatumEntity,Long>{
/***
* 统计事项材料数
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
}
......@@ -17,5 +17,8 @@ import java.util.List;
public class MatterDatumDaoImpl extends BaseCRUDDaoMybatis<MatterDatumEntity,Long> implements MatterDatumDao {
@Override
public List<MatterDatumEntity> getMatterDatumCount() {
return this.getSqlSession().selectList(this.getSqlId("getMatterDatumCount"));
}
}
......@@ -18,4 +18,5 @@ public class MatterDatumVo extends BaseEntityLong {
private List<MatterDatumFileEntity> datumFileList;
private Integer count;
}
\ No newline at end of file
......@@ -3,6 +3,9 @@ import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import java.util.List;
/**
* MatterDatumService
*
......@@ -21,4 +24,10 @@ public interface MatterDatumService extends ICRUDService<MatterDatumEntity,Long>
* @param context
*/
Rest<String> addToLibrary(String datumIds, Long siteId, Context context);
/***
* 统计事项材料数
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
}
\ No newline at end of file
......@@ -140,6 +140,11 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD
return Rest.ok(msg);
}
@Override
public List<MatterDatumEntity> getMatterDatumCount() {
return dao.getMatterDatumCount();
}
private SiteDatumLibraryEntity updateOrSave(MatterDatumEntity item, Long siteId, Context context) {
SiteDatumLibraryEntity siteDatumLibraryEntity = siteDatumLibraryService.selectOne(new SiteDatumLibraryQuery().siteId(siteId).datumId(item.getId()));
if (ObjectUtils.isEmpty(siteDatumLibraryEntity)) {
......
......@@ -39,10 +39,20 @@ public class SiteMatterAssistServiceImpl extends AbstractCRUDServiceImpl<SiteMat
@Override
protected void findAfter(SiteMatterAssistEntity params, PageInfo pageInfo, Context context, List<SiteMatterAssistEntity> list) throws AppException {
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.getMatterDatumCount();
Map<Long,Integer> datumCountMap = new HashMap<>();
for (MatterDatumEntity item:matterDatumFileEntities){
datumCountMap.put(item.getMatterId(),item.getCount());
}
list.stream().peek(item->{
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
item.setDatumCount(matterDatumFileEntities.size());
// List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
// if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
// item.setDatumCount(matterDatumFileEntities.size());
// }else {
// item.setDatumCount(0);
// }
if(datumCountMap.containsKey(item.getMatterId())){
item.setDatumCount(datumCountMap.get(item.getMatterId()));
}else {
item.setDatumCount(0);
}
......@@ -69,10 +79,20 @@ public class SiteMatterAssistServiceImpl extends AbstractCRUDServiceImpl<SiteMat
@Override
protected void findAfter(SiteMatterAssistEntity params, Context context, List<SiteMatterAssistEntity> list) throws AppException {
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.getMatterDatumCount();
Map<Long,Integer> datumCountMap = new HashMap<>();
for (MatterDatumEntity item:matterDatumFileEntities){
datumCountMap.put(item.getMatterId(),item.getCount());
}
list.stream().peek(item->{
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
item.setDatumCount(matterDatumFileEntities.size());
// List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
// if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
// item.setDatumCount(matterDatumFileEntities.size());
// }else {
// item.setDatumCount(0);
// }
if(datumCountMap.containsKey(item.getMatterId())){
item.setDatumCount(datumCountMap.get(item.getMatterId()));
}else {
item.setDatumCount(0);
}
......
......@@ -444,6 +444,13 @@
#{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByKeyList">
delete from mortals_xhx_user where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_user as a
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.matter.dao.ibatis.MatterDatumDaoImpl">
<select id="getMatterDatumCount" resultType="com.mortals.xhx.module.matter.model.MatterDatumEntity">
SELECT matterId,count(1) as count FROM mortals_sys_matter_datum GROUP BY matterId
</select>
</mapper>
\ No newline at end of file
......@@ -20,9 +20,7 @@
<profiles>
<profile>
<id>develop</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.active>develop</profiles.active>
<profiles.server.path>/sm</profiles.server.path>
......@@ -38,6 +36,9 @@
</profile>
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.active>test</profiles.active>
<profiles.server.path>/sm</profiles.server.path>
......
......@@ -25,4 +25,5 @@ import java.util.List;
public interface UserDao extends ICRUDDao<UserEntity,Long> {
public List<Long> getAuthListById(Long id);
int deleteNotIn(List<Long> keyList);
}
\ No newline at end of file
......@@ -35,4 +35,9 @@ public class UserDaoImpl extends BaseCRUDDaoMybatis<UserEntity,Long> implements
return getSqlSession().selectList(getSqlId("getAuthListById"), param);
}
@Override
public int deleteNotIn(List<Long> keyList) {
return this.getSqlSession().delete(this.getSqlId("deleteByNotInKeyList"), keyList);
}
}
\ No newline at end of file
......@@ -326,6 +326,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
@Override
public void updateUserList(List<UserPhpPdu> list) {
if(!CollectionUtils.isEmpty(list)){
List<Long> userIdList = new ArrayList<>();
for(UserPhpPdu phpPdu:list){
UserEntity tempUser = this.selectOne(new UserQuery().loginName(phpPdu.getAccount()));
if (ObjectUtils.isEmpty(tempUser)) {
......@@ -342,6 +343,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
}
entity.setUserType(DataUtil.converStr2Int(phpPdu.getType(),1));
dao.insert(entity);
userIdList.add(entity.getId());
} else {
//更新
UserEntity userEntity = new UserEntity();
......@@ -356,8 +358,12 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
}
userEntity.setUserType(DataUtil.converStr2Int(phpPdu.getType(),1));
dao.update(userEntity);
userIdList.add(tempUser.getId());
}
}
if(userIdList.size()>0){
dao.deleteNotIn(userIdList);
}
}
}
......
......@@ -13,5 +13,5 @@ import java.util.List;
public interface ApproverDao extends ICRUDDao<ApproverEntity,Long>{
int deleteNotIn(List<Long> keyList);
}
......@@ -17,5 +17,8 @@ import java.util.List;
public class ApproverDaoImpl extends BaseCRUDDaoMybatis<ApproverEntity,Long> implements ApproverDao {
@Override
public int deleteNotIn(List<Long> keyList) {
return this.getSqlSession().delete(this.getSqlId("deleteByNotInKeyList"), keyList);
}
}
......@@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -39,10 +40,11 @@ public class ApproverServiceImpl extends AbstractCRUDServiceImpl<ApproverDao, Ap
@Override
public void updateUserList(List<UserPhpPdu> list) {
if(!CollectionUtils.isEmpty(list)){
List<Long> userIdList = new ArrayList<>();
for(UserPhpPdu phpPdu:list){
if(!phpPdu.getType().equals("2")){
continue;
}
// if(!phpPdu.getType().equals("2")){
// continue;
// }
ApproverEntity tempUser = this.selectOne(new ApproverQuery().loginName(phpPdu.getAccount()));
if (ObjectUtils.isEmpty(tempUser)) {
//新增
......@@ -58,7 +60,7 @@ public class ApproverServiceImpl extends AbstractCRUDServiceImpl<ApproverDao, Ap
approverEntity.setSiteId(1l);
approverEntity.setCreateTime(new Date());
dao.insert(approverEntity);
userIdList.add(approverEntity.getId());
} else {
//更新
ApproverEntity approverEntity = new ApproverEntity();
......@@ -73,8 +75,12 @@ public class ApproverServiceImpl extends AbstractCRUDServiceImpl<ApproverDao, Ap
approverEntity.setPhoneNumber(phpPdu.getMobile());
approverEntity.setUpdateTime(new Date());
dao.update(approverEntity);
userIdList.add(tempUser.getId());
}
}
if(userIdList.size()>0){
dao.deleteNotIn(userIdList);
}
}
}
......
......@@ -105,8 +105,7 @@ public class MatterApplyServiceImpl extends AbstractCRUDServiceImpl<MatterApplyD
params.setDeptCode(deptCode);
}
if( context!=null && context.getUser()!=null){
String loginName = context.getUser().getLoginName();
if(loginName.equals("renlin")) {
if(context.getUser().getUserType()==2) {
params.setDeptCode(null);
}
}
......
......@@ -12,5 +12,9 @@ import java.util.List;
*/
public interface MatterDatumDao extends ICRUDDao<MatterDatumEntity,Long>{
/***
* 统计事项材料数
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
}
......@@ -17,5 +17,8 @@ import java.util.List;
public class MatterDatumDaoImpl extends BaseCRUDDaoMybatis<MatterDatumEntity,Long> implements MatterDatumDao {
@Override
public List<MatterDatumEntity> getMatterDatumCount() {
return this.getSqlSession().selectList(this.getSqlId("getMatterDatumCount"));
}
}
......@@ -18,4 +18,6 @@ public class MatterDatumVo extends BaseEntityLong {
private List<MatterDatumFileEntity> datumFileList;
private Integer count;
}
\ No newline at end of file
......@@ -3,6 +3,9 @@ import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import java.util.List;
/**
* MatterDatumService
*
......@@ -21,4 +24,10 @@ public interface MatterDatumService extends ICRUDService<MatterDatumEntity,Long>
* @param context
*/
Rest<String> addToLibrary(String datumIds, Long siteId, Context context);
/***
* 统计事项材料数
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
}
\ No newline at end of file
......@@ -140,6 +140,11 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD
return Rest.ok(msg);
}
@Override
public List<MatterDatumEntity> getMatterDatumCount() {
return dao.getMatterDatumCount();
}
private SiteDatumLibraryEntity updateOrSave(MatterDatumEntity item, Long siteId, Context context) {
SiteDatumLibraryEntity siteDatumLibraryEntity = siteDatumLibraryService.selectOne(new SiteDatumLibraryQuery().siteId(siteId).datumId(item.getId()));
if (ObjectUtils.isEmpty(siteDatumLibraryEntity)) {
......
......@@ -38,10 +38,21 @@ public class SingleMatterServiceImpl extends AbstractCRUDServiceImpl<SingleMatte
@Override
protected void findAfter(SingleMatterEntity params, PageInfo pageInfo, Context context, List<SingleMatterEntity> list) throws AppException {
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.getMatterDatumCount();
Map<Long,Integer> datumCountMap = new HashMap<>();
for (MatterDatumEntity item:matterDatumFileEntities){
datumCountMap.put(item.getMatterId(),item.getCount());
}
list.stream().peek(item->{
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
item.setDatumCount(matterDatumFileEntities.size());
// List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
// if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
// item.setDatumCount(matterDatumFileEntities.size());
// }else {
// item.setDatumCount(0);
// }
if(datumCountMap.containsKey(item.getMatterId())){
item.setDatumCount(datumCountMap.get(item.getMatterId()));
}else {
item.setDatumCount(0);
}
......@@ -57,10 +68,20 @@ public class SingleMatterServiceImpl extends AbstractCRUDServiceImpl<SingleMatte
@Override
protected void findAfter(SingleMatterEntity params, Context context, List<SingleMatterEntity> list) throws AppException {
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.getMatterDatumCount();
Map<Long,Integer> datumCountMap = new HashMap<>();
for (MatterDatumEntity item:matterDatumFileEntities){
datumCountMap.put(item.getMatterId(),item.getCount());
}
list.stream().peek(item->{
List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
item.setDatumCount(matterDatumFileEntities.size());
// List<MatterDatumEntity> matterDatumFileEntities = matterDatumService.find(new MatterDatumQuery().matterId(item.getMatterId()));
// if(CollectionUtils.isNotEmpty(matterDatumFileEntities)) {
// item.setDatumCount(matterDatumFileEntities.size());
// }else {
// item.setDatumCount(0);
// }
if(datumCountMap.containsKey(item.getMatterId())){
item.setDatumCount(datumCountMap.get(item.getMatterId()));
}else {
item.setDatumCount(0);
}
......
......@@ -444,6 +444,20 @@
#{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByKeyList">
delete from mortals_xhx_user where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByNotInKeyList">
delete from mortals_xhx_user where id not in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_user as a
......
......@@ -298,7 +298,13 @@
#{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByNotInKeyList">
delete from mortals_sys_approver where id not in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据对象列表删除一批,针对单一主健有效 -->
<delete id="deleteByEntityList">
delete from mortals_sys_approver where id in
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.matter.dao.ibatis.MatterDatumDaoImpl">
<select id="getMatterDatumCount" resultType="com.mortals.xhx.module.matter.model.MatterDatumEntity">
SELECT matterId,count(1) as count FROM mortals_sys_matter_datum GROUP BY matterId
</select>
</mapper>
\ 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