From f65443d8abeaedc9d102324565e8368e7c9d90c8 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:41:54 +0800
Subject: [PATCH] commit
---
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