|
@@ -26,6 +26,7 @@ import com.fs.company.domain.Company;
|
|
|
import com.fs.company.domain.CompanyDept;
|
|
|
import com.fs.company.domain.CompanyMoneyLogs;
|
|
|
import com.fs.company.domain.CompanyUser;
|
|
|
+import com.fs.company.mapper.CompanyDeptMapper;
|
|
|
import com.fs.company.mapper.CompanyMapper;
|
|
|
import com.fs.company.mapper.CompanyMoneyLogsMapper;
|
|
|
import com.fs.company.service.ICompanyDeptService;
|
|
@@ -220,6 +221,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
private IFsStoreOrderAuditLogService orderAuditLogService;
|
|
|
@Autowired
|
|
|
private CompanyMapper companyMapper;
|
|
|
+ @Autowired
|
|
|
+ private CompanyDeptMapper companyDeptMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询订单
|
|
@@ -630,8 +633,15 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
if (storeOrder.getCustomerId() == null){
|
|
|
storeOrder.setCustomerId(param.getCustomerId());//6.13 添加客户id
|
|
|
}
|
|
|
- storeOrder.setOrderType(param.getOrderType());
|
|
|
- storeOrder.setOrderMedium(param.getOrderMedium());
|
|
|
+ FsStoreOrder tempOrder = redisCache.getCacheObject("orderInfo:" + param.getCreateOrderKey());
|
|
|
+ if (tempOrder != null){
|
|
|
+ storeOrder.setOrderType(tempOrder.getOrderType());
|
|
|
+ storeOrder.setOrderMedium(tempOrder.getOrderMedium());
|
|
|
+ redisCache.deleteObject("orderInfo:" + param.getCreateOrderKey());
|
|
|
+ } else {
|
|
|
+ storeOrder.setOrderType(param.getOrderType());
|
|
|
+ storeOrder.setOrderMedium(param.getOrderMedium());
|
|
|
+ }
|
|
|
Integer flag=fsStoreOrderMapper.insertFsStoreOrder(storeOrder);
|
|
|
if (flag==0) {
|
|
|
return R.error("订单创建失败");
|
|
@@ -1991,11 +2001,20 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R createSalesOrder(CompanyUser companyUser, String cateIds) {
|
|
|
+ public R createSalesOrder(CompanyUser companyUser, String cateIds,Integer orderType,Integer orderMedium) {
|
|
|
List<FsStoreCartQueryVO> carts=cartMapper.selectFsStoreCartListByIds(cateIds);
|
|
|
String uuid = IdUtil.randomUUID();
|
|
|
redisCache.setCacheObject("createOrderKey:"+uuid, companyUser.getCompanyId()+"-"+companyUser.getUserId(), 24, TimeUnit.HOURS);
|
|
|
redisCache.setCacheObject("orderCarts:"+uuid, carts, 24, TimeUnit.HOURS);
|
|
|
+
|
|
|
+ //2025.7.23 倍力优需求 制单添加订单类型,媒体来源(非必填)
|
|
|
+ if (orderType != null || orderMedium != null) {
|
|
|
+ FsStoreOrder fsStoreOrder = new FsStoreOrder();
|
|
|
+ fsStoreOrder.setOrderMedium(orderMedium);
|
|
|
+ fsStoreOrder.setOrderType(orderType);
|
|
|
+ redisCache.setCacheObject("orderInfo:"+uuid, fsStoreOrder, 24, TimeUnit.HOURS);
|
|
|
+ }
|
|
|
+
|
|
|
//计算总价
|
|
|
BigDecimal totalMoney= BigDecimal.ZERO;
|
|
|
for(FsStoreCartQueryVO vo:carts){
|
|
@@ -2696,4 +2715,108 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
// return fsStoreOrderMapper.selectOrderDimensionStatisticsList(param);
|
|
|
// }
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<FsStoreOrderCountsVO> selectFsStoreOrderCountsByDept(Map<String, Object> map,Long deptId) {
|
|
|
+ List<FsStoreOrderCountsVO> vos = fsStoreOrderMapper.selectFsStoreOrderCountsByDept(map);
|
|
|
+ if (!vos.isEmpty()){
|
|
|
+ List<FsStoreOrderCountsVO> totalVos = new ArrayList<>();
|
|
|
+ //查询组名
|
|
|
+ List<CompanyDept> companyDeptList = companyDeptMapper.selectChildrenDeptById(deptId);
|
|
|
+ if (companyDeptList.isEmpty()) {
|
|
|
+ CompanyDept companyDept = companyDeptMapper.selectCompanyDeptById(deptId);
|
|
|
+ FsStoreOrderCountsVO vo = addTotal(companyDept, vos,true);
|
|
|
+ totalVos.add(vo);
|
|
|
+ } else {
|
|
|
+ for (CompanyDept companyDept : companyDeptList) {
|
|
|
+ FsStoreOrderCountsVO vo = addTotal(companyDept, vos,false);
|
|
|
+ totalVos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vos.addAll(totalVos);
|
|
|
+ }
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
+ private FsStoreOrderCountsVO addTotal(CompanyDept companyDept, List<FsStoreOrderCountsVO> vos,boolean isEmpty) {
|
|
|
+ FsStoreOrderCountsVO vo = new FsStoreOrderCountsVO();
|
|
|
+ Long totalCalls = 0L;
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
+ BigDecimal validAmount = BigDecimal.ZERO;
|
|
|
+ Long waitingOrders = 0L;
|
|
|
+ BigDecimal waitingAmount = BigDecimal.ZERO;
|
|
|
+ Long unPassedOrders = 0L;
|
|
|
+ BigDecimal unPassedAmount = BigDecimal.ZERO;
|
|
|
+ Long cancelOrders = 0L;
|
|
|
+ BigDecimal cancelAmount = BigDecimal.ZERO;
|
|
|
+ Long unshippedOrders = 0L;
|
|
|
+ BigDecimal unshippedAmount = BigDecimal.ZERO;
|
|
|
+ Long shippedOrders = 0L;
|
|
|
+ BigDecimal shippedAmount = BigDecimal.ZERO;
|
|
|
+ Long transitOrders = 0L;
|
|
|
+ BigDecimal transitAmount = BigDecimal.ZERO;
|
|
|
+ Long receivedOrders = 0L;
|
|
|
+ BigDecimal receivedAmount = BigDecimal.ZERO;
|
|
|
+ Long returnOrders = 0L;
|
|
|
+ BigDecimal returnAmount = BigDecimal.ZERO;
|
|
|
+ Long paybackOrders = 0L;
|
|
|
+ BigDecimal paybackAmount = BigDecimal.ZERO;
|
|
|
+ vo.setName("组名:"+ companyDept.getDeptName());
|
|
|
+ Long deptId = companyDept.getDeptId();
|
|
|
+ vo.setDeptId(deptId);
|
|
|
+ for (FsStoreOrderCountsVO orderCountsVO : vos) {
|
|
|
+ if (!isEmpty){
|
|
|
+ if (!Objects.equals(deptId, orderCountsVO.getDeptId())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ orderCountsVO.setIsGroup(false);
|
|
|
+ orderCountsVO.setGroupName(companyDept.getDeptName());
|
|
|
+ totalCalls = totalCalls + orderCountsVO.getTotalCalls();
|
|
|
+ totalAmount = totalAmount.add(orderCountsVO.getTotalAmount());
|
|
|
+ validAmount = validAmount.add(orderCountsVO.getValidAmount());
|
|
|
+ waitingOrders = waitingOrders + orderCountsVO.getWaitingOrders();
|
|
|
+ waitingAmount = waitingAmount.add(orderCountsVO.getWaitingAmount());
|
|
|
+ unPassedOrders = unPassedOrders + orderCountsVO.getUnPassedOrders();
|
|
|
+ unPassedAmount = unPassedAmount.add(orderCountsVO.getUnPassedAmount());
|
|
|
+ cancelOrders = cancelOrders + orderCountsVO.getCancelOrders();
|
|
|
+ cancelAmount = cancelAmount.add(orderCountsVO.getCancelAmount());
|
|
|
+ unshippedOrders = unshippedOrders + orderCountsVO.getUnshippedOrders();
|
|
|
+ unshippedAmount = unshippedAmount.add(orderCountsVO.getUnshippedAmount());
|
|
|
+ shippedOrders = shippedOrders + orderCountsVO.getShippedOrders();
|
|
|
+ shippedAmount = shippedAmount.add(orderCountsVO.getShippedAmount());
|
|
|
+ transitOrders = transitOrders + orderCountsVO.getTransitOrders();
|
|
|
+ transitAmount = transitAmount.add(orderCountsVO.getTransitAmount());
|
|
|
+ receivedOrders = receivedOrders + orderCountsVO.getReceivedOrders();
|
|
|
+ receivedAmount = receivedAmount.add(orderCountsVO.getReceivedAmount());
|
|
|
+ returnOrders = returnOrders + orderCountsVO.getReturnOrders();
|
|
|
+ returnAmount = returnAmount.add(orderCountsVO.getReturnAmount());
|
|
|
+ paybackOrders = paybackOrders + orderCountsVO.getPaybackOrders();
|
|
|
+ paybackAmount = paybackAmount.add(orderCountsVO.getPaybackAmount());
|
|
|
+ }
|
|
|
+ vo.setTotalCalls(totalCalls);
|
|
|
+ vo.setTotalAmount(totalAmount);
|
|
|
+ vo.setValidAmount(validAmount);
|
|
|
+ vo.setWaitingOrders(waitingOrders);
|
|
|
+ vo.setWaitingAmount(waitingAmount);
|
|
|
+ vo.setUnPassedOrders(unPassedOrders);
|
|
|
+ vo.setUnPassedAmount(unPassedAmount);
|
|
|
+ vo.setCancelOrders(cancelOrders);
|
|
|
+ vo.setCancelAmount(cancelAmount);
|
|
|
+ vo.setUnshippedOrders(unshippedOrders);
|
|
|
+ vo.setUnshippedAmount(unshippedAmount);
|
|
|
+ vo.setShippedOrders(shippedOrders);
|
|
|
+ vo.setShippedAmount(shippedAmount);
|
|
|
+ vo.setTransitOrders(transitOrders);
|
|
|
+ vo.setTransitAmount(transitAmount);
|
|
|
+ vo.setReceivedOrders(receivedOrders);
|
|
|
+ vo.setReceivedAmount(receivedAmount);
|
|
|
+ vo.setReturnOrders(returnOrders);
|
|
|
+ vo.setReturnAmount(returnAmount);
|
|
|
+ vo.setPaybackOrders(paybackOrders);
|
|
|
+ vo.setPaybackAmount(paybackAmount);
|
|
|
+ vo.setIsGroup(true);
|
|
|
+ vo.setGroupName(companyDept.getDeptName());
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
}
|