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