Ver código fonte

华统小程序

wwh 2 anos atrás
pai
commit
e259e44699

+ 25 - 9
huimv-admin/src/main/java/com/huimv/admin/common/token/TokenSign.java

@@ -12,21 +12,22 @@ public class TokenSign {
     /**
      * 过期时间7天
      */
-    private static final long EXPIRE_TIME= 7 * 24 * 60 * 60 * 1000;
+    private static final long EXPIRE_TIME = 7 * 24 * 60 * 60 * 1000;
 
     /**
      * 私钥,使用它生成token,最好进行下加密
      */
-    private static final String TOKEN_SECRET="Token";
+    private static final String TOKEN_SECRET = "Token";
     private static final String APP_SECRET = "ukc8BDbRigUDaY6pZFfWus2jZWLPHO";
     private static final int REFRESH_TIME = 300;
 
 
     /**
      * 产生token
+     *
      * @return
      */
-    public static String sign(String userName,Integer id,String farmIds){
+    public static String sign(String userName, Integer id, String farmIds, String workId) {
 
         String JwtToken = Jwts.builder()
                 //头部信息
@@ -38,8 +39,9 @@ public class TokenSign {
                 .setExpiration(new Date(System.currentTimeMillis() + EXPIRE_TIME))
                 //token主体部分,存储用户信息
                 .claim("userName", userName)
-                .claim("id",id)
-                .claim("farmIds",farmIds)
+                .claim("id", id)
+                .claim("farmIds", farmIds)
+                .claim("workId", workId)
                 .signWith(SignatureAlgorithm.HS256, APP_SECRET)
                 .compact();
 
@@ -49,11 +51,12 @@ public class TokenSign {
 
     /**
      * token校验是否正确
+     *
      * @param token
      * @return
      */
 
-    public static boolean verify(String token){
+    public static boolean verify(String token) {
 
         if (StringUtils.isBlank(token)) {
             return false;
@@ -81,11 +84,23 @@ public class TokenSign {
             return null;
         }
         Claims claims = getClaims(jwtToken);
-        if(ObjectUtil.isEmpty(claims)||ObjectUtil.isEmpty(claims.get("id"))){
+        if (ObjectUtil.isEmpty(claims) || ObjectUtil.isEmpty(claims.get("id"))) {
 
         }
         return (Integer) claims.get("id");
     }
+    /*根据token获取工作地点*/
+    public static String getWorkIdByJwtToken(HttpServletRequest request) {
+        String jwtToken = request.getHeader("accessToken");
+        if (StringUtils.isBlank(jwtToken)) {
+            return null;
+        }
+        Claims claims = getClaims(jwtToken);
+        if(ObjectUtil.isEmpty(claims)||ObjectUtil.isEmpty(claims.get("workId"))){
+
+        }
+        return (String) claims.get("workId");
+    }
 
     /**
      * 根据token获取用户类型
@@ -99,7 +114,7 @@ public class TokenSign {
             return null;
         }
         Claims claims = getClaims(jwtToken);
-        if(ObjectUtil.isEmpty(claims)||ObjectUtil.isEmpty(claims.get("type"))){
+        if (ObjectUtil.isEmpty(claims) || ObjectUtil.isEmpty(claims.get("type"))) {
 
         }
         return (Integer) claims.get("type");
@@ -133,12 +148,13 @@ public class TokenSign {
         try {
             Jws<Claims> claimsJws = Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken);
             return claimsJws.getBody();
-        }catch (Exception e){
+        } catch (Exception e) {
             return null;
         }
 
 
     }
+
     /**
      * 是否过期
      *

+ 8 - 1
huimv-admin/src/main/java/com/huimv/admin/common/utils/DataUill.java

@@ -145,5 +145,12 @@ public class DataUill {
         cal.add(Calendar.YEAR, -1);
         return cal.getTime();
     }
-  
+    public static Date getNextDay(Date date,Integer num) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_MONTH, +num);//+1今天的时间加一天
+        date = calendar.getTime();
+        return date;
+    }
+
 }

+ 25 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/BillCleanController.java

@@ -6,8 +6,18 @@ import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.service.IBillCleanService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IBillCleanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -35,4 +45,19 @@ public class BillCleanController {
         return new Result(ResultCode.SUCCESS,billCleanService.getById(paramsMap.get("id")));
     }
 
+    @Autowired
+    private IBillCleanService cleanService;
+
+    @RequestMapping("/listClean")
+    public Result listClean(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return cleanService.listAll(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listById")
+    public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return cleanService.listById(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/editClean")
+    public Result editClean(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return cleanService.commitClean(httpServletRequest, paramsMap);
+    }
 }

+ 24 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/BillPcrController.java

@@ -2,6 +2,12 @@ package com.huimv.admin.controller;
 
 
 import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IBillPcrService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.service.IBillPcrService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +16,10 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.Map;
+
 /**
  * <p>
  * pcr 表 前端控制器
@@ -24,6 +34,20 @@ import java.util.Map;
 public class BillPcrController {
 
     @Autowired
+    private IBillPcrService pcrService;
+    @RequestMapping("/listPcr")
+    public Result listPcr(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return pcrService.list(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listById")
+    public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return pcrService.listById(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/editPcr")
+    public Result editPcr(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return pcrService.edit(httpServletRequest, paramsMap);
+    }
+    @Autowired
     private IBillPcrService billPcrService;
 
     @PostMapping("/listPersonalPcr")

+ 47 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/BillPersonnelAdmissionController.java

@@ -2,6 +2,13 @@ package com.huimv.admin.controller;
 
 
 import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.BillIsolate;
+import com.huimv.admin.service.IBillPersonnelAdmissionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.BillPersonnelAdmission;
 import com.huimv.admin.service.IBillPersonnelAdmissionService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +20,10 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.Map;
+
 /**
  * <p>
  * 入场申请 前端控制器
@@ -70,4 +81,40 @@ public class BillPersonnelAdmissionController {
         return billPersonnelAdmissionService.getDetail(httpServletRequest,paramsMap);
     }
 
+    @Autowired
+    private IBillPersonnelAdmissionService admissionService;
+
+    @RequestMapping("/listPrc")
+    public Result listAll2(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return admissionService.listPrc(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listById")
+    public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return admissionService.listById(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/editStatus")
+    public Result editStatus(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return admissionService.editStatus(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listIsolate")
+    public Result listIsolate(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return admissionService.listIsolate(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/IsolateById")
+    public Result isolateById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return admissionService.isolateById(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/commitIsolate")
+    public Result listAll(HttpServletRequest httpServletRequest, @RequestBody BillIsolate billIsolate) {
+        return admissionService.commitIsolate(httpServletRequest, billIsolate);
+    }
+    @RequestMapping("/editIsolate")
+    public Result editIsolate(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return admissionService.editIsolate(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listClean")
+    public Result listClean(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return admissionService.listClean(httpServletRequest, paramsMap);
+    }
 }

+ 71 - 3
huimv-admin/src/main/java/com/huimv/admin/controller/LoginController.java

@@ -1,9 +1,11 @@
 package com.huimv.admin.controller;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.admin.common.utils.IpTools;
 import com.huimv.admin.entity.SysAccountMultilevel;
 import com.huimv.admin.service.ILoginService;
+import com.huimv.admin.service.ISysAccountMultilevelService;
 import com.huimv.admin.session.AccessToken;
 import com.huimv.admin.common.exception.ExceptionEnum;
 import com.huimv.admin.common.exception.MiException;
@@ -30,6 +32,8 @@ public class LoginController {
 
     @Autowired
     ILoginService iLoginService;
+    @Autowired
+    private ISysAccountMultilevelService accountMultilevelService;
 
     @RequestMapping("/test")
     public String logout() {
@@ -95,7 +99,7 @@ public class LoginController {
             accessToken.setCreated(new Date());
             accessToken.setAccountName(accountName);
             accessToken.setFarmId(accountEntity.getFarmIds());
-            String token = TokenSign.sign(accountName,id,accountEntity.getFarmIds());
+            String token = TokenSign.sign(accountName,id,accountEntity.getFarmIds(),null);
             accessToken.setToken(token);
 
             accessToken.setId(id);
@@ -116,7 +120,7 @@ public class LoginController {
     //测试-token
     @PostMapping(value = "/getToken")
     public String getToken(HttpServletRequest req)  {
-        String token =  TokenSign.sign("superadmin",1,null);
+        String token =  TokenSign.sign("superadmin",1,null,null);
         return  token;
     }
 
@@ -134,7 +138,7 @@ public class LoginController {
             accessToken.setFarmId(data.getFarmIds());
             accessToken.setType(data.getType());
             accessToken.setId(data.getId());
-            String token = TokenSign.sign(accountName,data.getId(),data.getFarmIds());
+            String token = TokenSign.sign(accountName,data.getId(),data.getFarmIds(),data.getWorkLocationId());
             accessToken.setToken(token);
             Integer lastFarmId = data.getLastFarmId();
             if (ObjectUtil.isEmpty(lastFarmId)){
@@ -148,4 +152,68 @@ public class LoginController {
         } 
     }
 
+
+    @RequestMapping("/logoutWeChat")
+    public Result logoutWeChat(HttpServletRequest req, @RequestBody Map<String, String> map) {
+        String remark = map.get("remark");
+        QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account", remark);
+        SysAccountMultilevel one = accountMultilevelService.getOne(queryWrapper);
+        AccessToken accessToken = new AccessToken();
+        if (ObjectUtil.isEmpty(one)) {
+            SysAccountMultilevel accountMultilevel = new SysAccountMultilevel();
+            accountMultilevel.setAccount(remark);
+            accountMultilevel.setFarmIds("25");
+            accountMultilevel.setColor("");
+            accountMultilevel.setMode(true);
+            accountMultilevel.setUserName("访客");
+            accountMultilevel.setType(7);
+            accountMultilevelService.save(accountMultilevel);
+            QueryWrapper<SysAccountMultilevel> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("account", remark);
+            SysAccountMultilevel one1 = accountMultilevelService.getOne(queryWrapper1);
+
+            accessToken.setAccountName(remark);
+            accessToken.setUserName("访客");
+            accessToken.setFarmId("25");
+            accessToken.setType(7);
+            accessToken.setId(one1.getId());
+            String token = TokenSign.sign(remark, one1.getId(), one1.getFarmIds(), null);
+            accessToken.setToken(token);
+        } else {
+            accessToken.setAccountName(one.getUserName());
+            accessToken.setUserName("访客");
+            accessToken.setFarmId("25");
+            accessToken.setType(7);
+            accessToken.setId(one.getId());
+            String token = TokenSign.sign(remark, one.getId(), one.getFarmIds(), one.getWorkLocationId());
+            accessToken.setToken(token);
+        }
+        return new Result(ResultCode.SUCCESS,accessToken);
+  /*      String accountName = map.get("accountName");
+        String password = map.get("password");
+        String remoteHost = req.getRemoteHost();
+        Result result = iLoginService.loginMultilevel(accountName, password);
+        if (result.getCode() == 10000) {
+            SysAccountMultilevel data = (SysAccountMultilevel) result.getData();
+            AccessToken accessToken = new AccessToken();
+            accessToken.setAccountName(accountName);
+            accessToken.setUserName(data.getUserName());
+            accessToken.setFarmId(data.getFarmIds());
+            accessToken.setType(data.getType());
+            accessToken.setId(data.getId());
+            String token = TokenSign.sign(accountName,data.getId(),data.getFarmIds(),data.getWorkLocationId());
+            accessToken.setToken(token);
+            Integer lastFarmId = data.getLastFarmId();
+            if (ObjectUtil.isEmpty(lastFarmId)){
+                lastFarmId = Integer.parseInt(data.getFarmIds().split(",")[0]);
+            }
+            accessToken.setLastFarmId(lastFarmId);
+            accessToken.setLoginIp(remoteHost);
+            return new Result(ResultCode.SUCCESS,accessToken);
+        } else {
+            return result;
+        }*/
+    }
+
 }

+ 5 - 1
huimv-admin/src/main/java/com/huimv/admin/entity/BaseLocation.java

@@ -43,12 +43,16 @@ public class BaseLocation implements Serializable {
     private String parentIds;
 
     private Integer parentId;
+
+    private Integer nextId;
+
+    private String nextLocation;
     /*
     * 来访类型 0人员  1环保车 2拉猪车 3饲料车  4送猪车 5物资车  6送餐
     */
     private Integer vistitType;
 
-    private Integer nextId;
+
 
 //    private Integer processId;
 

+ 5 - 1
huimv-admin/src/main/java/com/huimv/admin/entity/BillClean.java

@@ -7,6 +7,8 @@ import java.time.LocalDateTime;
 import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -78,7 +80,7 @@ public class BillClean implements Serializable {
      * 处理时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
-    private LocalDateTime passDate;
+    private Date passDate;
 
     /**
      * 处理人
@@ -95,11 +97,13 @@ public class BillClean implements Serializable {
      */
     private Integer processId;
 
+    private Date checkDate;
     /**
      * 检测地点
      */
     private String testLocation;
 
+
     private Integer testLocationId;
 
 

+ 9 - 4
huimv-admin/src/main/java/com/huimv/admin/entity/BillIsolate.java

@@ -3,8 +3,12 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -77,7 +81,7 @@ public class BillIsolate implements Serializable {
     /**
      * 处理时间
      */
-    private LocalDateTime passDate;
+    private Date passDate;
 
     /**
      * 处理人
@@ -104,14 +108,15 @@ public class BillIsolate implements Serializable {
     /**
      * 隔离开始时间
      */
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
-    private LocalDateTime isolateStartDate;
+    private Date isolateStartDate;
 
     /**
      * 隔离结束时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
-    private LocalDateTime isolateEndDate;
+    private Date isolateEndDate;
 
     /**
      * 隔离天数
@@ -126,7 +131,7 @@ public class BillIsolate implements Serializable {
     /**
      * 真实隔离结束时间
      */
-    private LocalDateTime isolateRealEndDate;
+    private Date isolateRealEndDate;
 
 
 }

+ 6 - 2
huimv-admin/src/main/java/com/huimv/admin/entity/BillPcr.java

@@ -7,6 +7,8 @@ import java.time.LocalDateTime;
 import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -74,8 +76,9 @@ public class BillPcr implements Serializable {
     /**
      * 检测时间
      */
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
-    private LocalDateTime checkDate;
+    private Date checkDate;
 
     /**
      * 当前状态 0待审批 1合格  2异常 3已失效
@@ -85,8 +88,9 @@ public class BillPcr implements Serializable {
     /**
      * 处理时间
      */
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
-    private LocalDateTime passDate;
+    private Date passDate;
 
     /**
      * 处理人

+ 8 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IBillCleanService.java

@@ -7,6 +7,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.Map;
+
 /**
  * <p>
  * 洗消表 服务类
@@ -16,6 +20,10 @@ import java.util.Map;
  * @since 2023-07-21
  */
 public interface IBillCleanService extends IService<BillClean> {
+    Result listAll(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listById(HttpServletRequest httpServletRequest,Map<String,String> paramsMap);
 
+    Result commitClean(HttpServletRequest httpServletRequest,Map<String,String> paramsMap) throws ParseException;
     Result listPersonalClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 }

+ 8 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IBillPcrService.java

@@ -5,6 +5,10 @@ import com.huimv.admin.entity.BillPcr;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 /**
@@ -16,6 +20,10 @@ import java.util.Map;
  * @since 2023-07-21
  */
 public interface IBillPcrService extends IService<BillPcr> {
+    Result list(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listById(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 
+    Result edit(HttpServletRequest httpServletRequest,Map<String, String> paramsMap) throws ParseException;
     Result listPersonalPcr(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 }

+ 20 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IBillPersonnelAdmissionService.java

@@ -1,6 +1,8 @@
 package com.huimv.admin.service;
 
 import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.BillIsolate;
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.BillPersonnelAdmission;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.web.multipart.MultipartFile;
@@ -10,6 +12,10 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.Map;
+
 /**
  * <p>
  * 入场申请 服务类
@@ -19,7 +25,21 @@ import java.util.Map;
  * @since 2023-07-21
  */
 public interface IBillPersonnelAdmissionService extends IService<BillPersonnelAdmission> {
+    Result listPrc(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listById(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result editStatus(HttpServletRequest httpServletRequest, Map<String,String> paramsMap) throws ParseException;
+
+    Result listIsolate(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result isolateById(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result commitIsolate(HttpServletRequest httpServletRequest, BillIsolate billIsolate);
+
+    Result editIsolate(HttpServletRequest httpServletRequest, Map<String,String> paramsMap) throws ParseException;
 
+    Result listClean(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
     Result addAdmission(HttpServletRequest httpServletRequest, String admissionType, String vistitType, String userName, String phone, String workName, String papersType, String papersCode, MultipartFile imgUrl, String vistitDate, String vistitReson, String destId, String destName, String farmId) throws IOException;
 
     Result listPersonalAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);

+ 176 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/BillCleanServiceImpl.java

@@ -1,6 +1,13 @@
 package com.huimv.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.*;
+import com.huimv.admin.mapper.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.admin.common.token.TokenSign;
 import com.huimv.admin.common.utils.Result;
@@ -9,8 +16,15 @@ import com.huimv.admin.entity.BillClean;
 import com.huimv.admin.mapper.BillCleanMapper;
 import com.huimv.admin.service.IBillCleanService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
@@ -26,6 +40,168 @@ import java.util.Map;
 @Service
 public class BillCleanServiceImpl extends ServiceImpl<BillCleanMapper, BillClean> implements IBillCleanService {
 
+    @Autowired
+    private BillCleanMapper cleanMapper;
+    @Autowired
+    private BillIsolateMapper isolateMapper;
+    @Autowired
+    private BillPcrMapper pcrMapper;
+    @Autowired
+    private BaseProcessMapper processMapper;
+    @Autowired
+    private BaseLocationMapper locationMapper;
+
+    @Override
+    public Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");//展示类型 0-6
+        String data = paramsMap.get("data");//状态
+        String farmId = paramsMap.get("farmId");
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+        if ("".equals(data) || null == data) {
+            data = "1";
+        }
+        QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farn_id", farmId).eq("vistit_type", type);
+        if ("1".equals(data)) {
+            queryWrapper.in("bill_status", 0, 1, 2);
+        }
+        if ("2".equals(data)) {
+            queryWrapper.eq("bill_status", 0);
+        }
+        if ("3".equals(data)) {
+            queryWrapper.eq("bill_status", 1);
+        }
+        return new Result(ResultCode.SUCCESS, cleanMapper.selectList(queryWrapper));
+    }
+
+    @Override
+    public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        BillClean billClean = cleanMapper.selectById(id);
+        return new Result(ResultCode.SUCCESS, billClean);
+    }
+
+    @Override
+    public Result commitClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
+        String result = paramsMap.get("result");// 结果
+        String farmId = paramsMap.get("farmId");
+        String id = paramsMap.get("id");
+        String date = paramsMap.get("date");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (StringUtils.isBlank(date)) {
+            date = sdf.format(new Date());
+        }
+        BillClean billClean = cleanMapper.selectById(id);//某条洗消记录
+
+        QueryWrapper<BaseProcess> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
+        BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
+
+        QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
+        locationQueryWrapper.eq("farm_id", farmId).eq("id", billClean.getTestLocationId());
+        BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
+
+        if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
+            return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
+        } else {
+            if (billClean.getDestId() > billClean.getTestLocationId()) { //不是目的地
+
+                if ("1".equals(result)) {
+                    billClean.setBillStatus(1);
+                    billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billClean.setTestLocation(baseLocation.getLocationName());
+                    billClean.setTestLocationId(baseLocation.getId());
+                    billClean.setCheckDate(sdf.parse(date));
+                    billClean.setPassDate(sdf.parse(sdf.format(new Date())));
+
+                    if (baseLocation.getId() == 4 || baseLocation.getId() == 10) {
+                        //生成pcr检测申请
+                        BillPcr billPcr = new BillPcr();
+                        billPcr.setPcrType(0);
+                        billPcr.setVistitType(billClean.getVistitType());
+                        billPcr.setDestName(billClean.getDestName());
+                        billPcr.setDestId(billClean.getDestId());
+                        billPcr.setAdmissionUserName(billClean.getAdmissionUserName());
+                        billPcr.setAdmissionUserId(billClean.getAdmissionUserId());
+                        billPcr.setVistitDate(billClean.getVistitDate());
+                        billPcr.setSubDate(billClean.getSubDate());
+                        billPcr.setBillStatus(0);
+                        billPcr.setProcessId(billClean.getProcessId());
+                        billPcr.setFarmId(billClean.getFarmId());
+                        pcrMapper.insert(billPcr);
+                    }
+                    if (baseLocation.getId() == 7 || baseLocation.getId() == 12) {
+                        //生成隔离申请
+                        BillIsolate isolate = new BillIsolate();
+                        isolate.setVistitType(billClean.getVistitType());
+                        isolate.setDestName(billClean.getDestName());
+                        isolate.setDestId(billClean.getDestId());
+                        isolate.setAdmissionUserName(billClean.getAdmissionUserName());
+                        isolate.setAdmissionUserId(billClean.getAdmissionUserId());
+                        isolate.setVistitDate(billClean.getVistitDate());
+                        isolate.setSubDate(billClean.getSubDate());
+                        isolate.setFarmId(billClean.getFarmId());
+                        isolate.setBillStatus(0);
+                        isolate.setProcessId(billClean.getProcessId());
+                        isolateMapper.insert(isolate);
+                    }
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billClean.getTestLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billClean.getTestLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "1," + 0);
+                } else {
+                    billClean.setBillStatus(2);
+                    billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billClean.setTestLocation(baseLocation.getLocationName());
+                    billClean.setTestLocationId(baseLocation.getId());
+                    billClean.setCheckDate(sdf.parse(date));
+                    billClean.setPassDate(sdf.parse(sdf.format(new Date())));
+
+                    baseProcess.setProcessType(2);
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "2");
+                }
+                cleanMapper.updateById(billClean);
+                processMapper.updateById(baseProcess);
+                return new Result(10000, "修改成功!", true);
+            } else {
+                //当前是目的地
+                if ("1".equals(result)) {
+                    billClean.setBillStatus(1);
+                    baseProcess.setProcessType(1);
+                } else {
+                    billClean.setBillStatus(2);
+                    baseProcess.setProcessType(2);
+                }
+                billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                billClean.setTestLocation(baseLocation.getLocationName());
+                billClean.setTestLocationId(baseLocation.getId());
+                billClean.setCheckDate(sdf.parse(date));
+                billClean.setPassDate(sdf.parse(sdf.format(new Date())));
+
+                baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
+                baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                String status = baseProcess.getCurrentStatus();
+                String substring = status.substring(0, status.length() - 1);
+                baseProcess.setCurrentStatus(substring + "1");
+                processMapper.updateById(baseProcess);
+                cleanMapper.updateById(billClean);
+                return new Result(10000, "修改成功!", true);
+            }
+        }
+    }
     @Resource
     private BillCleanMapper billCleanMapper;
 

+ 212 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/BillPcrServiceImpl.java

@@ -1,16 +1,35 @@
 package com.huimv.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.BaseLocation;
+import com.huimv.admin.entity.BaseProcess;
+import com.huimv.admin.entity.BillClean;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.admin.common.token.TokenSign;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.BillPcr;
+import com.huimv.admin.mapper.BaseLocationMapper;
+import com.huimv.admin.mapper.BaseProcessMapper;
+import com.huimv.admin.mapper.BillCleanMapper;
 import com.huimv.admin.mapper.BillPcrMapper;
 import com.huimv.admin.service.IBillPcrService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
@@ -37,4 +56,197 @@ public class BillPcrServiceImpl extends ServiceImpl<BillPcrMapper, BillPcr> impl
         Page<BillPcr> billPcrPage = billPcrMapper.selectPage(page, new QueryWrapper<BillPcr>().eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date"));
         return new Result(ResultCode.SUCCESS,billPcrPage);
     }
+    @Autowired
+    private BillPcrMapper pcrMapper;
+    @Autowired
+    private BaseProcessMapper processMapper;
+    @Autowired
+    private BaseLocationMapper locationMapper;
+    @Autowired
+    private BillCleanMapper cleanMapper;
+
+    @Override
+    public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String type = paramsMap.get("type");//展示类型
+        QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
+        if ("".equals(type) || null == type) {
+            queryWrapper.eq("pcr_type", 0);
+        } else if (type.equals("3")) {
+            queryWrapper.eq("pcr_type", 0).in("bill_status", 2, 3);
+        } else {
+            queryWrapper.eq("pcr_type", 0).eq("bill_status", type);
+        }
+        List<BillPcr> billPcrs = pcrMapper.selectList(queryWrapper);
+        return new Result(ResultCode.SUCCESS, billPcrs);
+    }
+
+    @Override
+    public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        BillPcr billPcr = pcrMapper.selectById(id);
+        return new Result(ResultCode.SUCCESS, billPcr);
+    }
+
+    @Override
+    public Result edit(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
+        String result = paramsMap.get("result");//1为合格2为异常
+        String id = paramsMap.get("id");
+        String farmId = paramsMap.get("farmId");
+        String date = paramsMap.get("date");
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        if (StringUtils.isBlank(date)) {
+            date = sdf.format(new Date());
+        }
+        BillPcr billPcr = pcrMapper.selectById(id);
+
+        QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
+        processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId());
+        BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
+
+        QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
+        locationQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getTestLocationId());
+        BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
+
+
+        if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
+            return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
+        } else {
+            if (billPcr.getDestId() > billPcr.getTestLocationId()) { //说明当前不是目的地
+                if ("1".equals(result)) {
+                    billPcr.setBillStatus(1);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setCheckDate(sdf.parse(date));
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+
+                    //通过生成洗消记录
+                    BillClean billClean = new BillClean();
+                    billClean.setVistitType(billPcr.getVistitType());
+                    billClean.setDestName(billPcr.getDestName());
+                    billClean.setDestId(billPcr.getDestId());
+                    billClean.setAdmissionUserName(billPcr.getAdmissionUserName());
+                    billClean.setAdmissionUserId(billPcr.getAdmissionUserId());
+                    billClean.setVistitDate(billPcr.getVistitDate());
+                    billClean.setSubDate(billPcr.getSubDate());
+                    billClean.setFarmId(billPcr.getFarmId());
+                    billClean.setPassUserName(billPcr.getPassUserName());
+                    billClean.setPassDate(billPcr.getPassDate());
+                    billClean.setPassUserId(billPcr.getPassUserId());
+                    billClean.setProcessId(billPcr.getProcessId());
+                    billClean.setTestLocation(baseLocation.getNextLocation());
+                    billClean.setTestLocationId(baseLocation.getNextId());
+                    cleanMapper.insert(billClean);
+
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+
+                    baseProcess.setCurrentStatus(substring + "1," + 0);
+
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                } else {
+
+                    billPcr.setBillStatus(2);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setCheckDate(sdf.parse(date));
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+
+                    baseProcess.setCurrentStatus(substring + "2");
+                    if (baseLocation.getId() == 2) {
+                        //第一次检测不合格
+                        billPcr.setPcrType(1);
+                    }
+                    if (baseLocation.getId() == 6) {
+                        //第二次检测不合格
+                        baseProcess.setProcessType(2);
+                    }
+                    if (baseLocation.getId() == 11) {
+                        //第三次不合格
+                        baseProcess.setProcessType(2);
+                    }
+
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                }
+            } else {
+
+                if ("1".equals(result)) {
+                    billPcr.setBillStatus(1);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setCheckDate(sdf.parse(date));
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "1");
+                    baseProcess.setProcessType(1);
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                } else {
+                    if (baseLocation.getId() == 2) {
+                        //第一次检测不合格
+                        billPcr.setPcrType(1);
+                        baseProcess.setProcessType(2);
+                    } else {
+                        baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                        baseProcess.setProcessType(2);
+                    }
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "2");
+
+                    billPcr.setBillStatus(2);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setCheckDate(sdf.parse(date));
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                }
+
+            }
+
+        }
+
+    }
+
+    private void xiugaiPro(BaseProcess baseProcess,BillPcr billPcr) {
+        baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + new Date());
+        baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
+        baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
+        baseProcess.setCurrentStatus(baseProcess.getCurrentStatus() + "," + 2);
+    }
 }

+ 337 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/BillPersonnelAdmissionServiceImpl.java

@@ -1,5 +1,13 @@
 package com.huimv.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.DataUill;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.*;
+import com.huimv.admin.mapper.*;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -26,6 +34,17 @@ import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 入场申请 服务实现类
@@ -234,4 +253,322 @@ public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnel
         }
     }
 
+    @Autowired
+    private BillPcrMapper pcrMapper;
+    @Autowired
+    private BaseProcessMapper processMapper;
+    @Autowired
+    private BaseLocationMapper locationMapper;
+    @Autowired
+    private BillCleanMapper cleanMapper;
+    @Autowired
+    private BillIsolateMapper isolateMapper;
+
+    @Override
+    public Result listPrc(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");//类型
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("pcr_type", 1).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
+        if ("1".equals(type)) {
+            queryWrapper.in("bill_status", 0, 1, 2, 3);
+        }
+        if ("2".equals(type)) {
+            queryWrapper.eq("bill_status", 0);
+        }
+        if ("3".equals(type)) {
+            queryWrapper.eq("bill_status", 1);
+        }
+        if ("4".equals(type)) {
+            queryWrapper.in("bill_status", 2, 3);
+        }
+        List<BillPcr> billPcrs = pcrMapper.selectList(queryWrapper);
+        return new Result(ResultCode.SUCCESS, billPcrs);
+    }
+
+    @Override
+    public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS, pcrMapper.selectById(id));
+    }
+
+    @Override
+    public Result editStatus(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
+        String farmId = paramsMap.get("farmId");
+        String type = paramsMap.get("type");
+        String id = paramsMap.get("id");
+        String data = paramsMap.get("data");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (StringUtils.isBlank(data)) {
+            data = sdf.format(new Date());
+        }
+        BillPcr billPcr = pcrMapper.selectById(id);
+
+        QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
+        processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId());
+        BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
+
+        QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
+        locationQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getTestLocationId());
+        BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
+
+
+        if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
+            return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
+        } else {
+            if (billPcr.getDestId() > billPcr.getTestLocationId()) { //说明当前不是目的地
+                if ("1".equals(type)) {
+                    billPcr.setBillStatus(1);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+                    billPcr.setCheckDate(sdf.parse(data));
+
+                    //通过生成洗消记录
+                    BillClean billClean = new BillClean();
+                    billClean.setVistitType(billPcr.getVistitType());
+                    billClean.setDestName(billPcr.getDestName());
+                    billClean.setDestId(billPcr.getDestId());
+                    billClean.setAdmissionUserName(billPcr.getAdmissionUserName());
+                    billClean.setAdmissionUserId(billPcr.getAdmissionUserId());
+                    billClean.setVistitDate(billPcr.getVistitDate());
+                    billClean.setSubDate(billPcr.getSubDate());
+                    billClean.setFarmId(billPcr.getFarmId());
+                    billClean.setPassUserName(billPcr.getPassUserName());
+                    billClean.setPassDate(billPcr.getPassDate());
+                    billClean.setPassUserId(billPcr.getPassUserId());
+                    billClean.setProcessId(billPcr.getProcessId());
+                    billClean.setTestLocation(baseLocation.getNextLocation());
+                    billClean.setTestLocationId(baseLocation.getNextId());
+                    cleanMapper.insert(billClean);
+
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+
+                    baseProcess.setCurrentStatus(substring + "1," + 0);
+
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                } else {
+                    billPcr.setBillStatus(2);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+                    billPcr.setCheckDate(sdf.parse(data));
+
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+
+                    baseProcess.setCurrentStatus(substring + "2");
+                    baseProcess.setProcessType(2);
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                }
+            } else {
+                if ("1".equals(type)) {
+                    billPcr.setBillStatus(1);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+                    billPcr.setCheckDate(sdf.parse(data));
+
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "1" );
+                    baseProcess.setProcessType(1);
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                } else {
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() );
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "2");
+                    baseProcess.setProcessType(2);
+                    billPcr.setBillStatus(2);
+                    billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billPcr.setTestLocation(baseLocation.getLocationName());
+                    billPcr.setTestLocationId(baseLocation.getId());
+                    billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
+                    billPcr.setCheckDate(sdf.parse(data));
+
+                    processMapper.updateById(baseProcess);
+                    pcrMapper.updateById(billPcr);
+                    return new Result(10000, "修改成功!", true);
+                }
+
+            }
+        }
+    }
+
+    @Override
+    public Result listIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");//类型
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<BillIsolate> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("isolate_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
+        if ("1".equals(type)) {
+            queryWrapper.in("bill_status", 0, 1, 2, 3);
+        }
+        if ("2".equals(type)) {
+            queryWrapper.eq("bill_status", 0);
+        }
+        if ("3".equals(type)) {
+            queryWrapper.eq("bill_status",  1);
+        }
+        if ("4".equals(type)) {
+            queryWrapper.in("bill_status", 2, 3);
+        }
+        return new Result(ResultCode.SUCCESS, isolateMapper.selectList(queryWrapper));
+    }
+
+    @Override
+    public Result isolateById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS, isolateMapper.selectById(id));
+    }
+
+    @Override
+    public Result commitIsolate(HttpServletRequest httpServletRequest, BillIsolate billIsolate) {
+        BillIsolate isolate = isolateMapper.selectById(billIsolate.getId());
+        Date startDate = billIsolate.getIsolateStartDate();
+        Integer dayNum = billIsolate.getIsolateDayNum();//隔离天数
+        Date endDate = DataUill.getNextDay(startDate, dayNum);
+        isolate.setIsolateLocation(billIsolate.getIsolateLocation());
+        isolate.setIsolateLocationId(billIsolate.getIsolateLocationId());
+        isolate.setIsolateStartDate(startDate);
+        isolate.setIsolateEndDate(endDate);
+        isolate.setIsolateDayNum(dayNum);
+        isolateMapper.updateById(isolate);
+        return new Result(10000, "提交成功!", true);
+    }
+
+    @Override
+    public Result editIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
+        String id = paramsMap.get("id");
+        String remark = paramsMap.get("remark");//是否提前结束隔离的标识
+        BillIsolate billIsolate = isolateMapper.selectById(id);
+        BaseProcess baseProcess = processMapper.selectById(billIsolate.getProcessId());
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String end = sdf.format(billIsolate.getIsolateEndDate());
+        String start = sdf.format(billIsolate.getIsolateStartDate());
+        String now = sdf.format(new Date());
+        int res = now.compareTo(end);
+        if (res > 0) {//当前时间晚于隔离结束时间
+            if (baseProcess.getDestId().equals(billIsolate.getIsolateLocationId())) {
+                //目的地就是当前隔离地点
+                baseProcess.setProcessType(1);
+            } else {
+                baseProcess.setProcessType(0);
+            }
+            billIsolate.setIsolateRealEndDate(new Date());
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar cal1 = Calendar.getInstance();
+            Calendar cal2 = Calendar.getInstance();
+            Date startDate = sdf1.parse(start);
+            Date endDate = sdf1.parse(now);
+            cal1.setTime(startDate);
+            cal2.setTime(endDate);
+            long days = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);
+            billIsolate.setIsolateRealDayNum((int) days);
+            billIsolate.setBillStatus(2);
+            billIsolate.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+            billIsolate.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+
+            baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + now);
+            baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billIsolate.getIsolateLocation());
+            baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billIsolate.getIsolateLocationId());
+            String status = baseProcess.getCurrentStatus();
+            String substring = status.substring(0, status.length() - 1);
+            baseProcess.setCurrentStatus(substring + "1," + 0);
+
+            isolateMapper.updateById(billIsolate);
+            processMapper.updateById(baseProcess);
+            return new Result(10000, "正常解除隔离成功!", true);
+        } else {
+            //提前结束隔离
+            if (baseProcess.getDestId().equals(billIsolate.getIsolateLocationId())) {
+                //目的地就是当前隔离地点
+                baseProcess.setProcessType(1);
+            } else {
+                baseProcess.setProcessType(0);
+            }
+            billIsolate.setIsolateRealEndDate(new Date());
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar cal1 = Calendar.getInstance();
+            Calendar cal2 = Calendar.getInstance();
+            Date startDate = sdf1.parse(start);
+            Date endDate = sdf1.parse(now);
+            cal1.setTime(startDate);
+            cal2.setTime(endDate);
+            long days = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);
+            billIsolate.setIsolateRealDayNum((int) days);
+            billIsolate.setBillStatus(3);
+            billIsolate.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+            billIsolate.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+
+            baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + now);
+            baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billIsolate.getIsolateLocation());
+            baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billIsolate.getIsolateLocationId());
+            String status = baseProcess.getCurrentStatus();
+            String substring = status.substring(0, status.length() - 1);
+            baseProcess.setCurrentStatus(substring + "1," + 0);
+
+            isolateMapper.updateById(billIsolate);
+            processMapper.updateById(baseProcess);
+            return new Result(10000, "提前解除隔离成功!", true);
+        }
+    }
+
+    @Override
+    public Result listClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");//类型
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
+        if ("1".equals(type)) {
+            queryWrapper.in("bill_status", 0, 1, 2);
+        }
+        if ("2".equals(type)) {
+            queryWrapper.eq("bill_status", 0);
+        }
+        if ("3".equals(type)) {
+            queryWrapper.eq("bill_status", 1);
+        }
+        if ("4".equals(type)) {
+            queryWrapper.eq("bill_status", 2);
+        }
+        return new Result(ResultCode.SUCCESS,  cleanMapper.selectList(queryWrapper));
+
+    }
 }