fix:结算明细修正入账公司名称
This commit is contained in:
parent
e3edec5888
commit
ebf483e884
|
@ -7,9 +7,14 @@ import com.chint.application.dtos.OrderRecordQueryDTO;
|
||||||
import com.chint.application.dtos.mapper.OrderDetailMapper;
|
import com.chint.application.dtos.mapper.OrderDetailMapper;
|
||||||
import com.chint.application.dtos.response.OrderDetailRes;
|
import com.chint.application.dtos.response.OrderDetailRes;
|
||||||
import com.chint.domain.aggregates.order.*;
|
import com.chint.domain.aggregates.order.*;
|
||||||
|
import com.chint.domain.aggregates.order.order_record.OrderCarRecord;
|
||||||
|
import com.chint.domain.aggregates.order.order_record.OrderFlightRecord;
|
||||||
|
import com.chint.domain.aggregates.order.order_record.OrderHotelRecord;
|
||||||
|
import com.chint.domain.aggregates.order.order_record.OrderTrainRecord;
|
||||||
import com.chint.domain.aggregates.user.User;
|
import com.chint.domain.aggregates.user.User;
|
||||||
import com.chint.domain.exceptions.NotFoundException;
|
import com.chint.domain.exceptions.NotFoundException;
|
||||||
import com.chint.domain.repository.*;
|
import com.chint.domain.repository.*;
|
||||||
|
import com.chint.domain.service.SystemDomainService;
|
||||||
import com.chint.infrastructure.util.BaseContext;
|
import com.chint.infrastructure.util.BaseContext;
|
||||||
import com.chint.infrastructure.util.PageResult;
|
import com.chint.infrastructure.util.PageResult;
|
||||||
import com.chint.infrastructure.util.Result;
|
import com.chint.infrastructure.util.Result;
|
||||||
|
@ -41,6 +46,9 @@ public class OrderDetailQuery {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RouteRepository routeRepository;
|
private RouteRepository routeRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SystemDomainService systemDomainService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderCarRecordRepository orderCarRecordRepository;
|
private OrderCarRecordRepository orderCarRecordRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -55,14 +63,45 @@ public class OrderDetailQuery {
|
||||||
Integer productType = orderRecordQueryDTO.getProductType();
|
Integer productType = orderRecordQueryDTO.getProductType();
|
||||||
//只获取账期号为上个月的结算数据
|
//只获取账期号为上个月的结算数据
|
||||||
return switch (productType) {
|
return switch (productType) {
|
||||||
case 1 -> orderFlightRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
case 1 -> handlerFlightRecordData(orderRecordQueryDTO);
|
||||||
case 2 -> orderHotelRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
case 2 -> handlerHotelRecordData(orderRecordQueryDTO);
|
||||||
case 3 -> orderTrainRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
case 3 -> handlerTrainRecordData(orderRecordQueryDTO);
|
||||||
case 4 -> orderCarRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
case 4 -> handlerCarRecordData(orderRecordQueryDTO);
|
||||||
default -> throw new NotFoundException("错误产品类型");
|
default -> throw new NotFoundException("错误产品类型");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PageResult<OrderFlightRecord> handlerFlightRecordData(OrderRecordQueryDTO orderRecordQueryDTO){
|
||||||
|
PageResult<OrderFlightRecord> byRecordParam = orderFlightRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
||||||
|
byRecordParam.getRecords().forEach(it-> systemDomainService
|
||||||
|
.companyNameByAccountId(it.getAccountCompanyId())
|
||||||
|
.ifPresentOrElse(it::setAccountCompanyName,()->it.setAccountCompanyName(it.getAccountCompanyName())));
|
||||||
|
return byRecordParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageResult<OrderHotelRecord> handlerHotelRecordData(OrderRecordQueryDTO orderRecordQueryDTO){
|
||||||
|
PageResult<OrderHotelRecord> byRecordParam = orderHotelRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
||||||
|
byRecordParam.getRecords().forEach(it-> systemDomainService
|
||||||
|
.companyNameByAccountId(it.getAccountCompanyId())
|
||||||
|
.ifPresentOrElse(it::setAccountCompanyName,()->it.setAccountCompanyName(it.getAccountCompanyName())));
|
||||||
|
return byRecordParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageResult<OrderTrainRecord> handlerTrainRecordData(OrderRecordQueryDTO orderRecordQueryDTO){
|
||||||
|
PageResult<OrderTrainRecord> byRecordParam = orderTrainRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
||||||
|
byRecordParam.getRecords().forEach(it-> systemDomainService
|
||||||
|
.companyNameByAccountId(it.getAccountCompanyId())
|
||||||
|
.ifPresentOrElse(it::setAccountCompanyName,()->it.setAccountCompanyName(it.getAccountCompanyName())));
|
||||||
|
return byRecordParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageResult<OrderCarRecord> handlerCarRecordData(OrderRecordQueryDTO orderRecordQueryDTO){
|
||||||
|
PageResult<OrderCarRecord> byRecordParam = orderCarRecordRepository.findByRecordParam(orderRecordQueryDTO);
|
||||||
|
byRecordParam.getRecords().forEach(it-> systemDomainService
|
||||||
|
.companyNameByAccountId(it.getAccountCompanyId())
|
||||||
|
.ifPresentOrElse(it::setAccountCompanyName,()->it.setAccountCompanyName(it.getAccountCompanyName())));
|
||||||
|
return byRecordParam;
|
||||||
|
}
|
||||||
|
|
||||||
public Result<PageResult<Object>> orderDetailInfoPageQuery(AuthenticationSignDto authenticationDto) {
|
public Result<PageResult<Object>> orderDetailInfoPageQuery(AuthenticationSignDto authenticationDto) {
|
||||||
Integer productType = authenticationDto.getProductType();
|
Integer productType = authenticationDto.getProductType();
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.chint.domain.aggregates.system;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.data.relational.core.mapping.Table;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Table("system_account_company")
|
||||||
|
public class AccountCompany implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1256889067306431230L;
|
||||||
|
private Long id ;
|
||||||
|
private String accountId;
|
||||||
|
private String companyName;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.chint.domain.repository;
|
||||||
|
|
||||||
|
import com.chint.domain.aggregates.system.AccountCompany;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface AccountCompanyRepository {
|
||||||
|
List<AccountCompany> findAll();
|
||||||
|
}
|
|
@ -1,11 +1,16 @@
|
||||||
package com.chint.domain.service;
|
package com.chint.domain.service;
|
||||||
|
|
||||||
|
import com.chint.domain.aggregates.system.AccountCompany;
|
||||||
import com.chint.domain.aggregates.system.SystemCode;
|
import com.chint.domain.aggregates.system.SystemCode;
|
||||||
import com.chint.domain.exceptions.NotFoundException;
|
import com.chint.domain.exceptions.NotFoundException;
|
||||||
|
import com.chint.domain.repository.AccountCompanyRepository;
|
||||||
import com.chint.domain.repository.SystemCodeRepository;
|
import com.chint.domain.repository.SystemCodeRepository;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
import static com.chint.infrastructure.constant.DataMessageConstant.SYS_CODE_ERROR;
|
import static com.chint.infrastructure.constant.DataMessageConstant.SYS_CODE_ERROR;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -14,6 +19,9 @@ public class SystemDomainService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SystemCodeRepository systemCodeRepository;
|
private SystemCodeRepository systemCodeRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AccountCompanyRepository accountCompanyRepository;
|
||||||
|
|
||||||
public boolean checkSystemCode(String sysCode) {
|
public boolean checkSystemCode(String sysCode) {
|
||||||
boolean b = systemCodeRepository.findBySysCode(sysCode) != null;
|
boolean b = systemCodeRepository.findBySysCode(sysCode) != null;
|
||||||
if (!b) {
|
if (!b) {
|
||||||
|
@ -30,4 +38,12 @@ public class SystemDomainService {
|
||||||
}
|
}
|
||||||
return bySysCode.getIfImmediateResponse() == 1;
|
return bySysCode.getIfImmediateResponse() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<String> companyNameByAccountId(String accountId) {
|
||||||
|
List<AccountCompany> all = accountCompanyRepository.findAll();
|
||||||
|
return all.stream()
|
||||||
|
.filter(it->it.getAccountId().equals(accountId))
|
||||||
|
.map(AccountCompany::getCompanyName)
|
||||||
|
.findFirst();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.chint.infrastructure.export;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||||
|
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
|
||||||
|
import com.alibaba.excel.annotation.write.style.HeadStyle;
|
||||||
|
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@HeadStyle(fillPatternType = FillPatternTypeEnum.NO_FILL) // 设置表头背景为无色
|
||||||
|
@HeadFontStyle(fontHeightInPoints = 10)
|
||||||
|
@ColumnWidth(16)
|
||||||
|
public class OrderDetailExport {
|
||||||
|
@ExcelProperty("公司ID")
|
||||||
|
private String companyId;
|
||||||
|
@ExcelProperty("公司名称")
|
||||||
|
private String companyName;
|
||||||
|
@ExcelProperty("预订人ID")
|
||||||
|
private String employeeNo;
|
||||||
|
@ExcelProperty("预订人姓名")
|
||||||
|
private String employeeName;
|
||||||
|
@ExcelProperty("预订人部门")
|
||||||
|
private String employeeDepartment;
|
||||||
|
@ExcelProperty("订单号")
|
||||||
|
private String orderNo;
|
||||||
|
@ExcelProperty("来源(携程或者同程)")
|
||||||
|
private String supplierName;
|
||||||
|
@ExcelProperty("订单状态")
|
||||||
|
private String orderStatus;
|
||||||
|
@ExcelProperty("产品类型")
|
||||||
|
private String productType;
|
||||||
|
@ExcelProperty("预订日期")
|
||||||
|
private String orderDate;
|
||||||
|
@ExcelProperty("预订时间")
|
||||||
|
private String orderTime;
|
||||||
|
@ExcelProperty("订单金额")
|
||||||
|
private String orderAmount;
|
||||||
|
@ExcelProperty("对应所属系统")
|
||||||
|
private String systemCode;
|
||||||
|
@ExcelProperty("核算企业名称")
|
||||||
|
private String accountCompanyName;
|
||||||
|
@ExcelProperty("项目订单号")
|
||||||
|
private String projectCode;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.chint.infrastructure.export;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class OrderDetailExportFactory {
|
||||||
|
|
||||||
|
// public List<OrderDetailExport> createExportData(){
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.chint.infrastructure.repository;
|
||||||
|
|
||||||
|
import com.chint.domain.aggregates.system.AccountCompany;
|
||||||
|
import com.chint.domain.repository.AccountCompanyRepository;
|
||||||
|
import com.chint.infrastructure.repository.jdbc.JdbcAccountCompanyRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public class AccountCompanyRepositoryImpl implements AccountCompanyRepository {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JdbcAccountCompanyRepository jdbcAccountCompanyRepository;
|
||||||
|
|
||||||
|
@Cacheable(value = "AccountCompanyAll")
|
||||||
|
@Override
|
||||||
|
public List<AccountCompany> findAll() {
|
||||||
|
List<AccountCompany> res = new ArrayList<>();
|
||||||
|
jdbcAccountCompanyRepository.findAll().forEach(res::add);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.chint.infrastructure.repository.jdbc;
|
||||||
|
|
||||||
|
import com.chint.domain.aggregates.location.CityEntity;
|
||||||
|
import com.chint.domain.aggregates.system.AccountCompany;
|
||||||
|
import com.chint.domain.repository.AccountCompanyRepository;
|
||||||
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface JdbcAccountCompanyRepository extends CrudRepository<AccountCompany,Long> {
|
||||||
|
}
|
Loading…
Reference in New Issue