package vip.xiaonuo.sale.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import vip.xiaonuo.sale.entity.SaleDetail; import vip.xiaonuo.sale.entity.SaleOrder; import vip.xiaonuo.sale.entity.SalePrice; import vip.xiaonuo.sale.entity.vo.SaleDeliverVo; import vip.xiaonuo.sale.mapper.SaleDetailMapper; import vip.xiaonuo.sale.mapper.SaleOrderMapper; import vip.xiaonuo.sale.param.SaleOrderParam; import vip.xiaonuo.sale.service.ISaleOrderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Calendar; import java.util.Date; import java.util.List; /** *

* 销售订单 服务实现类 *

* * @author author * @since 2024-12-13 */ @Service public class SaleOrderServiceImpl extends ServiceImpl implements ISaleOrderService { @Autowired private SaleOrderMapper orderMapper; @Override public List getList(SaleOrderParam saleOrderParam) { String orgId = saleOrderParam.getOrgId(); String customer = saleOrderParam.getCustomer(); String materialName = saleOrderParam.getMaterialName(); Integer timeType = saleOrderParam.getTimeType(); QueryWrapper queryWrapper = new QueryWrapper<>(); Integer number = saleOrderParam.getNumber(); queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId); queryWrapper.eq(StringUtils.isNotBlank(customer),"customer",customer); queryWrapper.eq(StringUtils.isNotBlank(materialName),"produce_name",materialName); queryWrapper.select(" CONVERT(IFNULL(sum(sale_number),'0'),decimal(10,2)) saleNumber,create_time createTime,IFNULL(sum(sale_money),'0') saleMoney"); if (0 == timeType) { Calendar calendar = Calendar.getInstance(); if (null == number) { calendar.add(Calendar.YEAR, -2); } else { calendar.add(Calendar.YEAR, -number+1); } queryWrapper.between("create_time", calendar.getTime(), new Date()); queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')"); } else { Calendar calendar = Calendar.getInstance(); if (null == number) { calendar.add(Calendar.MONTH, -12); } else { calendar.add(Calendar.MONTH, -number+1); } queryWrapper.between("create_time", calendar.getTime(), new Date()); queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')"); } queryWrapper.orderByAsc("create_time"); List saleOrders = orderMapper.selectList(queryWrapper); BigDecimal math = new BigDecimal("10000"); for (SaleOrder saleOrder : saleOrders) { BigDecimal bg = new BigDecimal(saleOrder.getSaleMoney()); saleOrder.setSaleMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString()); } return saleOrders; } @Autowired private SaleDetailMapper saleDetailMapper; @Override public Page saleOrderWeiFa(Page objectPage, QueryWrapper wapper) { QueryWrapper contrNoQueryWrapper = new QueryWrapper<>(); contrNoQueryWrapper.isNull("c.sorr_derno"); Page page = saleDetailMapper.selectSumMoneyNoTwo(objectPage,contrNoQueryWrapper); return page; } }