Commit b7f5b4fe authored by 赵啸非's avatar 赵啸非

添加批量新增窗口业务接口

parent af099e2b
package com.mortals.xhx.common.utils;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.site.service.SiteService;
import lombok.AllArgsConstructor;
/**
* @author: zxfei
* @date: 2022/4/13 13:34
* @description:
**/
@AllArgsConstructor
public class SyncTreeSiteThread implements Runnable {
private SiteService siteService;
private Context context;
@Override
public void run() {
siteService.setSiteTree(siteService.siteTree(context), context);
}
}
package com.mortals.xhx.daemon.applicationservice;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.springcloud.config.web.BaseWebMvcConfigurer;
import com.mortals.xhx.module.site.model.SiteTreeSelect;
import com.mortals.xhx.module.site.service.SiteService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -9,24 +12,33 @@ import org.springframework.stereotype.Component;
import com.mortals.framework.springcloud.service.IApplicationStartedService;
import java.util.List;
/**
* 应用级服务,在应用启动后、停止过程中调用
* 应用已经完成启动完成,才调用该服务
* 应用场景:
* 1、应用任务,应用启动后定时或间隔执行的任务
* 2、Socket服务端
* @author GM
* @date 2020年7月15日
*
* @author GM
* @date 2020年7月15日
*/
@Component
//@ConditionalOnProperty(name="com.mortal",prefix = "",havingValue = "xxx")
public class DemoStartedService implements IApplicationStartedService {
private static Log logger = LogFactory.getLog(DemoStartedService.class);
@Autowired
private SiteService siteService;
@Autowired
private ICacheService cacheService;
@Override
public void start() {
logger.info("开始服务..[配置已加载完成,并且所有框架都已经初始化]");
List<SiteTreeSelect> siteTreeSelects = siteService.siteTree(null);
siteService.setSiteTree(siteTreeSelects, null);
}
......
......@@ -28,4 +28,9 @@ public interface SiteService extends ICRUDService<SiteEntity, Long> {
*/
List<SiteTreeSelect> siteTree(Context context);
List<SiteTreeSelect> getSiteTree(Context context);
void setSiteTree(List<SiteTreeSelect> list, Context context);
}
\ No newline at end of file
......@@ -5,12 +5,14 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.SyncTreeSiteThread;
import com.mortals.xhx.module.area.model.AreaEntity;
import com.mortals.xhx.module.area.model.AreaQuery;
import com.mortals.xhx.module.area.model.AreaTreeSelect;
import com.mortals.xhx.module.area.service.AreaService;
import com.mortals.xhx.module.site.model.SiteQuery;
import com.mortals.xhx.module.site.model.SiteTreeSelect;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
......@@ -34,6 +36,9 @@ import java.util.stream.Collectors;
*/
@Service("siteService")
public class SiteServiceImpl extends AbstractCRUDServiceImpl<SiteDao, SiteEntity, Long> implements SiteService {
private List<SiteTreeSelect> siteTreeList;
@Autowired
private AreaService areaService;
......@@ -52,7 +57,7 @@ public class SiteServiceImpl extends AbstractCRUDServiceImpl<SiteDao, SiteEntity
@Override
protected void saveBefore(SiteEntity entity, Context context) throws AppException {
List<SiteEntity> siteEntities = this.find(new SiteQuery().areaCode(entity.getAreaCode()));
entity.setSiteCode(entity.getAreaCode() + Constant.SITE_SPLIT_MARK + StringUtils.lpad(siteEntities.size() + 1,Constant.SITE_CODE_NUM));
entity.setSiteCode(entity.getAreaCode() + Constant.SITE_SPLIT_MARK + StringUtils.lpad(siteEntities.size() + 1, Constant.SITE_CODE_NUM));
super.saveBefore(entity, context);
}
......@@ -76,6 +81,16 @@ public class SiteServiceImpl extends AbstractCRUDServiceImpl<SiteDao, SiteEntity
return buildSiteTreeSelect(areaMap, siteMap);
}
@Override
public List<SiteTreeSelect> getSiteTree(Context context) {
return siteTreeList;
}
@Override
public void setSiteTree(List<SiteTreeSelect> list, Context context) {
this.siteTreeList = list;
}
public List<SiteTreeSelect> buildSiteTreeSelect(Map<String, AreaEntity> areaMap, Map<String, SiteEntity> siteMap) {
List<AreaEntity> list = areaMap.values().stream().collect(Collectors.toList());
List<AreaEntity> returnList = new ArrayList<>();
......@@ -91,9 +106,11 @@ public class SiteServiceImpl extends AbstractCRUDServiceImpl<SiteDao, SiteEntity
returnList = list;
}
return returnList.stream().map(item ->
List<SiteTreeSelect> collect = returnList.stream().map(item ->
new SiteTreeSelect(item, siteMap)
).collect(Collectors.toList());
this.siteTreeList = collect;
return collect;
}
......@@ -134,4 +151,18 @@ public class SiteServiceImpl extends AbstractCRUDServiceImpl<SiteDao, SiteEntity
recursionFn(areaMap, areaEntity);
}
}
@Override
protected void saveAfter(SiteEntity entity, Context context) throws AppException {
//刷新站点树
new Thread(new SyncTreeSiteThread(this,context)).start();
super.saveAfter(entity, context);
}
@Override
protected void removeBefore(Long[] ids, Context context) throws AppException {
new Thread(new SyncTreeSiteThread(this,context)).start();
super.removeBefore(ids, context);
}
}
\ No newline at end of file
......@@ -67,7 +67,10 @@ public class SiteController extends BasePhpCRUDJsonMappingController<SiteService
Map<String, Object> model = new HashMap<>();
String busiDesc = this.getModuleDesc() + "构建站点树";
try {
List<SiteTreeSelect> siteTree = this.service.siteTree(getContext());
List<SiteTreeSelect> siteTree = this.service.getSiteTree(getContext());
if (ObjectUtils.isEmpty(siteTree)) {
siteTree = this.service.siteTree(getContext());
}
model.put("siteTree", siteTree);
this.init(model, getContext());
recordSysLog(request, busiDesc + " 【成功】");
......
package com.mortals.xhx.module.window.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.window.model.WindowBusinessEntity;
import com.mortals.xhx.module.window.model.WindowEntity;
import com.mortals.xhx.module.window.model.WindowMatterEntity;
import com.mortals.xhx.module.workman.model.WorkmanEntity;
import lombok.Data;
......@@ -18,4 +20,8 @@ public class WindowVo extends BaseEntityLong {
private List<WorkmanEntity> workmanList;
private List<WindowBusinessEntity> windowBusinessList;
private List<WindowMatterEntity> windowMatterList;
}
\ No newline at end of file
......@@ -11,9 +11,9 @@ import com.mortals.xhx.module.site.model.SiteBusinessEntity;
import com.mortals.xhx.module.site.model.SiteBusinessQuery;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.service.SiteBusinessService;
import com.mortals.xhx.module.window.model.WindowBusinessEntity;
import com.mortals.xhx.module.window.model.WindowBusinessQuery;
import com.mortals.xhx.module.window.model.*;
import com.mortals.xhx.module.window.service.WindowBusinessService;
import com.mortals.xhx.module.window.service.WindowMatterService;
import com.mortals.xhx.module.workman.model.WorkmanEntity;
import com.mortals.xhx.module.workman.model.WorkmanQuery;
import com.mortals.xhx.module.workman.service.WorkmanService;
......@@ -22,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.window.dao.WindowDao;
import com.mortals.xhx.module.window.model.WindowEntity;
import com.mortals.xhx.module.window.service.WindowService;
import org.springframework.util.ObjectUtils;
......@@ -47,17 +46,34 @@ public class WindowServiceImpl extends AbstractCRUDServiceImpl<WindowDao, Window
@Autowired
private WindowBusinessService windowBusinessService;
@Autowired
private WindowMatterService windowMatterService;
@Autowired
private BusinessService businessService;
@Override
protected void findAfter(WindowEntity params, PageInfo pageInfo, Context context, List<WindowEntity> list) throws AppException {
Map<Long, List<WorkmanEntity>> collect = workmanService.find(new WorkmanQuery()).stream().filter(f->f.getWindowId()!=null).collect(Collectors.groupingBy(x -> x.getWindowId()));
Map<Long, List<WorkmanEntity>> workmanCollect = workmanService.find(new WorkmanQuery()).stream().filter(f->f.getWindowId()!=null).collect(Collectors.groupingBy(x -> x.getWindowId()));
Map<Long, List<WindowBusinessEntity>> windowBusinessCollect = windowBusinessService.find(new WindowBusinessQuery())
.stream().filter(f -> f.getWindowId() != null).collect(Collectors.groupingBy(x -> x.getWindowId()));
Map<Long, List<WindowMatterEntity>> windowMatterCollect = windowMatterService.find(new WindowMatterQuery())
.stream().filter(f -> f.getWindowId() != null).collect(Collectors.groupingBy(x -> x.getWindowId()));
list.stream().peek(item -> {
if (!ObjectUtils.isEmpty(collect.get(item.getId()))) {
item.setWorkmanList(collect.get(item.getId()));
if (!ObjectUtils.isEmpty(workmanCollect.get(item.getId()))) {
item.setWorkmanList(workmanCollect.get(item.getId()));
}
if (!ObjectUtils.isEmpty(windowBusinessCollect.get(item.getId()))) {
item.setWindowBusinessList(windowBusinessCollect.get(item.getId()));
}
if (!ObjectUtils.isEmpty(windowMatterCollect.get(item.getId()))) {
item.setWindowMatterList(windowMatterCollect.get(item.getId()));
}
}).count();
super.findAfter(params, pageInfo, context, list);
}
......
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