Huanyi пре 1 месец
родитељ
комит
25586dfa09

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysStoreController.java

@@ -148,4 +148,9 @@ public class SysStoreController extends BaseController {
         return toAjax(sysStoreService.ban(bo));
     }
 
+    @GetMapping("/listOnDispatch")
+    public R<List<SysStoreDispatchVo>> listOnDispatch(@RequestParam Long site) {
+        return R.ok(sysStoreService.listOnDispatch(site));
+    }
+
 }

+ 27 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStoreDispatchVo.java

@@ -0,0 +1,27 @@
+package org.dromara.system.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+public class SysStoreDispatchVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    private String name;
+
+    private Long site;
+
+    private String areaCode;
+
+    private BigDecimal longitude;
+
+    private BigDecimal latitude;
+
+}

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysStoreService.java

@@ -83,4 +83,6 @@ public interface ISysStoreService {
     boolean renew(SysStoreRenewBo bo);
 
     boolean ban(SysStoreBanBo bo);
+
+    List<SysStoreDispatchVo> listOnDispatch(Long site);
 }

+ 23 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysStoreServiceImpl.java

@@ -313,4 +313,27 @@ public class SysStoreServiceImpl implements ISysStoreService {
                 .set(SysStore::getStatus, SysStoreStatusEnum.BANNED.getValue())
         ) > 0;
     }
+
+    @Override
+    public List<SysStoreDispatchVo> listOnDispatch(Long site) {
+
+        List<SysStoreDispatchVo> vos = new ArrayList<>();
+
+        baseMapper.selectList(
+            Wrappers.lambdaQuery(SysStore.class)
+                .eq(SysStore::getSite, site)
+                .eq(SysStore::getStatus, SysStoreStatusEnum.IN_OPERATION.getValue())
+        ).forEach(e -> {
+            SysStoreDispatchVo vo = new SysStoreDispatchVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setSite(e.getSite());
+            vo.setAreaCode(e.getAreaCode());
+            vo.setLongitude(e.getLongitude());
+            vo.setLatitude(e.getLatitude());
+            vos.add(vo);
+        });
+
+        return vos;
+    }
 }

+ 5 - 4
ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/controller/FlfFulfillerController.java

@@ -275,14 +275,15 @@ public class FlfFulfillerController extends BaseController {
     @GetMapping("/pageOnOrder")
     public TableDataInfo<FlfFulfillerOnOrderVo> pageOnOrder(
         @RequestParam(name = "content", required = false) String content,
+        @RequestParam Long service,
         PageQuery pageQuery
     ) {
-        return fulfillerService.pageOnOrder(content, pageQuery);
+        return fulfillerService.pageOnOrder(service, content, pageQuery);
     }
 
-    @GetMapping("/listAllOnOrder")
-    public R<List<FlfFulfillerOnOrderVo>> listAllOnOrder() {
-        return R.ok(fulfillerService.listAllOnOrder());
+    @GetMapping("/listAllOnDispatch")
+    public R<List<FlfFulfillerOnOrderVo>> listAllOnDispatch(@RequestParam(name = "service", required = false) Long service) {
+        return R.ok(fulfillerService.listAllOnDispatch(service));
     }
 
 }

+ 5 - 0
ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/domain/vo/FlfFulfillerOnOrderVo.java

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 @Data
@@ -24,4 +25,8 @@ public class FlfFulfillerOnOrderVo implements Serializable {
 
     private List<Long> tags;
 
+    private String serviceTypes;
+
+    private Date nextOrderTime;
+
 }

+ 3 - 1
ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/service/IFlfFulfillerService.java

@@ -127,7 +127,9 @@ public interface IFlfFulfillerService {
      */
     Boolean updateAuthInfoByUserId(Long userId, java.util.Map<String, String> params);
 
-    TableDataInfo<FlfFulfillerOnOrderVo> pageOnOrder(String content, PageQuery pageQuery);
+    TableDataInfo<FlfFulfillerOnOrderVo> pageOnOrder(Long service, String content, PageQuery pageQuery);
 
     List<FlfFulfillerOnOrderVo> listAllOnOrder();
+
+    List<FlfFulfillerOnOrderVo> listAllOnDispatch(Long service);
 }

+ 52 - 1
ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/service/impl/FlfFulfillerServiceImpl.java

@@ -12,6 +12,7 @@ import cn.hutool.crypto.digest.BCrypt;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.common.mybatis.helper.DataBaseHelper;
 import org.dromara.common.mybatis.utils.WrapperUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.fulfiller.domain.vo.FlfFulfillerOnOrderVo;
@@ -553,7 +554,7 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
     }
 
     @Override
-    public TableDataInfo<FlfFulfillerOnOrderVo> pageOnOrder(String content, PageQuery pageQuery) {
+    public TableDataInfo<FlfFulfillerOnOrderVo> pageOnOrder(Long service, String content, PageQuery pageQuery) {
 
         Page<FlfFulfiller> page = baseMapper.selectPage(
             pageQuery.build(),
@@ -563,6 +564,7 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
                 .and(StringUtils.isNotBlank(content), wrapper -> wrapper
                     .like(FlfFulfiller::getName, content).or().like(FlfFulfiller::getPhone, content)
                 )
+//                .apply(DataBaseHelper.findInSet(service, "service_types"))
         );
         List<Long> fulfillerIds = new ArrayList<>();
         List<Long> avatarIds = new ArrayList<>();
@@ -594,6 +596,8 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
             vo.setPhone(e.getPhone());
             vo.setTags(tagMap.get(e.getId()));
             vo.setStatus(e.getStatus());
+            vo.setServiceTypes(e.getServiceTypes());
+            vo.setNextOrderTime(new Date());
             return vo;
         }));
     }
@@ -635,6 +639,53 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
             vo.setPhone(e.getPhone());
             vo.setTags(tagMap.get(e.getId()));
             vo.setStatus(e.getStatus());
+            vo.setServiceTypes(e.getServiceTypes());
+            vo.setNextOrderTime(new Date());
+            vos.add(vo);
+        });
+
+        return vos;
+    }
+
+    @Override
+    public List<FlfFulfillerOnOrderVo> listAllOnDispatch(Long service) {
+
+        List<FlfFulfiller> flfFulfillers = baseMapper.selectList();
+
+        List<Long> fulfillerIds = new ArrayList<>();
+        List<Long> avatarIds = new ArrayList<>();
+        flfFulfillers.forEach(e -> {
+            fulfillerIds.add(e.getId());
+            if ((StringUtils.isNotBlank(e.getAvatar()))) {
+                avatarIds.add(Long.parseLong(e.getAvatar()));
+            }
+        });
+        Map<Long, List<Long>> tagMap = new HashMap<>();
+        Map<Long, RemoteFile> avatarMap = new HashMap<>();
+        tagRelMapper.selectList(
+            Wrappers.lambdaQuery(SysTagRel.class)
+                .eq(SysTagRel::getTargetType, "fulfiller")
+                .in(SysTagRel::getTargetId, WrapperUtils.convertIds(fulfillerIds))
+        ).forEach(e -> tagMap.computeIfAbsent(e.getTargetId(), k -> new ArrayList<>()).add(e.getTagId()));
+
+        remoteFileService.selectByIds(avatarIds).forEach(e -> avatarMap.put(e.getOssId(), e));
+
+        List<FlfFulfillerOnOrderVo> vos = new ArrayList<>();
+
+        flfFulfillers.forEach(e -> {
+            FlfFulfillerOnOrderVo vo = new FlfFulfillerOnOrderVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setAvatar(
+                Optional.ofNullable(e.getAvatar())
+                    .map(id -> avatarMap.get(Long.parseLong(id)).getUrl())
+                    .orElse(null)
+            );
+            vo.setPhone(e.getPhone());
+            vo.setTags(tagMap.get(e.getId()));
+            vo.setStatus(e.getStatus());
+            vo.setServiceTypes(e.getServiceTypes());
+            vo.setNextOrderTime(new Date());
             vos.add(vo);
         });
 

+ 10 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/controller/SysSubOrderController.java

@@ -1,5 +1,6 @@
 package org.dromara.order.controller;
 
+import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -9,8 +10,12 @@ import org.dromara.common.web.core.BaseController;
 import org.dromara.order.domain.bo.*;
 import org.dromara.order.domain.vo.*;
 import org.dromara.order.service.ISysSubOrderService;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
+@Validated
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/subOrder")
@@ -85,4 +90,9 @@ public class SysSubOrderController extends BaseController {
         return toAjax(subOrderService.nursingSummary(bo));
     }
 
+    @GetMapping("/listOnDispatch")
+    public R<List<SysSubOrderOnDispatchVo>> listOnDispatch(@RequestParam(name = "service", required = false) Long service, @NotNull(message = "必须选择一个站点") @RequestParam Long site) {
+        return R.ok(subOrderService.listOnDispatch(service, site));
+    }
+
 }

+ 32 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderOnDispatchVo.java

@@ -0,0 +1,32 @@
+package org.dromara.order.domain.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SysSubOrderOnDispatchVo {
+
+    private Long id;
+
+    private String code;
+
+    private Long service;
+
+    private Integer mode;
+
+    private Integer type;
+
+    private String fromCode;
+
+    private String fromAddress;
+
+    private String toCode;
+
+    private String toAddress;
+
+    private Date serviceTime;
+
+    private Integer status;
+
+}

+ 4 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/ISysSubOrderService.java

@@ -5,6 +5,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.order.domain.bo.*;
 import org.dromara.order.domain.vo.*;
 
+import java.util.List;
+
 public interface ISysSubOrderService {
     TableDataInfo<SysSubOrderListPageVo> list(SysSubOrderListPageBo bo, PageQuery pageQuery);
 
@@ -31,4 +33,6 @@ public interface ISysSubOrderService {
     boolean confirm(SysSubOrderConfirmBo bo);
 
     boolean nursingSummary(SysSubOrderNursingSummaryBo bo);
+
+    List<SysSubOrderOnDispatchVo> listOnDispatch(Long service, Long site);
 }

+ 31 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/impl/SysSubOrderServiceImpl.java

@@ -570,4 +570,35 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
                 .set(SysSubOrder::getNursingSummaryTime, new Date())
         ) > 0;
     }
+
+    @Override
+    public List<SysSubOrderOnDispatchVo> listOnDispatch(Long service, Long site) {
+
+        List<SysSubOrderOnDispatchVo> vos = new ArrayList<>();
+
+        List<SysSubOrder> sysSubOrders = baseMapper.selectList(
+            Wrappers.lambdaQuery(SysSubOrder.class)
+                .orderByDesc(SysSubOrder::getId)
+                .eq(service != null, SysSubOrder::getService, service)
+                .eq(SysSubOrder::getStoreSite, site)
+        );
+
+        sysSubOrders.forEach(e -> {
+            SysSubOrderOnDispatchVo vo = new SysSubOrderOnDispatchVo();
+            vo.setId(e.getId());
+            vo.setCode(e.getCode());
+            vo.setService(e.getService());
+            vo.setMode(e.getMode());
+            vo.setType(e.getType());
+            vo.setFromCode(e.getFromCode());
+            vo.setFromAddress(e.getFromAddress());
+            vo.setToCode(e.getToCode());
+            vo.setToAddress(e.getToAddress());
+            vo.setServiceTime(e.getServiceTime());
+            vo.setStatus(e.getStatus());
+            vos.add(vo);
+        });
+
+        return vos;
+    }
 }