|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package com.qtzl.alterSales.manager.service;
-
- import cn.com.taiji.common.manager.net.http.ServiceHandleException;
- import cn.com.taiji.common.model.dao.Pagination;
- import cn.com.taiji.common.pub.BeanTools;
- import cn.hutool.core.bean.BeanUtil;
- import com.google.common.collect.Lists;
- import com.qtzl.alterSales.dao.repo.jpa.primary.FssPaccountFinalbillRepo;
- import com.qtzl.alterSales.dao.repo.jpa.second.AflPaccountReceivableBillRepo;
- import com.qtzl.alterSales.manager.model.protocol.UcServiceError;
- import com.qtzl.alterSales.manager.model.protocol.sales.FssPaccountFinalbillFindCountRequest;
- import com.qtzl.alterSales.manager.model.protocol.sales.FssPaccountFinalbillFindCountResponse;
- import com.qtzl.alterSales.manager.model.protocol.sales.FssPaccountFinalbillFindPageRequest;
- import com.qtzl.alterSales.manager.vo.AflPaccountReceivableBillVo;
- import com.qtzl.alterSales.manager.vo.FssPaccountFinalbillVo;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
-
- import javax.annotation.Resource;
- import javax.persistence.criteria.Predicate;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
-
- /**
- * @author zhangxin
- */
- @Service
- public class FssPaccountFinalbillServiceImpl implements FssPaccountFinalbillService{
-
- private static final Logger log = LoggerFactory.getLogger(FssPaccountFinalbillServiceImpl.class);
-
- @Resource
- FssPaccountFinalbillRepo fssPaccountFinalbillRepo;
- @Resource
- AflPaccountReceivableBillRepo aflPaccountReceivableBillRepo;
-
- @Override
- public FssPaccountFinalbillFindCountResponse findByNaturalDateCount(FssPaccountFinalbillFindCountRequest request) throws ServiceHandleException {
- Pagination pagination = select(request);
- return toResponse(pagination);
- }
-
- private FssPaccountFinalbillFindCountResponse toResponse(Pagination pagination) {
- final FssPaccountFinalbillFindCountResponse response = new FssPaccountFinalbillFindCountResponse();
- BeanTools.copyProperties(pagination, response);
- if (pagination.getResult()==null||pagination.getResult().size()<1) {
- return response;
- }
- List<FssPaccountFinalbillVo> collect = pagination.getResult(AflPaccountReceivableBillVo.class).stream().map(this::toVo).collect(Collectors.toList());
- response.setData(collect);
- return response;
- }
-
- private Pagination select(FssPaccountFinalbillFindCountRequest request) throws ServiceHandleException {
- if (request.getPageSize() > 100) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请求每页数量过大 " + request.getPageSize());
- }
- if (!StringUtils.isEmpty(request.getNaturalDate())){
- long count = count(request);
- if (count<1){
- Pagination pagination = new Pagination();
- pagination.setPageSize(request.getPageSize());
- pagination.setResult(new ArrayList<FssPaccountFinalbillVo>());
- return pagination;
- }
- }
- FssPaccountFinalbillFindPageRequest queryRequest = new FssPaccountFinalbillFindPageRequest();
- BeanUtil.copyProperties(request, queryRequest);
- if (!StringUtils.isEmpty(request.getNaturalDate())){
- Integer accountDate = getAccountDate(request.getNaturalDate());
- queryRequest.setAccountDate(accountDate);
- }
- return aflPaccountReceivableBillRepo.page(queryRequest);
- }
- private long count(FssPaccountFinalbillFindCountRequest request) throws ServiceHandleException {
- Integer accountDate = getAccountDate(request.getNaturalDate());
- return aflPaccountReceivableBillRepo.count(((root, query, cb) -> {
- List<Predicate> list = Lists.newArrayList();
- if (accountDate!=null) {
- list.add(cb.equal(root.<Integer>get("accountDate"), accountDate));
- }
- Predicate[] p = new Predicate[list.size()];
- return cb.and(list.toArray(p));
- }));
- }
- private FssPaccountFinalbillVo toVo(AflPaccountReceivableBillVo aflPaccountReceivableBillVo) {
- FssPaccountFinalbillVo fssPaccountFinalbillVo = new FssPaccountFinalbillVo();
- BeanUtil.copyProperties(aflPaccountReceivableBillVo,fssPaccountFinalbillVo);
- String payDate = getPayDate(aflPaccountReceivableBillVo.getAccountDate().toString());
- log.info("时间类型转换中:"+payDate);
- fssPaccountFinalbillVo.setNaturalDate(payDate);
- return fssPaccountFinalbillVo;
- }
- private String getPayDate(String payDate){
- log.info("时间类型转换中:"+payDate);
- SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
- formatter.setLenient(false);
- Date newDate=null;
- try {
- newDate= formatter.parse(payDate);
- } catch (ParseException e) {
- log.error("时间类型转换失败:"+payDate);
- return payDate;
- }
- formatter = new SimpleDateFormat("yyyy-MM-dd");
- String format = formatter.format(newDate);
- log.info("时间类型转换成功:"+format);
- return format;
- }
-
- private Integer getAccountDate(String accountDate){
- Integer newAccountDate = null;
- try {
- String accountDateInt = accountDate.replaceAll("-", "");
- newAccountDate = Integer.parseInt(accountDateInt);
- } catch (Exception e) {
- log.error("数据类型转换失败");
- }
- return newAccountDate;
- }
- }
|