From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: 星期一, 19 六月 2023 14:22:45 +0800
Subject: [PATCH] 描述

---
 src/main/java/com/gk/firework/Service/ServiceImpl/DeliveryDetailServiceImpl.java |  173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 173 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/DeliveryDetailServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/DeliveryDetailServiceImpl.java
new file mode 100644
index 0000000..3bed010
--- /dev/null
+++ b/src/main/java/com/gk/firework/Service/ServiceImpl/DeliveryDetailServiceImpl.java
@@ -0,0 +1,173 @@
+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;
+    }
+}

--
Gitblit v1.9.2