对比新文件 |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |