From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: 星期一, 19 六月 2023 14:44:19 +0800
Subject: [PATCH] 删除

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

diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/SaleOrderServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/SaleOrderServiceImpl.java
new file mode 100644
index 0000000..b9a2270
--- /dev/null
+++ b/src/main/java/com/gk/firework/Service/ServiceImpl/SaleOrderServiceImpl.java
@@ -0,0 +1,801 @@
+package com.gk.firework.Service.ServiceImpl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gk.firework.Domain.*;
+import com.gk.firework.Domain.BO.SaleOrderDetailInfoBO;
+import com.gk.firework.Domain.Enum.ErrorCode;
+import com.gk.firework.Domain.Exception.BusinessException;
+import com.gk.firework.Domain.Utils.Msg;
+import com.gk.firework.Domain.Utils.PageInfo;
+import com.gk.firework.Domain.Utils.StringUtils;
+import com.gk.firework.Domain.Vo.*;
+import com.gk.firework.Mapper.SaleOrderDetailInfoMapper;
+import com.gk.firework.Mapper.SaleOrderInfoMapper;
+import com.gk.firework.Mapper.UserInfoMapper;
+import com.gk.firework.Service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.gk.firework.Domain.Vo.EntryUtils.RK_ENTRY;
+import static com.gk.firework.Domain.Vo.EntryUtils.TH_ENTRY;
+
+/**
+ * @author : jingjy
+ * @date : 2021/3/30 17:30
+ */
+@Service("SaleOrderService")
+public class SaleOrderServiceImpl extends ServiceImpl<SaleOrderInfoMapper, SaleOrderInfo> implements SaleOrderService {
+    @Autowired
+    private UserInfoMapper userInfoMapper;
+    @Autowired
+    private SaleOrderInfoMapper saleOrderInfoMapper;
+    @Autowired
+    private SaleOrderService saleOrderService;
+    @Autowired
+    private SaleOrderDetailService saleOrderDetailService;
+    @Autowired
+    private CustomerService customerService;
+    @Autowired
+    private StockService stockService;
+    @Autowired
+    private SaleOrderDetailInfoMapper saleOrderDetailInfoMapper;
+    @Autowired
+    private ProductService productService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private EnterpriseService enterpriseService;
+    @Autowired
+    private EntryService entryService;
+    @Autowired
+    private DistrictService districtService;
+    @Autowired
+    private DeliveryDetailService deliveryDetailService;
+
+    @Value("${hostId}")
+    private String hostId;
+
+    private static final String RETAIL_ORDER = "1";
+    private static final String GROUP_ORDER = "2";
+    private static final String NORMAL_DELIVERY = "1";
+    public static final String OTHER_DELIVERY = "2";
+    static final String MODULE_ENTRY = "入库";
+    public static final String MODULE_DELIVERY = "出库";
+    private static final String MODULE_SALE = "销售";
+
+    @Override
+    public SaleOrderInfo createOrder(UserInfo userInfo, List<SaleOrderDetailInfoBO> detailInfoList, String type, Integer num,
+                                     Date salesTime, Long customerId, String pay, String total, String change, String auth) {
+        //TODO:添加订单信息及订单详情信息
+        SaleOrderInfo orderInfo = new SaleOrderInfo();
+        orderInfo.setCode(generateOrderCode(MODULE_SALE,type,new Date(),userInfo.getId()));
+        orderInfo.setType(Byte.parseByte(type));
+        orderInfo.setCreatedat(salesTime);
+        orderInfo.setCreatedby(userInfo.getUsername());
+        orderInfo.setBoxnum(new BigDecimal(num));
+        orderInfo.setPay(new BigDecimal(pay));
+        orderInfo.setChange(new BigDecimal(change));
+        orderInfo.setSalesperson(userInfo.getUsername());
+        orderInfo.setTotalprice(new BigDecimal(total));
+        orderInfo.setShop(userInfo.getCompany());
+        orderInfo.setCompanynumber(userInfo.getCompanynumber());
+        orderInfo.setCustomer(customerId);
+        for (SaleOrderDetailInfo detailInfo : detailInfoList){
+            detailInfo.setOrdercode(orderInfo.getCode());
+            detailInfo.setCreatedat(salesTime);
+            detailInfo.setCreatedby(userInfo.getUsername());
+        }
+        saleOrderService.save(orderInfo);
+        saleOrderDetailService.saveBatchOrderDetailInfo(detailInfoList.stream().map(item -> (SaleOrderDetailInfo) item).collect(Collectors.toList()));
+
+        return orderInfo;
+    }
+
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
+    @Override
+    public Msg doSalesProcess(JSONObject customer, Integer num, String idCardNum, UserInfo userInfo,
+                              List<SaleOrderDetailInfoBO> detailInfoList, String type, Date salesTime,
+                              String pay, String total, String change, String auth)  {
+
+        Msg msg = new Msg();
+        msg.setCode("200");
+        CustomerInfo customerInfo;
+        // 身份证表 存入和更新
+        try {
+            customerInfo = customerService.createOrUpdate(customer, num, salesTime);
+        } catch (ParseException e) {
+            throw new BusinessException("时间解析错误");
+        }
+
+//        CustomerInfo customerInfo = customerService.getCustomerByIdCardNum(idCardNum);
+
+        //扣库存
+        Msg result = stockService.changeStockBySale(customerInfo,detailInfoList,userInfo,salesTime);
+        if (!result.getCode().equals(ErrorCode.SUCCESS.getCode())){
+            msg = result;
+        }else {
+            //订单及详情生成
+            SaleOrderInfo saleOrderInfo = saleOrderService.createOrder(userInfo,detailInfoList,type,num,salesTime,customerInfo.getId(),pay,total,change, auth);
+            msg.setResult(saleOrderInfo);
+        }
+        return msg;
+    }
+
+    @Override
+    public List<SaleOrderDetailInfo> selectDetailByIdCardNum(String idCardNum, String directionCode) {
+        return saleOrderDetailInfoMapper.selectDetailByIdCardNumAndDire(idCardNum,directionCode);
+    }
+
+    @Override
+    public SaleOrderDetailInfo selectOrderByDirectionAndCustomer(String directionCode, CustomerInfo customerInfo) {
+        return saleOrderDetailInfoMapper.selectOrderByDirectionAndCustomer(directionCode, customerInfo.getId());
+    }
+
+    @Override
+    public void selectReturnDataGrid(PageInfo pageInfo) {
+        Page<SaleOrderDetailInfo> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
+
+        List<OrderItem> orderItems = new ArrayList<>();
+        OrderItem orderItem = new OrderItem();
+        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
+            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
+            orderItem.setColumn(pageInfo.getSort());
+        }else {
+            orderItem.setAsc(false);
+            orderItem.setColumn("createdat");
+        }
+        orderItems.add(orderItem);
+        page.setOrders(orderItems);
+        if (StringUtils.isBlank(pageInfo.getSort())){
+            pageInfo.setSort("createdat");
+        }
+        if (StringUtils.isBlank(pageInfo.getOrder())){
+            pageInfo.setOrder("desc");
+        }
+        List<SaleOrderDetailInfo> detailInfos = saleOrderDetailInfoMapper.selectDetailDataGridByIdCardNum(pageInfo.getCondition(),page);
+        pageInfo.setResult(detailInfos);
+        pageInfo.setTotalCount(page.getTotal());
+    }
+
+    /**
+    * @Description: 按零售单位查询
+    * @date 2021/4/12 16:35
+    */
+    @Override
+    public IPage selectSaleRecord2(Page<Map> page, Map filter, UserInfo user) {
+        Map<String, Object> params = new HashMap<>();
+        UserInfo userInfo = userService.getById(user.getId());
+        //过滤条件
+        //权限
+        {
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //基本
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("safetysupervision", filter.get("safetysupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+
+        List<Map> list = saleOrderInfoMapper.selectSaleRecord2(page, params);
+        return page.setRecords(list);
+    }
+
+    /**
+    * @Description: 按产品查询,没有权限,显示所有产品
+    * @date 2021/4/13 8:54
+    */
+    @Override
+    public PageInfoExtension<Map> selectSaleRecord3(Page<Map> page, Map filter, UserInfo user) {
+
+        Map<String, Object> params = new HashMap<>();
+        UserInfo userInfo = userService.getById(user.getId());
+        //权限
+        {
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //过滤条件
+        //产品流向码,产品名称
+        params.put("itemcode", filter.get("itemcode"));
+        params.put("itemname", filter.get("itemname"));
+
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("safetysupervision", filter.get("safetysupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+
+        List<Map> list = saleOrderInfoMapper.selectSaleRecord3(page, params);
+        //统计该查询条件下所有产品销售的总箱数
+        Map sales = saleOrderInfoMapper.selectProductSales(params);
+        PageInfoExtension<Map> extension = new PageInfoExtension<>();
+        extension.setExtension(sales);
+        extension.setPageSize((int) page.getSize());
+        extension.setPageIndex((int) page.getCurrent());
+        extension.setResult(list);
+        extension.setTotalCount(page.getTotal());
+        return extension;
+    }
+
+    /**
+    * @Description: 按购买人查询
+    * @date 2021/4/13 9:07
+    */
+    @Override
+    public IPage selectSaleRecord4(Page<Map> page, Map filter, UserInfo user) {
+
+        Map<String, Object> params = new HashMap<>();
+        UserInfo userInfo = userService.getById(user.getId());
+        //过滤条件
+        //权限
+        {
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            if (StringUtils.isNotBlank(userInfo.getCompanynumber())) {
+                List<Enterprise> subs = enterpriseService.selectSubEnterprise(userInfo.getCompanyid());
+                List<String> subList = subs.stream().map(Enterprise::getEnterprisenumber).collect(Collectors.toList());
+                if (subList.size() > 0)
+                    params.put("subList", subList);
+            }
+
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //基本
+        params.put("directioncode", filter.get("directioncode"));
+        params.put("identify", filter.get("identify"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+        params.put("isNeedUploadPhoto", filter.get("isNeedUploadPhoto"));
+        params.put("nation", filter.get("nation"));
+        //省市区
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        List<Map> list = saleOrderInfoMapper.selectSaleRecord4(page, params);
+
+        Map<String, Object> totalRow = new HashMap<>();
+        //购买总人数
+        totalRow.put("city", "合计");
+        totalRow.put("enterprisename", "购买总人数");
+        Integer i = saleOrderInfoMapper.selectSaleAllPerson(params);
+        totalRow.put("name", i);
+        //购买总数
+        totalRow.put("identify", "购买总挂数");
+        Integer j = saleOrderInfoMapper.selectAllSaleNum(params);
+        totalRow.put("num", j);
+        //退货数量
+        Integer m = saleOrderInfoMapper.selectAllReturnNum(params);
+        totalRow.put("returnnum", m);
+        ArrayList<Map> res = new ArrayList<>(list);
+        res.add(totalRow);
+        return page.setRecords(res);
+    }
+
+    /**
+    * @Description: 根据销售企业的单位编号和人员的身份证获取购买明细
+    * @date 2021/4/14 12:43
+    */
+    @Override
+    public IPage getPurchaseDetailInUnit(Page<SaleOrderDetailInfo> page, Map filter, UserInfo user) {
+
+        String enterprisenumber = (String) filter.get("enterprisenumber");
+        String identify = (String) filter.get("identify");
+        if (StringUtils.isBlank(enterprisenumber) || StringUtils.isBlank(identify)) {
+            throw new BusinessException("企业单位编号和身份证不能为空");
+        }
+        Map<String, Object> params = new HashMap<>();
+        params.put("enterprisenumber", enterprisenumber);
+        params.put("identify", identify);
+        params.put("directioncode", filter.get("directioncode"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        List<SaleOrderDetailInfo> list = saleOrderInfoMapper.getPurchaseDetailInUnit(page, params);
+        return page.setRecords(list);
+    }
+
+    @Override
+    public List<SaleOrderInfo> selectEarlyWarn(String starttime, String endttime, Integer min, Integer max) {
+        return saleOrderInfoMapper.selectEarlyWarn(starttime, endttime, min, max);
+    }
+
+    @Override
+    public List<SaleOrderInfo> selectAlarm(String starttime, String endttime, Integer max) {
+        return saleOrderInfoMapper.selectAlarm(starttime, endttime, max);
+    }
+
+    @Override
+    public Long selectByCustomer(Long customid) {
+        return saleOrderInfoMapper.selectByCustomer(customid);
+    }
+
+    @Override
+    public BigDecimal getSaleNumByCondition(Map<String, Object> condition) {
+        return saleOrderDetailInfoMapper.getSaleNumByCondition(condition);
+    }
+
+    /**
+    * @Description: 销售汇总导出
+    * @date 2021/4/19 17:33
+    */
+    @Override
+    public List<Map> selectExportSaleRecord3(Map filter, UserInfo user) {
+
+        Map<String, Object> params = new HashMap<>();
+        UserInfo userInfo = userService.getById(user);
+        //权限
+        {
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //过滤条件
+        //产品流向码,产品名称
+        params.put("itemcode", filter.get("itemcode"));
+        params.put("itemname", filter.get("itemname"));
+
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("safetysupervision", filter.get("safetysupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+
+        return saleOrderInfoMapper.selectSaleRecord3(params);
+    }
+
+    /**
+    * @Description: 实名销售导出
+    * @date 2021/4/19 17:40
+    */
+    @Override
+    public List<Map> selectExportSaleRecord4(Map filter, UserInfo user) {
+
+        Map<String, Object> params = new HashMap<>();
+        UserInfo userInfo = userService.getById(user.getId());
+        //过滤条件
+        //权限
+        {
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            if (StringUtils.isNotBlank(userInfo.getCompanynumber())) {
+                List<Enterprise> subs = enterpriseService.selectSubEnterprise(userInfo.getCompanyid());
+                List<String> subList = subs.stream().map(Enterprise::getEnterprisenumber).collect(Collectors.toList());
+                if (subList.size() > 0)
+                    params.put("subList", subList);
+            }
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //基本
+        params.put("directioncode", filter.get("directioncode"));
+        params.put("identify", filter.get("identify"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+        params.put("nation", filter.get("nation"));
+        //省市区
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+
+        List<Map> list = saleOrderInfoMapper.selectSaleRecord4(params);
+        Map<String, Object> totalRow = new HashMap<>();
+        //购买总人数
+        totalRow.put("city", "合计");
+        totalRow.put("enterprisename", "购买总人数");
+        Integer i = saleOrderInfoMapper.selectSaleAllPerson(params);
+        totalRow.put("name", i);
+        //购买总数
+        totalRow.put("identify", "购买总挂数");
+        Integer j = saleOrderInfoMapper.selectAllSaleNum(params);
+        totalRow.put("num", j);
+        //退货数量
+        Integer m = saleOrderInfoMapper.selectAllReturnNum(params);
+        totalRow.put("returnnum", m);
+        ArrayList<Map> res = new ArrayList<>(list);
+        res.add(totalRow);
+        return res;
+
+
+    }
+
+    @Override
+    public PageInfoExtension<List> selectDailySaleReport(PageInfo pageInfo) {
+        Page<DailySaleReport> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
+
+        List<OrderItem> orderItems = new ArrayList<>();
+        OrderItem orderItem = new OrderItem();
+        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
+            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
+            orderItem.setColumn(pageInfo.getSort());
+        }else {
+            orderItem.setAsc(false);
+            orderItem.setColumn("createdat");
+        }
+        orderItems.add(orderItem);
+        page.setOrders(orderItems);
+        if (StringUtils.isBlank(pageInfo.getSort())){
+            pageInfo.setSort("createdat");
+        }
+        if (StringUtils.isBlank(pageInfo.getOrder())){
+            pageInfo.setOrder("desc");
+        }
+        List<DailySaleReport> reports = saleOrderInfoMapper.selectDailySaleReport(pageInfo.getCondition(),page);
+        pageInfo.setResult(reports);
+        pageInfo.setTotalCount(page.getTotal());
+        List<Map> list = saleOrderInfoMapper.selectAllDailySaleReport(pageInfo.getCondition());
+        PageInfoExtension<List> extension = new PageInfoExtension<>(pageInfo);
+        extension.setExtension(list);
+        return extension;
+    }
+
+    @Override
+    public void selectOrderDataGrid(PageInfo pageInfo) {
+        Page<SaleOrderInfo> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
+
+        List<OrderItem> orderItems = new ArrayList<>();
+        OrderItem orderItem = new OrderItem();
+        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
+            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
+            orderItem.setColumn(pageInfo.getSort());
+        }else {
+            orderItem.setAsc(false);
+            orderItem.setColumn("createdat");
+        }
+        orderItems.add(orderItem);
+        page.setOrders(orderItems);
+        if (StringUtils.isBlank(pageInfo.getSort())){
+            pageInfo.setSort("createdat");
+        }
+        if (StringUtils.isBlank(pageInfo.getOrder())){
+            pageInfo.setOrder("desc");
+        }
+        List<SaleOrderInfo> orderInfos = saleOrderInfoMapper.selectDataGrid(pageInfo.getCondition(),page);
+        if (orderInfos.size() > 0) {
+            for (SaleOrderInfo info : orderInfos) {
+                info.setDetails(saleOrderInfoMapper.selectDetails(info.getCode()));
+            }
+        }
+        pageInfo.setResult(orderInfos);
+        pageInfo.setTotalCount(page.getTotal());
+    }
+
+    @Override
+    public int getDailySaleCount(UserInfo userInfo) {
+        LambdaQueryWrapper<SaleOrderInfo>wrapper = new LambdaQueryWrapper<>();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        Date start = calendar.getTime();
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        Date end = calendar.getTime();
+        wrapper.ge(SaleOrderInfo::getCreatedat,start);
+        wrapper.le(SaleOrderInfo::getCreatedat,end);
+        wrapper.eq(SaleOrderInfo::getCompanynumber,userInfo.getCompanynumber());
+        return saleOrderInfoMapper.selectCount(wrapper);
+    }
+
+    @Override
+    public void selectEnterpriseEnterSellStoreDataGrid(PageInfo pageInfo, Map<String, Object> filter, UserInfo userInfo) {
+        Page<Enterprise> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
+
+        Map<String, Object> params = new HashMap<>();
+        //过滤条件
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("safetysupervision", filter.get("safetysupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+
+        if (userInfo != null && userInfo.getCompanynumber() != null){
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            List<Enterprise> subs = enterpriseService.selectSubEnterprise(userInfo.getCompanyid());
+            List<String> subList = subs.stream().map(Enterprise::getEnterprisenumber).collect(Collectors.toList());
+            if (subList.size() > 0)
+                params.put("subList", subList);
+        }
+
+        List<OrderItem> orderItems = new ArrayList<>();
+        OrderItem orderItem = new OrderItem();
+        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
+            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
+            orderItem.setColumn(pageInfo.getSort());
+        }else {
+            orderItem.setAsc(false);
+            orderItem.setColumn("id");
+        }
+        orderItems.add(orderItem);
+        page.setOrders(orderItems);
+        if (StringUtils.isBlank(pageInfo.getSort())){
+            pageInfo.setSort("id");
+        }
+        if (StringUtils.isBlank(pageInfo.getOrder())){
+            pageInfo.setOrder("asc");
+        }
+        List<Enterprise> enterprises = enterpriseService.selectSaleEnterprise(params,page);
+        List<EnterpriseDataVo> enterpriseDataVos = new ArrayList<>();
+        for (Enterprise enterprise : enterprises){
+            BigDecimal saleNumber = saleOrderInfoMapper.selectEnterpriseSaleNumber(enterprise.getEnterprisenumber(),filter.get("starttime"),filter.get("endtime"));
+            BigDecimal entryNumber = entryService.selectEnterpriseEntryNumber(enterprise.getEnterprisenumber(),filter.get("starttime"),filter.get("endtime"));
+            BigDecimal deliveryNumber = deliveryDetailService.selectEnterpriseDeliveryNumber(enterprise.getEnterprisenumber(), filter.get("starttime"), filter.get("endtime"));
+            EnterpriseDataVo enterpriseDataVo = new EnterpriseDataVo(enterprise.getEnterprisename(),saleNumber,entryNumber);
+            enterpriseDataVo.setDeliveryNumber(deliveryNumber);
+            enterpriseDataVos.add(enterpriseDataVo);
+        }
+        pageInfo.setResult(enterpriseDataVos);
+        pageInfo.setTotalCount(page.getTotal());
+    }
+
+    @Override
+    public List<EnterpriseDataVo> selectEnterpriseEnterSellStoreData(Map<String, Object> filter,UserInfo userInfo) {
+        Map<String, Object> params = new HashMap<>();
+        //过滤条件
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("safetysupervision", filter.get("safetysupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+
+        if (userInfo != null && userInfo.getCompanynumber() != null){
+            params.put("enterprisename", userInfo.getCompany());
+        }
+
+        List<Enterprise> enterprises = enterpriseService.selectSaleEnterprise(params);
+        List<EnterpriseDataVo> enterpriseDataVos = new ArrayList<>();
+        for (Enterprise enterprise : enterprises){
+            BigDecimal saleNumber = saleOrderInfoMapper.selectEnterpriseSaleNumber(enterprise.getEnterprisenumber(),filter.get("starttime"),filter.get("endtime"));
+            BigDecimal entryNumber = entryService.selectEnterpriseEntryNumber(enterprise.getEnterprisenumber(),filter.get("starttime"),filter.get("endtime"));
+            BigDecimal deliveryNumber = deliveryDetailService.selectEnterpriseDeliveryNumber(enterprise.getEnterprisenumber(), filter.get("starttime"), filter.get("endtime"));
+            EnterpriseDataVo enterpriseDataVo = new EnterpriseDataVo(enterprise.getEnterprisename(),saleNumber,entryNumber);
+            enterpriseDataVo.setDeliveryNumber(deliveryNumber);
+            enterpriseDataVos.add(enterpriseDataVo);
+        }
+        return enterpriseDataVos;
+    }
+
+    @Override
+    public SaleOrderDetailInfo selectOrderByDirectionReturnflag(String directionCode, byte returnflag, String datetime) {
+        return saleOrderDetailInfoMapper.selectOrderByDirectionReturnflag(directionCode,returnflag,datetime);
+    }
+
+    @Override
+    public void selectCityEnterSellStoreDataGrid(PageInfo pageInfo, Map<String, Object> filter) {
+        Page<Enterprise> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
+
+        Map<String, Object> params = new HashMap<>();
+        //过滤条件
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("safetysupervision", filter.get("safetysupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+
+        List<OrderItem> orderItems = new ArrayList<>();
+        OrderItem orderItem = new OrderItem();
+        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
+            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
+            orderItem.setColumn(pageInfo.getSort());
+        }else {
+            orderItem.setAsc(false);
+            orderItem.setColumn("id");
+        }
+        orderItems.add(orderItem);
+        page.setOrders(orderItems);
+        if (StringUtils.isBlank(pageInfo.getSort())){
+            pageInfo.setSort("id");
+        }
+        if (StringUtils.isBlank(pageInfo.getOrder())){
+            pageInfo.setOrder("asc");
+        }
+
+        List<DistrictInfo> districtInfos = districtService.selectInfoByParentCodeAndCity("65",filter.get("city"));
+        List<CityDataVo> cityDataVos = new ArrayList<>();
+        for (DistrictInfo districtInfo : districtInfos){
+            BigDecimal saleNumber = saleOrderInfoMapper.selectCitySaleNumber(districtInfo.getName(),filter.get("starttime"),filter.get("endtime"));
+            BigDecimal entryNumber = entryService.selectCityEntryNumber(districtInfo.getName(),filter.get("starttime"),filter.get("endtime"));
+            //销售金额
+            BigDecimal sales = saleOrderInfoMapper.selectCitySales(districtInfo.getName(),filter.get("starttime"),filter.get("endtime"));
+            BigDecimal saleNumber2 = saleOrderInfoMapper.selectCitySaleNumber(districtInfo.getName(),filter.get("starttime2"),filter.get("endtime2"));
+            BigDecimal entryNumber2 = entryService.selectCityEntryNumber(districtInfo.getName(),filter.get("starttime2"),filter.get("endtime2"));
+            ////销售金额
+            BigDecimal sales2 = saleOrderInfoMapper.selectCitySales(districtInfo.getName(),filter.get("starttime2"),filter.get("endtime2"));
+            String dataRange = filter.get("starttime")+" - "+filter.get("endtime");
+            String dataRange2 = filter.get("starttime2")+" - "+filter.get("endtime2");
+            CityDataVo cityDataVo = new CityDataVo(districtInfo.getName(),dataRange,saleNumber,entryNumber,dataRange2,saleNumber2,entryNumber2);
+            cityDataVo.setSales(sales);
+            cityDataVo.setSales2(sales2);
+            cityDataVos.add(cityDataVo);
+        }
+        pageInfo.setResult(cityDataVos);
+        pageInfo.setTotalCount(page.getTotal());
+    }
+
+    /**
+    * @Description: 按流向码查询
+    * @date 2021/4/12 16:35
+    */
+    @Override
+    public IPage selectSaleRecord1(Page<Map> page,Map filter, UserInfo user) {
+
+        Map<String, Object> params = new HashMap<>();
+        UserInfo userInfo = userService.getById(user.getId());
+        //过滤条件
+        //权限
+        {
+            params.put("enterprisenumber", userInfo.getCompanynumber());
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //基本
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict", filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("starttime", filter.get("starttime"));
+        params.put("endtime", filter.get("endtime"));
+        params.put("identify", filter.get("identify"));
+        params.put("directioncode", filter.get("directioncode"));
+        params.put("safetySupervision", filter.get("safetySupervision"));
+        params.put("enterprisename", filter.get("enterprisename"));
+        params.put("parententerprisename", filter.get("parententerprisename"));
+        List<Map> list = saleOrderInfoMapper.selectSaleRecord1(page, params);
+        return page.setRecords(list);
+    }
+
+
+
+    public SaleOrderInfo generateSaleOrderInfo(String type, UserInfo userInfo, Integer num, Date salesTime,
+                                                      Long customerId, String pay, String total, String change, String userId){
+        SaleOrderInfo orderInfo = new SaleOrderInfo();
+        orderInfo.setCode(generateOrderCode(MODULE_SALE,type,new Date(),userInfo.getId()));
+        orderInfo.setType(Byte.parseByte(type));
+        orderInfo.setCreatedat(salesTime);
+        orderInfo.setCreatedby(userInfo.getUsername());
+        orderInfo.setBoxnum(new BigDecimal(num));
+        orderInfo.setPay(new BigDecimal(pay));
+        orderInfo.setChange(new BigDecimal(change));
+        orderInfo.setSalesperson(userInfo.getUsername());
+        orderInfo.setTotalprice(new BigDecimal(total));
+        orderInfo.setShop(userInfo.getCompany());
+        orderInfo.setCompanynumber(userInfo.getCompanynumber());
+        orderInfo.setCustomer(customerId);
+
+        return orderInfo;
+    }
+
+    @Override
+    public String generateOrderCode(String module, String type, Date date, Long userId){
+        //DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        //创建Instant对象
+        Instant instant = Instant.now();
+        //获取毫秒数
+        long currentMilli = instant.toEpochMilli();
+        String orderCode = String.valueOf(currentMilli);
+        String extend = String.format("%06d",userId);
+        switch (module) {
+            case MODULE_ENTRY:
+                if (type.equals(RK_ENTRY)) {
+                    orderCode = "RK-" + orderCode;
+                } else if (type.equals(TH_ENTRY)) {
+                    orderCode = "TH-" + orderCode;
+                }
+                break;
+            case MODULE_DELIVERY:
+                if (type.equals(NORMAL_DELIVERY)) {
+                    orderCode = "ND-" + orderCode;
+                } else {
+                    orderCode = "OD-" + orderCode;
+                }
+                break;
+            case MODULE_SALE:
+                if (type.equals(RETAIL_ORDER)) {
+                    orderCode = "RO-" + orderCode;
+                } else if (type.equals(GROUP_ORDER)) {
+                    orderCode = "GO-" + orderCode;
+                }
+                break;
+            default:
+        }
+
+        return orderCode+extend+hostId+Thread.currentThread().getId();
+    }
+
+    @Override
+    public SaleOrderInfo isExist(Long id, String companynumber, Date salesTime) {
+        LambdaQueryWrapper<SaleOrderInfo>wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SaleOrderInfo::getCreatedat,salesTime);
+        wrapper.eq(SaleOrderInfo::getCustomer,id);
+        wrapper.eq(SaleOrderInfo::getCompanynumber,companynumber);
+        return baseMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<SaleOrderInfo> getWaitUploadOrderByEnterprise(Enterprise enterprise) {
+        LambdaQueryWrapper<SaleOrderInfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SaleOrderInfo::getIsupload,0);
+        wrapper.ge(SaleOrderInfo::getCreatedat,"2022-01-21");
+        wrapper.eq(SaleOrderInfo::getCompanynumber,enterprise.getEnterprisenumber());
+        return baseMapper.selectList(wrapper);
+    }
+
+}

--
Gitblit v1.9.2