Ver código fonte

Merge branch 'master' of http://8.152.4.3:3000/yp_other/pet-system

steelwei 1 mês atrás
pai
commit
737a745d6e
21 arquivos alterados com 241 adições e 15 exclusões
  1. 3 3
      pom.xml
  2. 3 3
      ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/CustomBeanFactoryPostProcessor.java
  3. 5 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysStoreController.java
  4. 27 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStoreDispatchVo.java
  5. 2 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysStoreService.java
  6. 23 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysStoreServiceImpl.java
  7. 5 4
      ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/controller/FlfFulfillerController.java
  8. 5 0
      ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/domain/vo/FlfFulfillerOnOrderVo.java
  9. 3 1
      ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/service/IFlfFulfillerService.java
  10. 52 1
      ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/service/impl/FlfFulfillerServiceImpl.java
  11. 10 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/controller/SysSubOrderController.java
  12. 2 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderLogVo.java
  13. 32 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderOnDispatchVo.java
  14. 2 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderVo.java
  15. 4 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/ISysSubOrderService.java
  16. 1 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/impl/SysSubOrderLogServiceImpl.java
  17. 32 1
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/impl/SysSubOrderServiceImpl.java
  18. 16 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/SysService.java
  19. 4 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/bo/SysServiceBo.java
  20. 5 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/vo/SysServiceVo.java
  21. 5 2
      script/sql/business/update.sql

+ 3 - 3
pom.xml

@@ -69,14 +69,14 @@
             <properties>
                 <!-- 环境标识,需要与配置文件的名称相对应 -->
                 <profiles.active>dev</profiles.active>
-                <nacos.server>192.168.0.102:8848</nacos.server>
+                <nacos.server>192.168.0.104:8848</nacos.server>
                 <nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
                 <nacos.config.group>DEFAULT_GROUP</nacos.config.group>
                 <nacos.username>nacos</nacos.username>
                 <nacos.password>nacos</nacos.password>
                 <logstash.address>127.0.0.1:4560</logstash.address>
-                <discovery.ip>192.168.0.102</discovery.ip>
-                <nacos.ip>192.168.0.102</nacos.ip>
+                <discovery.ip>192.168.0.104</discovery.ip>
+                <nacos.ip>192.168.0.104</nacos.ip>
             </properties>
         </profile>
         <profile>

+ 3 - 3
ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/CustomBeanFactoryPostProcessor.java

@@ -64,9 +64,9 @@ public class CustomBeanFactoryPostProcessor implements BeanFactoryPostProcessor,
 
         // 创建临时的 InetUtils 实例
         try (InetUtils inetUtils = new InetUtils(properties)) {
-//          String ip = "127.0.0.1";
-//          String ip = "192.168.0.102";
-           String ip = "192.168.1.118";
+//            String ip = "127.0.0.1";
+//            String ip = "192.168.0.104";
+            String ip = "192.168.1.118";
             // 获取第一个非回环地址
             InetAddress address = inetUtils.findFirstNonLoopbackAddress();
             if (address != null) {

+ 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));
+    }
+
 }

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

@@ -84,4 +84,6 @@ public class SysSubOrderLogVo implements Serializable {
 
     private List<String> photoUrls;
 
+    private Date createTime;
+
 }

+ 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;
+
+}

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

@@ -138,4 +138,6 @@ public class SysSubOrderVo implements Serializable {
 
     private String groupPurchasePackageName;
 
+    private Long pet;
+
 }

+ 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);
 }

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

@@ -29,6 +29,7 @@ public class SysSubOrderLogServiceImpl implements ISysSubOrderLogService {
         List<SysSubOrderLogVo> vos = baseMapper.selectVoList(
             Wrappers.lambdaQuery(SysSubOrderLog.class)
                 .eq(SysSubOrderLog::getSubOrderId, orderId)
+                .orderByDesc(SysSubOrderLog::getId)
         );
 
         List<Long> ossIds = new ArrayList<>();

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

@@ -344,7 +344,7 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
     public boolean accept(SysSubOrderAcceptBo bo) {
 
         SysSubOrder subOrder = baseMapper.selectById(bo.getOrderId());
-        subOrder.setStatus(OrderStatusEnum.IN_SERVICE.getValue());
+        subOrder.setStatus(OrderStatusEnum.PENDING_SERVICE.getValue());
         boolean subOrderFlag = baseMapper.updateById(subOrder) == 0;
         if (subOrderFlag) {
             throw new RuntimeException("修改订单状态失败");
@@ -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;
+    }
 }

+ 16 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/SysService.java

@@ -60,5 +60,21 @@ public class SysService extends BaseEntity {
     @TableLogic
     private String delFlag;
 
+    /**
+     * 服务备注信息
+     * 这里作成 JSON 对象数组的理由是为后期做流程定制化处理的准备
+     * <pre>{@code
+     * [
+     *     {
+     *         "step": 1,
+     *         "title": "到达打卡",
+     *         "remark": "测试备注"
+     *     }
+     * ]
+     * }</pre>
+     *
+     * @Author: Huanyi
+     */
+    private String clockInRemark;
 
 }

+ 4 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/bo/SysServiceBo.java

@@ -56,5 +56,9 @@ public class SysServiceBo extends BaseEntity {
      */
     private String remark;
 
+    /**
+     * 打卡备注信息
+     */
+    private String clockInRemark;
 
 }

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

@@ -78,4 +78,9 @@ public class SysServiceVo implements Serializable {
     private Date createTime;
 
 
+    /**
+     * 打卡备注信息
+     */
+    private String clockInRemark;
+
 }

+ 5 - 2
script/sql/business/update.sql

@@ -194,5 +194,8 @@ insert into sys_dict_data values(144, '000000', 23, '中华田园猫',     '中
 ALTER TABLE `pet_system`.`sys_store` ADD COLUMN `area_code` varchar(255) NOT NULL COMMENT '区域编码';
 
 # 2026/03/09
-ALTER TABLE `pet_system`.`sys_sub_order` ADD  COLUMN `nursing_sammary` varchar(512) COMMENT '护理小结';
-ALTER TABLE `pet_system`.`sys_sub_order` ADD  COLUMN `nursing_sammary_time` datetime COMMENT '护理小结提交时间';
+ALTER TABLE `pet_system`.`sys_sub_order` ADD  COLUMN `nursing_summary` varchar(512) COMMENT '护理小结';
+ALTER TABLE `pet_system`.`sys_sub_order` ADD  COLUMN `nursing_summary_time` datetime COMMENT '护理小结提交时间';
+
+# 2026/03/10
+ALTER TABLE `pet_system`.`sys_service` ADD COLUMN `clock_in_remark` text COMMENT '打卡备注信息';