|
|
@ -1,48 +1,92 @@
|
|
|
|
package com.baiye.modules.distribute.service.impl;
|
|
|
|
package com.baiye.modules.distribute.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.text.StrPool;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import com.baiye.domain.PageParam;
|
|
|
|
import com.baiye.domain.PageParam;
|
|
|
|
import com.baiye.domain.PageResult;
|
|
|
|
import com.baiye.domain.PageResult;
|
|
|
|
|
|
|
|
import com.baiye.enums.ClueSourceEnum;
|
|
|
|
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
|
|
|
|
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
|
|
|
|
import com.baiye.modules.distribute.converter.CustomConverter;
|
|
|
|
import com.baiye.modules.distribute.converter.CustomConverter;
|
|
|
|
|
|
|
|
import com.baiye.modules.distribute.dto.ChangeCustomDTO;
|
|
|
|
|
|
|
|
import com.baiye.modules.distribute.dto.ClueDTO;
|
|
|
|
import com.baiye.modules.distribute.dto.CustomDTO;
|
|
|
|
import com.baiye.modules.distribute.dto.CustomDTO;
|
|
|
|
import com.baiye.modules.distribute.entity.CustomEntity;
|
|
|
|
import com.baiye.modules.distribute.entity.CustomEntity;
|
|
|
|
import com.baiye.modules.distribute.entity.CustomStoreEntity;
|
|
|
|
import com.baiye.modules.distribute.entity.CustomStoreEntity;
|
|
|
|
import com.baiye.modules.distribute.mapper.CustomMapper;
|
|
|
|
import com.baiye.modules.distribute.mapper.CustomMapper;
|
|
|
|
import com.baiye.modules.distribute.mapper.CustomStoreMapper;
|
|
|
|
import com.baiye.modules.distribute.mapper.CustomStoreMapper;
|
|
|
|
import com.baiye.modules.distribute.qo.CustomQo;
|
|
|
|
import com.baiye.modules.distribute.qo.CustomQo;
|
|
|
|
|
|
|
|
import com.baiye.modules.distribute.service.ClueService;
|
|
|
|
import com.baiye.modules.distribute.service.CustomService;
|
|
|
|
import com.baiye.modules.distribute.service.CustomService;
|
|
|
|
import com.baiye.modules.distribute.service.CustomStoreService;
|
|
|
|
import com.baiye.modules.distribute.service.CustomStoreService;
|
|
|
|
|
|
|
|
import com.baiye.modules.distribute.vo.AddressDTO;
|
|
|
|
|
|
|
|
import com.baiye.modules.distribute.vo.CustomStoreVO;
|
|
|
|
import com.baiye.modules.distribute.vo.CustomVO;
|
|
|
|
import com.baiye.modules.distribute.vo.CustomVO;
|
|
|
|
|
|
|
|
import com.baiye.security.userdetails.User;
|
|
|
|
|
|
|
|
import com.baiye.security.util.SecurityUtils;
|
|
|
|
|
|
|
|
import com.baiye.system.constant.DateConst;
|
|
|
|
|
|
|
|
import com.baiye.system.constant.LetterConst;
|
|
|
|
|
|
|
|
import com.baiye.util.AESUtils;
|
|
|
|
|
|
|
|
import com.baiye.utils.SerialCode;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
|
|
|
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
|
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
import org.ballcat.security.properties.SecurityProperties;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @author Enzo
|
|
|
|
|
|
|
|
* @date
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEntity> implements CustomService {
|
|
|
|
public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEntity> implements CustomService {
|
|
|
|
|
|
|
|
|
|
|
|
private final CustomStoreService customStoreService;
|
|
|
|
private final CustomStoreService customStoreService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final SecurityProperties securityProperties;
|
|
|
|
|
|
|
|
|
|
|
|
private final CustomStoreMapper customStoreMapper;
|
|
|
|
private final CustomStoreMapper customStoreMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final ClueService clueService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public PageResult<CustomVO> queryPage(PageParam pageParam, CustomQo qo) {
|
|
|
|
public PageResult<CustomVO> queryPage(PageParam pageParam, CustomQo qo) {
|
|
|
|
|
|
|
|
|
|
|
|
return baseMapper.queryPage(pageParam, qo);
|
|
|
|
return baseMapper.queryPage(pageParam, qo);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public boolean add(CustomDTO customDTO) {
|
|
|
|
public boolean add(CustomDTO customDTO) {
|
|
|
|
|
|
|
|
User user = SecurityUtils.getUser();
|
|
|
|
|
|
|
|
Long companyId = user.getWhichUserId();
|
|
|
|
CustomEntity customEntity = CustomConverter.INSTANCE.dtoToPo(customDTO);
|
|
|
|
CustomEntity customEntity = CustomConverter.INSTANCE.dtoToPo(customDTO);
|
|
|
|
|
|
|
|
String code = LetterConst.D.concat(StrPool.DASHED.concat(DateUtil.format(DateUtil.date(), DateConst.YYYY_MM_DD)));
|
|
|
|
|
|
|
|
String maxCode = baseMapper.selectMaxBatchNoByCompanyId(code, companyId);
|
|
|
|
|
|
|
|
// 拼接编号
|
|
|
|
|
|
|
|
String newCode = StringUtils.isNotBlank(maxCode) ?
|
|
|
|
|
|
|
|
code.concat(SerialCode.getNum(Integer.parseInt
|
|
|
|
|
|
|
|
(maxCode.substring(10)))) : code.concat(LetterConst.ONE);
|
|
|
|
|
|
|
|
customEntity.setType(2);
|
|
|
|
|
|
|
|
customEntity.setBatchNo(newCode);
|
|
|
|
|
|
|
|
customEntity.setCompanyId(companyId);
|
|
|
|
int insert = baseMapper.insert(customEntity);
|
|
|
|
int insert = baseMapper.insert(customEntity);
|
|
|
|
|
|
|
|
customEntity.setEnterName(user.getUsername());
|
|
|
|
List<CustomStoreEntity> customStoreEntities = customDTO.getCustomStoreEntities();
|
|
|
|
List<CustomStoreEntity> customStoreEntities = customDTO.getCustomStoreEntities();
|
|
|
|
customStoreEntities.forEach(c -> c.setCustomId(customEntity.getCustomId()));
|
|
|
|
customStoreEntities.forEach(c -> c.setCustomId(customEntity.getCustomId()));
|
|
|
|
customStoreService.saveBatch(customStoreEntities);
|
|
|
|
customStoreService.saveBatch(customStoreEntities);
|
|
|
@ -86,17 +130,57 @@ public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEnt
|
|
|
|
CustomVO customVO = new CustomVO();
|
|
|
|
CustomVO customVO = new CustomVO();
|
|
|
|
CustomEntity customEntity = baseMapper.selectById(id);
|
|
|
|
CustomEntity customEntity = baseMapper.selectById(id);
|
|
|
|
BeanUtils.copyProperties(customEntity, customVO);
|
|
|
|
BeanUtils.copyProperties(customEntity, customVO);
|
|
|
|
// TODO 详情查询门店信息
|
|
|
|
List<CustomStoreVO> customStoreVOList = new ArrayList<>();
|
|
|
|
// List<CustomStoreVO> customStoreVOList = new ArrayList<>();
|
|
|
|
List<CustomStoreEntity> customStores = customStoreService.selectListByCustomId(id);
|
|
|
|
// List<CustomStoreEntity> customStores = customStoreMapper.selectList(new LambdaQueryWrapper<CustomStoreEntity>().eq(CustomStoreEntity::getCustomId, id));
|
|
|
|
if (CollUtil.isNotEmpty(customStores)) {
|
|
|
|
// if (CollUtil.isNotEmpty(customStores)){
|
|
|
|
for (CustomStoreEntity customStore : customStores) {
|
|
|
|
// for (CustomStoreEntity customStore : customStores) {
|
|
|
|
CustomStoreVO customStoreVO = new CustomStoreVO();
|
|
|
|
// CustomStoreVO customStoreVO = new CustomStoreVO();
|
|
|
|
BeanUtils.copyProperties(customStore, customStoreVO);
|
|
|
|
// BeanUtils.copyProperties(customStore, customStoreVO);
|
|
|
|
customStoreVOList.add(customStoreVO);
|
|
|
|
// customStoreVOList.add(customStoreVO);
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
customVO.setCustomStoreVOList(customStoreVOList);
|
|
|
|
// customVO.setCustomStoreVOList(customStoreVOList);
|
|
|
|
|
|
|
|
return customVO;
|
|
|
|
return customVO;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
|
|
|
public Boolean deleteApprovalFormById(Long id) {
|
|
|
|
|
|
|
|
Boolean result = customStoreService.deleteByCustomId(id);
|
|
|
|
|
|
|
|
log.info("========================= delete result as {} =========================", result);
|
|
|
|
|
|
|
|
return SqlHelper.retBool(baseMapper.deleteById(id));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public Boolean auditFormById(ChangeCustomDTO dto) {
|
|
|
|
|
|
|
|
Long id = dto.getCustomId();
|
|
|
|
|
|
|
|
Integer status = dto.getStatus();
|
|
|
|
|
|
|
|
CustomEntity customEntity = baseMapper.selectById(id);
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotNull(customEntity)) {
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotNull(status) && status == 0) {
|
|
|
|
|
|
|
|
customEntity.setType(3);
|
|
|
|
|
|
|
|
return SqlHelper.retBool(baseMapper.updateById(customEntity));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Gson gson = new Gson();
|
|
|
|
|
|
|
|
AddressDTO address = new AddressDTO();
|
|
|
|
|
|
|
|
List<ClueDTO> list = Lists.newArrayList();
|
|
|
|
|
|
|
|
BeanUtils.copyProperties(customEntity, address);
|
|
|
|
|
|
|
|
String otherClue = gson.toJson(address);
|
|
|
|
|
|
|
|
List<CustomStoreEntity> customStores = customStoreService.selectListByCustomId(id);
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(customStores)) {
|
|
|
|
|
|
|
|
for (CustomStoreEntity store : customStores) {
|
|
|
|
|
|
|
|
ClueDTO clueDTO = ClueDTO.builder().originName(ClueSourceEnum.STORE_DISTRIBUTION.getDescription()).nid
|
|
|
|
|
|
|
|
(AESUtils.encrypt(customEntity.getCustomNid(), securityProperties.getPasswordSecretKey())).assignedBy
|
|
|
|
|
|
|
|
(store.getStoreId()).createBy(customEntity.getCompanyId()).assignedName(store.getStoreName()).otherClue(otherClue).build();
|
|
|
|
|
|
|
|
list.add(clueDTO);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
clueService.saveClueListByStoreInfo(list);
|
|
|
|
|
|
|
|
customEntity.setEnrollStatus(2);
|
|
|
|
|
|
|
|
return SqlHelper.retBool(baseMapper.updateById(customEntity));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return Boolean.FALSE;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|