|
@@ -1,20 +1,16 @@
|
|
|
package com.benyun.core.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.benyun.core.dao.AddrCategoryDao;
|
|
|
-import com.benyun.core.dao.CategoryMapper;
|
|
|
-import com.benyun.core.dao.TypeByDao;
|
|
|
-import com.benyun.core.dao.WdInfoMapper;
|
|
|
-import com.benyun.core.entity.AddrCategory;
|
|
|
-import com.benyun.core.entity.Category;
|
|
|
-import com.benyun.core.entity.TypeBy;
|
|
|
-import com.benyun.core.entity.WdInfo;
|
|
|
+import com.benyun.core.dao.*;
|
|
|
+import com.benyun.core.entity.*;
|
|
|
import com.benyun.core.entity.bo.WdAddrTypeDistribution;
|
|
|
import com.benyun.core.entity.vo.AddStatusVo;
|
|
|
import com.benyun.core.entity.vo.TypeByBody;
|
|
|
import com.benyun.core.entity.vo.WdInfoVo;
|
|
|
+import com.benyun.core.entity.vo.WdOpcloseVo;
|
|
|
import com.benyun.core.service.CategoryService;
|
|
|
import com.benyun.core.service.WdInfoService;
|
|
|
+import com.benyun.core.utils.CategoryUtil;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -33,131 +29,16 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class WdInfoServiceImpl implements WdInfoService {
|
|
|
- public Map<String,String> typeMap;
|
|
|
- public Map<String,List<String>> typeChildren = new HashMap<>();
|
|
|
-
|
|
|
- public Map<String,String> addrMap;
|
|
|
- public Map<String,List<String>> addrChildren = new HashMap<>();
|
|
|
-
|
|
|
- public Map<String,String> wdTypeMap;
|
|
|
@Autowired
|
|
|
- WdInfoMapper wdInfoMapper;
|
|
|
+ CategoryUtil categoryUtil;
|
|
|
@Autowired
|
|
|
- TypeByDao byDao;
|
|
|
+ WdInfoMapper wdInfoMapper;
|
|
|
@Autowired
|
|
|
- AddrCategoryDao addrCategoryDao;
|
|
|
-
|
|
|
- public void setTypeMap(){
|
|
|
- if (typeMap == null){
|
|
|
- typeMap = new HashMap<>();
|
|
|
- QueryWrapper<TypeBy> queryWrapper = new QueryWrapper<>();
|
|
|
- List<TypeBy> typeByList = byDao.selectList(queryWrapper);
|
|
|
- for (TypeBy by : typeByList){
|
|
|
- if (!by.getSubCategory().equals(""))
|
|
|
- typeMap.put(by.getTypeCodeBy(),by.getSubCategory());
|
|
|
- else if (!by.getMidCategory().equals(""))
|
|
|
- typeMap.put(by.getTypeCodeBy(),by.getMidCategory());
|
|
|
- else
|
|
|
- typeMap.put(by.getTypeCodeBy(),by.getBigCategory());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- public void setAddrMap(){
|
|
|
- if (addrMap == null){
|
|
|
- addrMap = new HashMap<>();
|
|
|
- QueryWrapper<AddrCategory> queryWrapper = new QueryWrapper<>();
|
|
|
- List<AddrCategory> addrCategories = addrCategoryDao.selectList(queryWrapper);
|
|
|
- for (AddrCategory addr : addrCategories){
|
|
|
- if (!addr.getDistrict().equals(""))
|
|
|
- addrMap.put(addr.getAddrCode(),addr.getDistrict());
|
|
|
- else if (!addr.getCity().equals(""))
|
|
|
- addrMap.put(addr.getAddrCode(),addr.getCity());
|
|
|
- else
|
|
|
- addrMap.put(addr.getAddrCode(),addr.getProvince());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- public void setWdTypeMap(){
|
|
|
- if (wdTypeMap == null){
|
|
|
- wdTypeMap = new HashMap<>();
|
|
|
- wdTypeMap.put("0","基础设施网点");
|
|
|
- wdTypeMap.put("1","门店网点");
|
|
|
- wdTypeMap.put("2","小区网点");
|
|
|
- wdTypeMap.put("3","楼宇网点");
|
|
|
- wdTypeMap.put("4","交通设施网点");
|
|
|
- wdTypeMap.put("5","公司网点");
|
|
|
- }
|
|
|
- }
|
|
|
- public List<String> getAllOtherAddrCode(String addrCode){
|
|
|
- if (addrChildren.get(addrCode) != null){
|
|
|
-// System.out.println("quickly");
|
|
|
- return addrChildren.get(addrCode);
|
|
|
- }
|
|
|
- List<String> addrCodes = new ArrayList<>();
|
|
|
- String big = String.valueOf(addrCode.charAt(0))+String.valueOf(addrCode.charAt(1));
|
|
|
- String mid = String.valueOf(addrCode.charAt(2))+String.valueOf(addrCode.charAt(3));
|
|
|
- String sub = String.valueOf(addrCode.charAt(4))+String.valueOf(addrCode.charAt(5));
|
|
|
- if (sub.equals("00")){
|
|
|
- QueryWrapper<AddrCategory> queryWrapper = new QueryWrapper<>();
|
|
|
- if (mid.equals("00")){
|
|
|
- queryWrapper.likeRight("addr_code",big).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("city","");
|
|
|
- }).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("district","");
|
|
|
- });
|
|
|
- }else{
|
|
|
- queryWrapper.likeRight("addr_code",big+mid).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("city","");
|
|
|
- }).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("district","");
|
|
|
- });
|
|
|
- }
|
|
|
- List<AddrCategory> zones = addrCategoryDao.selectList(queryWrapper);
|
|
|
- for (AddrCategory zone : zones){
|
|
|
- addrCodes.add(zone.getAddrCode());
|
|
|
- }
|
|
|
- addrChildren.put(addrCode,addrCodes);
|
|
|
- }else
|
|
|
- addrCodes.add(addrCode);
|
|
|
- return addrCodes;
|
|
|
- }
|
|
|
- public List<String> getAllOtherTypeBy(String typeCode){
|
|
|
- if (typeChildren.get(typeCode) != null){
|
|
|
-// System.out.println("quickly");
|
|
|
- return typeChildren.get(typeCode);
|
|
|
- }
|
|
|
- List<String> types = new ArrayList<>();
|
|
|
- String big = String.valueOf(typeCode.charAt(0)) + String.valueOf(typeCode.charAt(1));
|
|
|
- String mid = String.valueOf(typeCode.charAt(2)) + String.valueOf(typeCode.charAt(3));
|
|
|
- String sub = String.valueOf(typeCode.charAt(4)) + String.valueOf(typeCode.charAt(5));
|
|
|
- if (sub.equals("00")){
|
|
|
- QueryWrapper<TypeBy> queryWrapper = new QueryWrapper<>();
|
|
|
- if (mid.equals("00")){
|
|
|
- queryWrapper.likeRight("type_code_by",big).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("mid_category","");
|
|
|
- }).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("sub_category","");
|
|
|
- });
|
|
|
- }else{
|
|
|
- queryWrapper.likeRight("type_code_by",big+mid).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("mid_category","");
|
|
|
- }).and(addrCategoryQueryWrapper -> {
|
|
|
- addrCategoryQueryWrapper.ne("sub_category","");
|
|
|
- });
|
|
|
- }
|
|
|
- List<TypeBy> typeByList = byDao.selectList(queryWrapper);
|
|
|
- for (TypeBy typeBy : typeByList){
|
|
|
- types.add(typeBy.getTypeCodeBy());
|
|
|
- }
|
|
|
- typeChildren.put(typeCode,types);
|
|
|
- }else
|
|
|
- types.add(typeCode);
|
|
|
- return types;
|
|
|
- }
|
|
|
+ WdOpcloseDao wdOpcloseDao;
|
|
|
|
|
|
@Override
|
|
|
public List<AddStatusVo> searchAddStatus(List<String> addrCodes, List<String> typeCodes) {
|
|
|
- setWdTypeMap();
|
|
|
+ categoryUtil.setWdTypeMap();
|
|
|
List<String> addrs = new ArrayList<>();
|
|
|
List<String> times = new ArrayList<>();
|
|
|
for (int i = 0; i < 12; i++){
|
|
@@ -165,7 +46,7 @@ public class WdInfoServiceImpl implements WdInfoService {
|
|
|
}
|
|
|
if (addrCodes != null){
|
|
|
for (String s : addrCodes){
|
|
|
- List<String> allOtherAddrCode = getAllOtherAddrCode(s);
|
|
|
+ List<String> allOtherAddrCode = categoryUtil.getAllOtherAddrCode(s);
|
|
|
addrs.addAll(allOtherAddrCode);
|
|
|
}
|
|
|
}else{
|
|
@@ -173,11 +54,30 @@ public class WdInfoServiceImpl implements WdInfoService {
|
|
|
}
|
|
|
List<AddStatusVo> addStatusVos = wdInfoMapper.searchAddStatusByMulti(times, addrs, typeCodes);
|
|
|
for (AddStatusVo vo : addStatusVos){
|
|
|
- vo.setTypeName(wdTypeMap.get(vo.getTypeCode()));
|
|
|
+ vo.setTypeName(categoryUtil.wdTypeMap.get(vo.getTypeCode()));
|
|
|
}
|
|
|
return addStatusVos;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<WdOpcloseVo> searchWdOpcloses(List<String> addrCodes, List<String> wdTypeCodes) {
|
|
|
+ categoryUtil.setAddrMap();
|
|
|
+
|
|
|
+ List<WdOpcloseVo> vos = new ArrayList<>();
|
|
|
+ if (addrCodes != null){
|
|
|
+ for (String s : addrCodes){
|
|
|
+ WdOpclose opclose = wdOpcloseDao.selectListByAddrCodeAndWdTypeCodes(categoryUtil.whatis(s), wdTypeCodes, LocalDateTime.now().plusMonths(-1));
|
|
|
+ if (opclose != null){
|
|
|
+ WdOpcloseVo vo = new WdOpcloseVo(s,opclose);
|
|
|
+ vo.setAddrName(categoryUtil.addrMap.get(s));
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
// @Override
|
|
|
// public List<WdAddrTypeDistribution> searchAddrTypeDistribution(List<String> addrCodes, List<String> typeCodes) {
|
|
|
// List<String> acodes = new ArrayList<>();
|