From ffb7bf307d13056bcf244b949cfe2f0ff15e0001 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 12 二月 2025 14:14:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'gitee/master'

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java     |   13 ++++
 medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java                |    2 
 medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java              |    7 ++
 medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppLoginController.java           |   29 +++++++++
 medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java |   64 +++++++++++++++++++--
 medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java                       |   34 +++++++++-
 medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwApplicationController.java   |   15 ++++
 medicalWaste-system/src/main/java/com/sinata/system/domain/MwDisposalRecordItem.java                |   10 ---
 8 files changed, 149 insertions(+), 25 deletions(-)

diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppLoginController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppLoginController.java
index 42a86cb..c394ef1 100644
--- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppLoginController.java
+++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppLoginController.java
@@ -12,6 +12,7 @@
 import com.sinata.common.core.domain.entity.SysUser;
 import com.sinata.common.core.domain.model.LoginBody;
 import com.sinata.common.core.domain.model.LoginUser;
+import com.sinata.common.core.redis.RedisCache;
 import com.sinata.common.utils.SecurityUtils;
 import com.sinata.common.utils.StringUtils;
 import com.sinata.framework.web.service.SysLoginService;
@@ -31,6 +32,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -72,6 +74,8 @@
     private AliSmsService aliSmsService;
     @Resource
     private ISysUserService userService;
+    @Autowired
+    private RedisCache redisCache;
 
 
     @PostMapping("/getCode")
@@ -79,11 +83,29 @@
     public AjaxResult getCode(String phone)
     {
         Random random = new Random();
-
+        List<SysUser> list = userService.lambdaQuery().eq(SysUser::getPhonenumber, phone).list();
+        if (list.isEmpty()){
+            return AjaxResult.error("当前手机号没有对应用户,请联系管理员");
+        }
         int i = 100000 + random.nextInt(900000);
         aliSmsService.sendLoginCode(phone, String.valueOf(i));
+        redisCache.setCacheObject(String.valueOf(phone), String.valueOf(i));
         return AjaxResult.success();
     }
+
+
+    @PostMapping("/set/getCode")
+    @ApiOperation("获取验证码")
+    public AjaxResult setgetCode(String phone)
+    {
+        Random random = new Random();
+        int i = 100000 + random.nextInt(900000);
+        aliSmsService.sendLoginCode(phone, String.valueOf(i));
+        redisCache.setCacheObject(String.valueOf(phone), String.valueOf(i));
+        return AjaxResult.success();
+    }
+
+
     @Resource
     private WeChatUtil weChatUtil;
 
@@ -132,7 +154,10 @@
 //        }
 
         List<SysMenu> menus = roleService.roleInfoFromUserId(loginUser.getUserId());
-
+        String string = redisCache.getCacheObject(loginBody.getUsername()).toString();
+        if (!loginBody.getCode().equals(string)){
+            return AjaxResult.error("验证码错误,请重试");
+        }
 //        ajax.put("menus", menus);
         ajax.put("userInfo", loginUser);
         return ajax;
diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwApplicationController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwApplicationController.java
index 2062b21..58defe4 100644
--- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwApplicationController.java
+++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwApplicationController.java
@@ -1,11 +1,15 @@
 package com.sinata.web.controller.applet;
 
+import com.sinata.common.core.domain.AjaxResult;
 import com.sinata.common.core.domain.R;
+import com.sinata.common.core.redis.RedisCache;
+import com.sinata.common.entity.PageDTO;
 import com.sinata.system.domain.MwApplication;
 import com.sinata.system.service.MwApplicationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -13,6 +17,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.Date;
 
 /**
  * <p>
@@ -29,11 +34,19 @@
 @RequestMapping("/applet/mwApplication")
 public class AppMwApplicationController {
     private final MwApplicationService mwApplicationService;
+    @Autowired
+    private RedisCache redisCache;
 
     @ApiOperation("提交入驻申请")
     @PostMapping("/set")
     public R pageList(@Valid @RequestBody MwApplication mwApplication) {
-        mwApplicationService.saveApplication(mwApplication);
+        String string = redisCache.getCacheObject(mwApplication.getPhone()).toString();
+        if (!mwApplication.getCode().equals(string)){
+            return R.fail("验证码错误,请重试");
+        }
+        mwApplication.setAuditStatus(1);
+        mwApplication.setCreateTime(new Date());
+        mwApplicationService.save(mwApplication);
         return R.ok();
     }
 }
diff --git a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java
index 097d264..f414bf7 100644
--- a/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java
+++ b/medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppMwCollectRecordController.java
@@ -3,13 +3,18 @@
 import java.math.BigDecimal;
 import java.util.*;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson2.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sinata.common.core.domain.R;
 import com.sinata.common.core.domain.entity.SysDictData;
 import com.sinata.common.core.domain.entity.SysUser;
 import com.sinata.common.entity.PageDTO;
+import com.sinata.common.utils.DateUtils;
 import com.sinata.common.utils.SecurityUtils;
+import com.sinata.common.utils.StringUtils;
 import com.sinata.system.domain.*;
 import com.sinata.system.domain.dto.*;
 import com.sinata.system.domain.query.MwCollectRecordQuery;
@@ -29,6 +34,7 @@
 import javax.validation.Valid;
 import java.io.IOException;
 import java.time.LocalDate;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -59,6 +65,8 @@
     private final MwStagingRoomService roomService;
     private final ISysDictDataService dictDataService;
     private final MwTransitCarService carService;
+    private final MwTransitCarCollectPointService mwTransitCarCollectPointService;
+    private final MwTransitRouteService transitRouteService;
 
 
     @ApiOperation(value = "新增医废记录")
@@ -82,6 +90,7 @@
         mwCollectRecord.setStagingRoomId(one1.getId());
         mwCollectRecord.setDepartmentId(sysUser.getDepartmentId());
         mwCollectRecord.setBoxTime(new Date());
+        mwCollectRecord.setCollectUserId(sysUser.getUserId());
 
         // 创建一个随机数生成器实例
         Random random = new Random();
@@ -160,6 +169,32 @@
         MwBox byId = boxService.getById(list.get(0).getStagingRoomId());
         byId.setLink(2);
         boxService.updateById(byId);
+
+        //查询当前医废收集路线
+        Long departmentId = list.get(0).getDepartmentId();
+        MwTransitRoute route = transitRouteService.queryRouteByDepartmentId(departmentId);
+        if (Objects.nonNull(route)){
+            //查询当前车辆已运输路线记录
+            MwTransitCarCollectPoint carCollectPoint = mwTransitCarCollectPointService.lambdaQuery().eq(MwTransitCarCollectPoint::getCarId, sysUser.getCarId())
+                    .eq(MwTransitCarCollectPoint::getRouteId, route.getId())
+                    .eq(MwTransitCarCollectPoint::getTransitDate, DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN))
+                    .last("LIMIT 1").one();
+            List<Long> departmentIdList = new ArrayList<>();
+            //如果当前收集医院不是第一家且当前收集医院未被记录
+            if (Objects.nonNull(carCollectPoint) && !carCollectPoint.getPointList().contains(departmentId.toString())){
+                departmentIdList = JSONArray.parseArray(carCollectPoint.getPointList(), Long.class);
+                departmentIdList.add(departmentId);
+            }else if (Objects.isNull(carCollectPoint) ){//当前医院为第一个收集的医院
+                carCollectPoint = new MwTransitCarCollectPoint();
+                carCollectPoint.setCarId(carCollectPoint.getCarId());
+                carCollectPoint.setRouteId(route.getId());
+                carCollectPoint.setTransitDate(new Date());
+                departmentIdList.add(departmentId);
+            }
+            carCollectPoint.setPointList(JSONArray.toJSONString(departmentIdList));
+            mwTransitCarCollectPointService.saveOrUpdate(carCollectPoint);
+        }
+
         return R.ok();
 
     }
@@ -294,10 +329,22 @@
             mwDisposalRecordItem.setDisposalRecordId(mwDisposalRecord.getId());
             items.add(mwDisposalRecordItem);
         }
-
-
-
         disposalRecordItemService.saveBatch(items);
+        MwTransitRoute route = transitRouteService.queryRouteByDepartmentId(list.get(0).getDepartmentId());
+        if (Objects.nonNull(route)) {
+            //查询当前车辆已运输路线记录
+            MwTransitCarCollectPoint carCollectPoint = mwTransitCarCollectPointService.lambdaQuery().eq(MwTransitCarCollectPoint::getCarId, sysUser.getCarId())
+                    .eq(MwTransitCarCollectPoint::getRouteId, route.getId())
+                    .eq(MwTransitCarCollectPoint::getTransitDate, DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN))
+                    .last("LIMIT 1").one();
+            List<Long> departmentIdList = new ArrayList<>();
+            if (Objects.nonNull(carCollectPoint)) {
+                departmentIdList = JSONArray.parseArray(carCollectPoint.getPointList(), Long.class);
+                departmentIdList.add(byId.getId());
+                carCollectPoint.setPointList(JSONArray.toJSONString(departmentIdList));
+                mwTransitCarCollectPointService.updateById(carCollectPoint);
+            }
+        }
         return R.ok();
     }
 
@@ -327,6 +374,11 @@
         mwDisposalHandleRecord.setDriverId(list.get(0).getDriverId());
         mwDisposalHandleRecord.setCarId(list.get(0).getCarId());
         disposalHandleRecordService.save(mwDisposalHandleRecord);
+        List<Long> collectIdList = list.stream().map(MwCollectRecord::getId).collect(Collectors.toList());
+        //查询收集记录对应的接收记录
+        List<MwDisposalRecordItem> disposalRecordItems = disposalRecordItemService.lambdaQuery().in(MwDisposalRecordItem::getCollectRecordId, collectIdList).list();
+        Map<Long, Long> disposalRecordItemMap = disposalRecordItems.stream().collect(Collectors.toMap(MwDisposalRecordItem::getCollectRecordId, MwDisposalRecordItem::getDisposalRecordId));
+
         //将收集记录以及子表改变为已处置
         if (!list.isEmpty()) {
             List<Long> ids = new ArrayList<>();
@@ -338,10 +390,11 @@
                 mwCollectRecord.setDisposalTime(new Date());
                 MwDisposalHandleRecordItem mwDisposalHandleRecordItem = new MwDisposalHandleRecordItem();
                 mwDisposalHandleRecordItem.setCollectRecordId(mwCollectRecord.getId());
-                mwDisposalHandleRecordItem.setDisposalRecordId(mwDisposalHandleRecord.getId());
+                mwDisposalHandleRecordItem.setDisposalHandleRecordId(mwDisposalHandleRecord.getId());
+                mwDisposalHandleRecordItem.setDisposalRecordId(disposalRecordItemMap.getOrDefault(mwCollectRecord.getId(), null));
                 mwDisposalHandleRecordItems.add(mwDisposalHandleRecordItem);
             }
-//            disposalHandleRecordItemService.saveBatch(mwDisposalHandleRecordItems);
+            disposalHandleRecordItemService.saveBatch(mwDisposalHandleRecordItems);
             collectRecordService.updateBatchById(list);
         }
 //            //将接收记录以及子表变为已处置
@@ -382,7 +435,6 @@
         //通过车辆id查询列表
         List<CollectCarTotalUpDto> list = collectRecordService.carGroup(byId.getCarId(),name);
         return R.ok(list);
-
     }
 
     @ApiOperation(value = "已装车列表详情",tags = "运输人员")
diff --git a/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java b/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java
index f9b99db..c1f95c3 100644
--- a/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java
+++ b/medicalWaste-framework/src/main/java/com/sinata/framework/config/SecurityConfig.java
@@ -111,7 +111,7 @@
             .authorizeHttpRequests((requests) -> {
                 permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll());
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
-                requests.antMatchers("/backend/login", "/applet/mwApplication/set", "/applet/file/upload", "/applet/sysDepartment/departmentSearchTree", "/applet/getCode", "/applet/login", "/register", "/captchaImage", "/applet/sysAgreement/get", "/applet/sysAgreement/primary/get").permitAll()
+                requests.antMatchers("/backend/login","/applet/mwApplication/set","/applet/file/upload","/applet/sysDepartment/departmentSearchTree","/applet/set/getCode","/applet/getCode","/applet/login", "/register", "/captchaImage", "/applet/sysAgreement/get", "/applet/sysAgreement/primary/get").permitAll()
                     // 静态资源,可匿名访问
                         .antMatchers(HttpMethod.GET, "/", "/msg", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                     .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java
index b85043b..a1f0d18 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwApplication.java
@@ -1,14 +1,13 @@
 package com.sinata.system.domain;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.sinata.common.entity.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
+
+import java.util.Date;
 
 /**
  * <p>
@@ -22,7 +21,7 @@
 @Setter
 @TableName("MW_APPLICATION")
 @ApiModel(value = "MwApplication对象", description = "入驻申请")
-public class MwApplication extends BaseModel {
+public class MwApplication {
 
     private static final long serialVersionUID = 1L;
 
@@ -84,4 +83,29 @@
     @TableField("RELATION")
     private String relation;
 
+    /** 创建者 */
+    @ApiModelProperty(value = "记录创建人,前端忽略")
+    private Long createBy;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "记录创建时间,前端忽略")
+    private Date createTime;
+
+    /** 更新者 */
+    @ApiModelProperty(value = "记录修改人,前端忽略")
+    @TableField(value = "update_by", fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    /** 更新时间 */
+    @ApiModelProperty(value = "记录修改时间,前端忽略")
+    @TableField(value = "update_time", fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 是否删除 0未删除 1已删除 */
+    @TableField("del_flag")
+    @ApiModelProperty(value = "是否删除 0未删除 1已删除")
+    @TableLogic
+    private Integer delFlag;
+
+
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwDisposalRecordItem.java b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwDisposalRecordItem.java
index 03feada..01800ae 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/domain/MwDisposalRecordItem.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/domain/MwDisposalRecordItem.java
@@ -37,17 +37,7 @@
     @TableField("DISPOSAL_RECORD_ID")
     private Long disposalRecordId;
 
-    @ApiModelProperty("是否处置 1:是 0:否")
-    @TableField("DISPOSAL_FLAG")
-    private Integer disposalFlag;
 
-    @ApiModelProperty("处置时间")
-    @TableField("DISPOSAL_TIME")
-    private Date disposalTime;
-
-    @ApiModelProperty("处置人id")
-    @TableField("DISPOSAL_USER_ID")
-    private Long disposalUserId;
 
 
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java b/medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java
index 218b173..8694dd6 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/MwTransitRouteService.java
@@ -54,4 +54,11 @@
      * @param id
      */
     void delete(Long id);
+
+    /**
+     * 根据医院查询路线
+     * @param departmentId
+     * @return
+     */
+    MwTransitRoute queryRouteByDepartmentId(Long departmentId);
 }
diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
index 7962370..d5327f9 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
@@ -146,4 +146,17 @@
         mwTransitRouteCarService.lambdaUpdate().eq(MwTransitRouteCar::getRouteId, id).remove();
         removeById(id);
     }
+    /**
+     * 根据医院查询路线
+     * @param departmentId
+     * @return
+     */
+    @Override
+    public MwTransitRoute queryRouteByDepartmentId(Long departmentId) {
+        MwTransitRoutePoints routePoint = mwTransitRoutePointsService.lambdaQuery().eq(MwTransitRoutePoints::getDepartmentId, departmentId).last("LIMIT 1").one();
+        if (Objects.nonNull(routePoint)) {
+            return this.getById(routePoint.getRouteId());
+        }
+        return null;
+    }
 }

--
Gitblit v1.7.1