package com.gk.firework.Service.ServiceImpl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.firework.Domain.DeliveryDetailInfo;
|
import com.gk.firework.Domain.DeliveryOrderInfo;
|
import com.gk.firework.Domain.Exception.BusinessException;
|
import com.gk.firework.Domain.ProductInfo;
|
import com.gk.firework.Domain.UserInfo;
|
import com.gk.firework.Domain.Utils.StringUtils;
|
import com.gk.firework.Domain.Vo.DirectionDetail;
|
import com.gk.firework.Domain.Vo.FireworkDeal;
|
import com.gk.firework.Mapper.DeliveryDetailInfoMapper;
|
import com.gk.firework.Mapper.ProductInfoMapper;
|
import com.gk.firework.Service.DeliveryDetailService;
|
import com.gk.firework.Service.ProductService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.util.*;
|
|
/**
|
* @author : jingjy
|
* @date : 2021/4/1 10:25
|
*/
|
@Service("DeliveryDetailService")
|
public class DeliveryDetailServiceImpl extends ServiceImpl<DeliveryDetailInfoMapper, DeliveryDetailInfo> implements DeliveryDetailService {
|
@Autowired
|
private ProductInfoMapper productInfoMapper;
|
@Autowired
|
private DeliveryDetailInfoMapper deliveryDetailInfoMapper;
|
@Autowired
|
private ProductService productService;
|
|
@Override
|
public List<DeliveryDetailInfo> generateDeliveryDetail(DeliveryOrderInfo deliveryOrderInfo, UserInfo userInfo, List<String> directionCodes) {
|
List<DeliveryDetailInfo> deliveryDetailInfos = new ArrayList<>();
|
int boxNum = 0;
|
for (String dire : directionCodes){
|
DirectionDetail detail = FireworkDeal.dealDirectionCode(dire);
|
ProductInfo productInfo= productInfoMapper.selectProductByDirectionCode(detail.getItemCode());
|
int num = 1;
|
if (productInfo != null){
|
if (detail.getLength() == FireworkDeal.DIRECTION_OUTSIDE){
|
num = Integer.parseInt(detail.getBoxNo());
|
}
|
DeliveryDetailInfo deliveryDetailInfo = new DeliveryDetailInfo();
|
deliveryDetailInfo.setCreateby(userInfo.getUsername());
|
deliveryDetailInfo.setCreateat(new Date());
|
deliveryDetailInfo.setDeliverycode(deliveryOrderInfo.getOrdercode());
|
deliveryDetailInfo.setDirectioncode(dire);
|
deliveryDetailInfo.setItemname(productInfo.getName());
|
deliveryDetailInfo.setItemcode(productInfo.getDirectionCode());
|
deliveryDetailInfo.setNum(num);
|
deliveryDetailInfos.add(deliveryDetailInfo);
|
boxNum += num;
|
}
|
}
|
deliveryOrderInfo.setBoxnum(boxNum);
|
return deliveryDetailInfos;
|
}
|
|
/**
|
* @Description: 根据{出库单号}查询出库明细
|
* @date 2021/4/15 14:36
|
*/
|
@Override
|
public Page selectDetailPage(Page<Map> page, Map filter) {
|
String code = (String) filter.get("code");
|
if (StringUtils.isBlank(code)) {
|
throw new BusinessException("出库单号不能为空");
|
}
|
|
Map<String, Object> params = new HashMap<>();
|
params.put("code", code);
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
List<Map> list = deliveryDetailInfoMapper.selectDetailPage(page,params);
|
return page.setRecords(list);
|
}
|
|
/**
|
* @Description: 根据{出库单code}查询出库明细并导出
|
* @date 2021/4/15 11:09
|
*/
|
@Override
|
public List<Map> selectDetailExport(String code) {
|
return deliveryDetailInfoMapper.selectDetailExport(code);
|
}
|
|
@Override
|
public List<DeliveryDetailInfo> getDetailByCode(String ordercode) {
|
LambdaQueryWrapper<DeliveryDetailInfo> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(DeliveryDetailInfo::getDeliverycode,ordercode);
|
return deliveryDetailInfoMapper.selectList(wrapper);
|
}
|
|
@Override
|
public BigDecimal selectEnterpriseDeliveryNumber(String enterprisenumber, Object starttime, Object endtime) {
|
return deliveryDetailInfoMapper.selectEnterpriseDeliveryNumber(enterprisenumber,starttime,endtime);
|
}
|
|
@Override
|
public IPage selectEnterpriseTypeDelivery(Page<Map> page, Map<String, Object> filter, UserInfo user) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
params.put("safetysupervision", filter.get("safetysupervision"));
|
params.put("province", filter.get("province"));
|
params.put("city", filter.get("city"));
|
params.put("district", filter.get("district"));
|
List<String> list = productService.selectTypes();
|
List<Map> res = deliveryDetailInfoMapper.selectEnterpriseTypeDelivery(page, params, list);
|
Map totalRow = deliveryDetailInfoMapper.selectAllType(params, list);
|
ArrayList<Map> result = new ArrayList<>(res);
|
result.add(totalRow);
|
return page.setRecords(result);
|
}
|
|
@Override
|
public List<Map> selectExportEnterpriseTypeDelivery(Map<String, Object> filter, UserInfo user) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
params.put("safetysupervision", filter.get("safetysupervision"));
|
params.put("province", filter.get("province"));
|
params.put("city", filter.get("city"));
|
params.put("district", filter.get("district"));
|
List<String> list = productService.selectTypes();
|
List<Map> res = deliveryDetailInfoMapper.selectEnterpriseTypeDelivery(params, list);
|
Map totalRow = deliveryDetailInfoMapper.selectAllType(params, list);
|
ArrayList<Map> result = new ArrayList<>(res);
|
result.add(totalRow);
|
return result;
|
}
|
|
@Override
|
public IPage selectCityTypeDelivery(Page<Map> page, Map<String, Object> filter, UserInfo user) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("province", "新疆维吾尔自治区");
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("safetysupervision", filter.get("safetysupervision"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
List<String> list = productService.selectTypes();
|
List<Map> res = deliveryDetailInfoMapper.selectCityTypeDelivery(page,params, list);
|
Map totalRow = deliveryDetailInfoMapper.selectAllType(params, list);
|
ArrayList<Map> result = new ArrayList<>(res);
|
result.add(totalRow);
|
return page.setRecords(result);
|
}
|
|
@Override
|
public List<Map> selectExportCityTypeDelivery(Map<String, Object> filter, UserInfo user) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("province", "新疆维吾尔自治区");
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("safetysupervision", filter.get("safetysupervision"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
List<String> list = productService.selectTypes();
|
List<Map> res = deliveryDetailInfoMapper.selectCityTypeDelivery(params, list);
|
Map totalRow = deliveryDetailInfoMapper.selectAllType(params, list);
|
ArrayList<Map> result = new ArrayList<>(res);
|
result.add(totalRow);
|
return result;
|
}
|
}
|