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

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

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