瀏覽代碼

农科院生物安全

wwh 1 年之前
父節點
當前提交
521f618549
共有 64 個文件被更改,包括 4401 次插入296 次删除
  1. 80 77
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/config/InterceptorConfig.java
  2. 82 82
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/config/JWTInterceptor.java
  3. 51 3
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BaseFarmController.java
  4. 42 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BaseLocationController.java
  5. 18 2
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BaseProcessController.java
  6. 80 2
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillAccessDoorController.java
  7. 139 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillCleanController.java
  8. 61 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillGateController.java
  9. 15 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillGoodsInventoryController.java
  10. 12 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillIsolateController.java
  11. 31 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillLuggageController.java
  12. 71 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillPcrController.java
  13. 145 5
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillPersonnelAdmissionController.java
  14. 93 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/FarmController.java
  15. 345 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/LoginController.java
  16. 2 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/SysUserController.java
  17. 1 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseDevice.java
  18. 2 2
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseFarm.java
  19. 1 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseLocation.java
  20. 3 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseProcess.java
  21. 4 2
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillAccessDoor.java
  22. 6 4
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillClean.java
  23. 6 4
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillDry.java
  24. 4 2
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillGate.java
  25. 3 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillGoodsInventory.java
  26. 15 6
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillIsolate.java
  27. 1 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillLuggage.java
  28. 8 4
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillPcr.java
  29. 7 3
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillPersonnelAdmission.java
  30. 42 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/Farm.java
  31. 4 2
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/PeopleList.java
  32. 23 52
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/SysAccountMultilevel.java
  33. 1 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/pojo/UserPagePojo.java
  34. 9 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/vo/GetFarmIdVo.java
  35. 10 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/vo/GetFarmVo2.java
  36. 5 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BaseProcessMapper.java
  37. 8 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BillCleanMapper.java
  38. 7 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BillGoodsInventoryMapper.java
  39. 10 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BillPersonnelAdmissionMapper.java
  40. 18 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/FarmMapper.java
  41. 7 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBaseProcessService.java
  42. 26 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillCleanService.java
  43. 5 1
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillGoodsInventoryService.java
  44. 2 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillIsolateService.java
  45. 6 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillLuggageService.java
  46. 11 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillPcrService.java
  47. 44 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillPersonnelAdmissionService.java
  48. 26 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IFarmService.java
  49. 14 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/ILoginService.java
  50. 45 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BaseProcessServiceImpl.java
  51. 885 7
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillCleanServiceImpl.java
  52. 27 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillGoodsInventoryServiceImpl.java
  53. 18 5
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillIsolateServiceImpl.java
  54. 55 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillLuggageServiceImpl.java
  55. 265 6
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillPcrServiceImpl.java
  56. 1154 7
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillPersonnelAdmissionServiceImpl.java
  57. 95 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/FarmServiceImpl.java
  58. 60 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/LoginServiceImpl.java
  59. 30 8
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/SysUserServiceImpl.java
  60. 3 3
      huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/session/AccessToken.java
  61. 25 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BaseProcessMapper.xml
  62. 70 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BillCleanMapper.xml
  63. 12 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BillGoodsInventoryMapper.xml
  64. 51 0
      huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BillPersonnelAdmissionMapper.xml

+ 80 - 77
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/config/InterceptorConfig.java

@@ -1,77 +1,80 @@
-//
-//package com.huimv.secure.config;
-//
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-//
-///**
-// * @Description: 注册验证tocken的拦截器
-// * @Author
-// * @Date 2021/4/19 20:41
-// * @Version V1.0
-// */
-//@Configuration
-//public class InterceptorConfig implements WebMvcConfigurer {
-//    @Bean
-//    public JWTInterceptor jwtInterceptor(){
-//        return new JWTInterceptor();
-//    }
-//
-//    @Override
-//    public void addInterceptors(InterceptorRegistry registry) {
-//        registry.addInterceptor(jwtInterceptor()).
-//                excludePathPatterns("/secureApi/admin/my/*","/secureApi/bill-access-door/getDoorData","/secureApi/bill-gate/getGateData", "/swagger-resources/**")
-//                .excludePathPatterns("/secureApi/receive/feed","/secureApi/bill-personnel-admission/printAdmission"
-//                        ,"/secureApi/bill-personnel-admission/printAdmission"
-//                        ,"/secureApi/bill-pcr/printPcr"
-//                        ,"/secureApi/bill-clean/printClean"
-//                        ,"/secureApi/bill-isolate/printIsolate"
-//                        ,"/secureApi/bill-luggage/printLuggage"
-//                        ,"/secureApi/admin/user/printUser"
-//                        ,"/secureApi/admin/accountMultilevel/printAccount"
-//                        ,"/secureApi/base-device/printDevice"
-//                        ,"/secureApi/bill-personnel-admission/listDoor"
-//
-//                        //后台统计接口开放
-//                        ,"/secureApi/bill-personnel-admission/countAdmission"
-//                        ,"/secureApi/bill-personnel-admission/listTop"
-//                        ,"/secureApi/bill-personnel-admission/admissionTail"
-//                        ,"/secureApi/bill-personnel-admission/selectList"
-//                        ,"/secureApi/bill-personnel-admission/uploadImgAndAdmissin"
-//                        ,"/secureApi/bill-personnel-admission/delete"
-//
-//                        ,"/secureApi/bill-pcr/pcrWhole"
-//                        ,"/secureApi/bill-pcr/listType"
-//                        ,"/secureApi/bill-pcr/listLocation"
-//                        ,"/secureApi/bill-pcr/listAll"
-//                        ,"/secureApi/bill-pcr/selectList"
-//                        ,"/secureApi/bill-pcr/delete"
-//
-//
-//                        ,"/secureApi/bill-clean/listCount"
-//                        ,"/secureApi/bill-clean/allList"
-//                        ,"/secureApi/bill-clean/CleanSelect"
-//                        ,"/secureApi/bill-clean/delete"
-//                        ,"/secureApi/bill-clean/listScreen"
-//
-//
-//                        ,"/secureApi/bill-isolate/isolateList"
-//                        ,"/secureApi/bill-isolate/isolateSelect"
-//                        ,"/secureApi/bill-isolate/delete"
-//
-//                        ,"/secureApi/bill-luggage/listLuggage"
-//                        ,"/secureApi/bill-luggage/selectLuggage"
-//                        ,"/secureApi/bill-luggage/delete"
-//
-//
-//
-//
-//                        ,"/secureApi/bill-personnel-admission/jingJiAdmission"
-//                        ,"/secureApi/bill-personnel-admission/allCount"
-//                        ,"/secureApi/bill-pcr/pcrList"
-//                        ,"/secureApi/bill-goods-inventory/listAll"
-//                        );
-//    }
-//}
+
+package com.huimv.secure.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @Description: 注册验证tocken的拦截器
+ * @Author
+ * @Date 2021/4/19 20:41
+ * @Version V1.0
+ */
+@Configuration
+public class InterceptorConfig implements WebMvcConfigurer {
+    @Bean
+    public JWTInterceptor jwtInterceptor(){
+        return new JWTInterceptor();
+    }
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(jwtInterceptor()).
+                excludePathPatterns("/admin/my/*","/bill-access-door/getDoorData","/bill-gate/getGateData", "/swagger-resources/**")
+                .excludePathPatterns("/receive/feed","/bill-personnel-admission/printAdmission"
+                        ,"/bill-personnel-admission/printAdmission"
+                        ,"/bill-pcr/printPcr"
+                        ,"/bill-clean/printClean"
+                        ,"/bill-isolate/printIsolate"
+                        ,"/bill-luggage/printLuggage"
+                        ,"/admin/user/printUser"
+                        ,"/admin/accountMultilevel/printAccount"
+                        ,"/base-device/printDevice"
+                        ,"/bill-personnel-admission/listDoor"
+
+                        //后台统计接口开放
+                        ,"/bill-personnel-admission/countAdmission"
+                        ,"/bill-personnel-admission/listTop"
+                        ,"/bill-personnel-admission/admissionTail"
+                        ,"/bill-personnel-admission/selectList"
+                        ,"/bill-personnel-admission/uploadImgAndAdmissin"
+                        ,"/bill-personnel-admission/delete"
+
+                        ,"/bill-pcr/pcrWhole"
+                        ,"/bill-pcr/listType"
+                        ,"/bill-pcr/listLocation"
+                        ,"/bill-pcr/listAll"
+                        ,"/bill-pcr/selectList"
+                        ,"/bill-pcr/delete"
+
+
+                        ,"/bill-clean/listCount"
+                        ,"/bill-clean/allList"
+                        ,"/bill-clean/CleanSelect"
+                        ,"/bill-clean/delete"
+                        ,"/bill-clean/listScreen"
+
+
+                        ,"/bill-isolate/isolateList"
+                        ,"/bill-isolate/isolateSelect"
+                        ,"/bill-isolate/delete"
+
+                        ,"/bill-luggage/listLuggage"
+                        ,"/bill-luggage/selectLuggage"
+                        ,"/bill-luggage/delete"
+
+
+
+
+                        ,"/bill-personnel-admission/jingJiAdmission"
+                        ,"/bill-personnel-admission/allCount"
+                        ,"/bill-pcr/pcrList"
+                        ,"/bill-goods-inventory/listAll"
+                        ,"/sys-user/*"
+                        ,"/sys-account-multilevel/*"
+                        ,"/base-farm/getFarm"
+                        );
+    }
+}

+ 82 - 82
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/config/JWTInterceptor.java

@@ -1,82 +1,82 @@
-//package com.huimv.secure.config;
-//
-//import com.alibaba.fastjson.JSONObject;
-//import com.huimv.secure.common.token.TokenConstant;
-//import com.huimv.secure.common.token.TokenSign;
-//import io.jsonwebtoken.Claims;
-//import org.springframework.web.method.HandlerMethod;
-//import org.springframework.web.servlet.HandlerInterceptor;
-//import org.springframework.web.servlet.ModelAndView;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.util.HashMap;
-//import java.util.Map;
-//
-///**
-// * <p>
-// * jwt拦截器
-// * </p>
-// *
-// * @since 2021/4/19
-// */
-//public class JWTInterceptor implements HandlerInterceptor {
-//
-//
-//    @Override
-//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//        // 如果不是映射到方法,则直接通过
-//        if (!(handler instanceof HandlerMethod)) {
-//            return true;
-//        }
-//
-//        response.setContentType("application/json;charset=utf-8");
-//        // 获取token
-//        String token = request.getHeader("accessToken");
-//
-//
-//        if (null == token) {
-//            Map<String, Object> map = new HashMap<>();
-//            map.put("data", "token is null");
-//            map.put("code", "401");
-//            response.setStatus(401);
-//            response.getWriter().write(JSONObject.toJSONString(map));
-//            return false;
-//        } else {
-//            Claims claims = TokenSign.getClaims(token);
-//            if (claims == null) {
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("data", "token is overdue");
-//                map.put("code", "403");
-//                response.setStatus(403);
-//                response.getWriter().write(JSONObject.toJSONString(map));
-//                return false;
-//            }
-//
-//            boolean result = TokenSign.verify(token);
-//            if (result) {
-//                //更新存储的token信息
-//                TokenConstant.updateTokenMap(token);
-//                return true;
-//            }
-//            Map<String, Object> map = new HashMap<>();
-//            map.put("data", "token is null");
-//            map.put("code", "401");
-//            response.setStatus(401);
-//            response.getWriter().write(JSONObject.toJSONString(map));
-//            return false;
-//
-//        }
-//    }
-//
-//
-//    @Override
-//    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
-//
-//    }
-//
-//    @Override
-//    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
-//
-//    }
-//}
+package com.huimv.secure.config;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.secure.common.token.TokenConstant;
+import com.huimv.secure.common.token.TokenSign;
+import io.jsonwebtoken.Claims;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * jwt拦截器
+ * </p>
+ *
+ * @since 2021/4/19
+ */
+public class JWTInterceptor implements HandlerInterceptor {
+
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        // 如果不是映射到方法,则直接通过
+        if (!(handler instanceof HandlerMethod)) {
+            return true;
+        }
+
+        response.setContentType("application/json;charset=utf-8");
+        // 获取token
+        String token = request.getHeader("accessToken");
+
+
+        if (null == token) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("data", "token is null");
+            map.put("code", "401");
+            response.setStatus(401);
+            response.getWriter().write(JSONObject.toJSONString(map));
+            return false;
+        } else {
+            Claims claims = TokenSign.getClaims(token);
+            if (claims == null) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("data", "token is overdue");
+                map.put("code", "403");
+                response.setStatus(403);
+                response.getWriter().write(JSONObject.toJSONString(map));
+                return false;
+            }
+
+            boolean result = TokenSign.verify(token);
+            if (result) {
+                //更新存储的token信息
+                TokenConstant.updateTokenMap(token);
+                return true;
+            }
+            Map<String, Object> map = new HashMap<>();
+            map.put("data", "token is null");
+            map.put("code", "401");
+            response.setStatus(401);
+            response.getWriter().write(JSONObject.toJSONString(map));
+            return false;
+
+        }
+    }
+
+
+    @Override
+    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+
+    }
+}

+ 51 - 3
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BaseFarmController.java

@@ -1,13 +1,25 @@
 package com.huimv.secure.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.entity.BaseFarm;
+import com.huimv.secure.entity.Configuration;
+import com.huimv.secure.entity.Exist;
+import com.huimv.secure.entity.vo.GetFarmIdVo;
+import com.huimv.secure.entity.vo.GetFarmVo2;
+import com.huimv.secure.service.IBaseFarmService;
+import com.huimv.secure.service.IConfigurationService;
+import com.huimv.secure.service.IExistService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author author
@@ -15,6 +27,42 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/base-farm")
+@CrossOrigin
 public class BaseFarmController {
 
+    @Autowired
+    private IBaseFarmService farmService;
+    @Autowired
+    private IExistService existService;
+    @Autowired
+    private IConfigurationService configurationService;
+
+    //接收来自后台的牧场列表
+    @PostMapping("/getFarm")
+    public void getFarm(@RequestBody GetFarmVo2 vo2) {
+        List<GetFarmIdVo> list = vo2.getList();
+        for (GetFarmIdVo getFarmIdVo : list) {
+            QueryWrapper<BaseFarm> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("id", getFarmIdVo.getFarmId());
+            BaseFarm farm = farmService.getOne(queryWrapper);
+            if (ObjectUtil.isEmpty(farm)) {
+                BaseFarm baseFarm = new BaseFarm();
+                baseFarm.setId(getFarmIdVo.getFarmId());
+                baseFarm.setFarmName(getFarmIdVo.getName());
+                farmService.save(baseFarm);
+
+                Exist exist = new Exist();
+                exist.setExist(0);
+                exist.setFarmId(getFarmIdVo.getFarmId());
+                existService.save(exist);
+
+                Configuration configuration = new Configuration();
+                configuration.setPcr(2);
+                configuration.setClean(10);
+                configuration.setDry(70);
+                configuration.setFarmId(getFarmIdVo.getFarmId());
+                configurationService.save(configuration);
+            }
+        }
+    }
 }

+ 42 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BaseLocationController.java

@@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.common.utils.ResultCode;
 import com.huimv.secure.entity.BaseLocation;
+import com.huimv.secure.entity.Exist;
 import com.huimv.secure.service.IBaseLocationService;
+import com.huimv.secure.service.IExistService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -26,6 +29,45 @@ public class BaseLocationController {
 
     @Autowired
     private IBaseLocationService locationService;
+    @Autowired
+    private IBaseLocationService baseLocationService;
+    @Autowired
+    private IExistService existService;
+
+    @PostMapping("/listAll")
+    public Result listAll(@RequestBody Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String vistitType = paramsMap.get("vistitType");
+        QueryWrapper<Exist> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        Exist one = existService.getOne(queryWrapper);
+        if (one.getExist() == 1 && vistitType.equals("0")) {
+            return new Result(ResultCode.SUCCESS, baseLocationService.list(new QueryWrapper<BaseLocation>()
+                    .eq("vistit_type", vistitType)
+                    .ne("location_type", 0)));
+        }
+        if (one.getExist() == 1 && vistitType.equals("3")) {
+            return new Result(ResultCode.SUCCESS, baseLocationService.list(new QueryWrapper<BaseLocation>()
+                    .eq("vistit_type", vistitType)
+                    .ne("location_type", 0).ne("id", 7)));
+        }
+        if (one.getExist() == 1 && vistitType.equals("5")) {
+            return new Result(ResultCode.SUCCESS, baseLocationService.list(new QueryWrapper<BaseLocation>()
+                    .eq("vistit_type", vistitType)
+                    .eq("id", 9)));
+        }
+        return new Result(ResultCode.SUCCESS, baseLocationService.list(new QueryWrapper<BaseLocation>()
+                .eq("vistit_type", vistitType)
+                .ne("location_type", 0)));
+    }
+
+    @PostMapping("/listLuggageLocation")
+    public Result listLuggageLocation(@RequestBody Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        return new Result(ResultCode.SUCCESS, baseLocationService.list(new QueryWrapper<BaseLocation>()
+                .eq("vistit_type", 0).eq("parent_id", 0)));
+    }
+
 
     /*获取工作地点的列表*/
     @GetMapping("/getListWorkLocation")

+ 18 - 2
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BaseProcessController.java

@@ -1,9 +1,12 @@
 package com.huimv.secure.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.service.IBaseProcessService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.Map;
 
 /**
  * <p>
@@ -15,6 +18,19 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/base-process")
+@CrossOrigin
 public class BaseProcessController {
 
+    @Autowired
+    private IBaseProcessService processService;
+
+    @PostMapping("/getOneById")
+    public Result page(@RequestBody Map<String,String> map) {
+        return processService.getOne(map);
+    }
+
+    @PostMapping("/pageByLocationId")
+    public Result pageByLocationId(@RequestBody Map<String,String> map) {
+        return processService.pageByLocationId(map);
+    }
 }

+ 80 - 2
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillAccessDoorController.java

@@ -1,9 +1,29 @@
 package com.huimv.secure.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.common.utils.UploadImage;
+import com.huimv.secure.entity.BillAccessDoor;
+import com.huimv.secure.entity.BillGate;
+import com.huimv.secure.entity.DeviceList;
+import com.huimv.secure.service.IBillAccessDoorService;
+import com.huimv.secure.service.IBillGateService;
+import com.huimv.secure.service.IDeviceListService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Map;
 
 /**
  * <p>
@@ -15,6 +35,64 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/bill-access-door")
+@CrossOrigin
 public class BillAccessDoorController {
+    @Autowired
+    private IBillAccessDoorService doorService;
+    @Autowired
+    private IBillGateService gateService;
+    @Autowired
+    private UploadImage uploadImage;
+    @Autowired
+    private IDeviceListService deviceListService;
+
+    @RequestMapping("/listById")
+    public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String type = paramsMap.get("type");//1为人脸门禁 2为车辆闸机
+        String id = paramsMap.get("id");
+        if ("1".equals(type)) {
+            BillAccessDoor doorServiceOne = doorService.getOne(new QueryWrapper<BillAccessDoor>()
+                    .eq("farm_id", farmId).eq("id", id));
+            return new Result(ResultCode.SUCCESS, doorServiceOne);
+        } else {
+            BillGate gate = gateService.getOne(new QueryWrapper<BillGate>().eq("farm_id", farmId)
+                    .eq("id", id));
+            return new Result(ResultCode.SUCCESS, gate);
+        }
+
+    }
 
+    @RequestMapping("/getDoorData")
+    public Result getDoorData(@RequestParam("time") String time,
+                              @RequestParam("result") String result,
+                              @RequestParam("userId") String userId,
+                              @RequestParam("image") MultipartFile image,
+                              @RequestParam("userName") String userName,
+                              @RequestParam("seq") String seq) throws ParseException, IOException {
+        BillAccessDoor door = new BillAccessDoor();
+        door.setBillStatus(Integer.parseInt(result));
+        DateFormat def = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        door.setCheckDate(def.parse(time));
+        door.setUserId(userId);
+        String imageCom = "";
+        if (ObjectUtil.isNotEmpty(image)) {
+            if (uploadImage.getImageCom(image).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片上传失败", false);
+            }
+            imageCom = uploadImage.getImageCom(image);
+            door.setUrlImg(imageCom);
+        }//9G0487EPAJD7469
+        //后面需要修改
+        QueryWrapper<DeviceList> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_code", seq);
+        DeviceList deviceList = deviceListService.getOne(queryWrapper);
+        door.setFarmId(deviceList.getFarmId());
+        door.setLocationId(deviceList.getLocationId());
+        door.setCheckLocation(deviceList.getLocationName());
+        door.setUserName(userName);
+        doorService.save(door);
+        return new Result(ResultCode.SUCCESS, time, imageCom);
+    }
 }

+ 139 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillCleanController.java

@@ -1,12 +1,23 @@
 package com.huimv.secure.controller;
 
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.entity.BillClean;
+import com.huimv.secure.entity.BillDry;
+import com.huimv.secure.entity.Configuration;
 import com.huimv.secure.service.IBillCleanService;
+import com.huimv.secure.service.IBillDryService;
+import com.huimv.secure.service.IConfigurationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 import java.text.ParseException;
 import java.util.Map;
 
@@ -25,6 +36,134 @@ public class BillCleanController {
 
     @Autowired
     private IBillCleanService cleanService;
+    @Autowired
+    private IBillCleanService billCleanService;
+    @Autowired
+    private IBillDryService billDryService;
+    @Autowired
+    private IConfigurationService configurationService;
+    @PostMapping("/listPersonalClean")
+    public Result listPersonalClean(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return billCleanService.listPersonalClean(httpServletRequest, paramsMap);
+    }
+
+    @PostMapping("/listPersonalCleanAndDry")
+    public Result listPersonalCleanAndDry(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return billCleanService.listPersonalCleanAndDry(httpServletRequest, paramsMap);
+    }
+
+    @PostMapping("/getDetail")
+    public Result getDetail(@RequestBody Map<String, String> paramsMap) {
+        return new Result(ResultCode.SUCCESS, billCleanService.getById(paramsMap.get("id")));
+    }
+
+    @PostMapping("/listCleanAndDry")
+    public Result listCleanAndDry(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return billCleanService.listCleanAndDry(httpServletRequest, paramsMap);
+    }
+
+    @PostMapping("/getCleanAndDryDetail")
+    public Result getCleanAndDryDetail(@RequestBody Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");
+        if (StringUtils.isBlank(type)) {
+            BillClean billClean = billCleanService.getById(paramsMap.get("id"));
+            if (ObjectUtil.isEmpty(billClean.getImgUrl())) {
+                billClean.setImgUrl("");
+            }
+            return new Result(ResultCode.SUCCESS, billClean);
+        }
+        if ("1".equals(type)) {
+            BillClean billClean = billCleanService.getById(paramsMap.get("id"));
+            if (ObjectUtil.isEmpty(billClean.getImgUrl())) {
+                billClean.setImgUrl("");
+            }
+            return new Result(ResultCode.SUCCESS, billClean);
+        } else {
+            BillDry billDry = billDryService.getById(paramsMap.get("id"));
+            if (ObjectUtil.isEmpty(billDry.getImgUrl())) {
+                billDry.setImgUrl("");
+            }
+            return new Result(ResultCode.SUCCESS, billDry);
+        }
+
+    }
+    @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("/listByIdCar")
+    public Result listByIdDry(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return cleanService.listByIdDry(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/editClean")
+    public Result editClean(HttpServletRequest httpServletRequest,
+                            @RequestParam("farmId") String farmId,
+                            @RequestParam("id") String id,
+                            @RequestParam("date") String date,
+                            @RequestParam("result") String result,
+                            @RequestParam(value = "img1",required = false) MultipartFile img1,
+                            @RequestParam(value = "img2",required = false) MultipartFile img2,
+                            @RequestParam(value = "img3",required = false) MultipartFile img3
+    ) throws ParseException, IOException {
+        return cleanService.commitClean(httpServletRequest, farmId, id, date, result, img1,img2,img3);
+    }
+
+    @PostMapping("/carCommit")
+    public Result addAdmission(HttpServletRequest httpServletRequest, @RequestParam("id") String id,
+                               @RequestParam("data") String data,
+                               @RequestParam(value = "img1", required = false) MultipartFile img1,
+                               @RequestParam(value = "img2", required = false) MultipartFile img2,
+                               @RequestParam(value = "img3", required = false) MultipartFile img3,
+                               @RequestParam(value = "img4", required = false) MultipartFile img4,
+                               @RequestParam(value = "img5", required = false) MultipartFile img5,
+                               @RequestParam("farmId") String farmId,
+                               @RequestParam("type") String type) throws IOException, ParseException {
+        return cleanService.carClean(httpServletRequest, farmId, id, data, img1, img2, img3, img4, img5, type);
+    }
+
+    @PostMapping("/goodsCarClean")
+    public Result goodsCarClean(HttpServletRequest httpServletRequest, @RequestParam("id") String id,
+                                @RequestParam("data") String data,
+                                @RequestParam(value = "img1", required = false) MultipartFile img1,
+                                @RequestParam(value = "img2", required = false) MultipartFile img2,
+                                @RequestParam(value = "img3", required = false) MultipartFile img3,
+                                @RequestParam(value = "img4", required = false) MultipartFile img4,
+                                @RequestParam(value = "img5", required = false) MultipartFile img5,
+                                @RequestParam("farmId") String farmId,
+                                @RequestParam("type") String type,
+                                @RequestParam("result") String result) throws IOException, ParseException {
+        return cleanService.goodsCarClean(httpServletRequest, farmId, id, data, img1, img2, img3, img4, img5, type, result);
+    }
+    @PostMapping("/editTime")
+    public Result editTime(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String time = paramsMap.get("time");
+        String farmId = paramsMap.get("farmId");
+        String hum = paramsMap.get("hum");
+        QueryWrapper<Configuration> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        Configuration configuration = configurationService.getOne(queryWrapper);
+        if (ObjectUtil.isEmpty(configuration)) {
+            Configuration configuration1 = new Configuration();
+            configuration1.setClean(Integer.parseInt(time));
+            configuration1.setDry(Integer.parseInt(hum));
+            configuration1.setFarmId(farmId);
+            configuration1.setPcr(2);
+            configurationService.save(configuration1);
+            return new Result(10000, "添加成功!", true);
+        }
+        configuration.setClean(Integer.parseInt(time));
+        configuration.setDry(Integer.parseInt(hum));
+        configurationService.updateById(configuration);
+        return new Result(10000, "保存成功!", true);
+    }
+
     //
     @RequestMapping("/listCount")
     public Result listCount(@RequestBody Map<String, String> paramsMap) throws ParseException {

+ 61 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillGateController.java

@@ -1,9 +1,28 @@
 package com.huimv.secure.controller;
 
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.common.utils.UploadImage;
+import com.huimv.secure.entity.BillGate;
+import com.huimv.secure.entity.DeviceList;
+import com.huimv.secure.service.IBillGateService;
+import com.huimv.secure.service.IDeviceListService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 
 /**
  * <p>
@@ -15,6 +34,48 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/bill-gate")
+@CrossOrigin
 public class BillGateController {
 
+    @Autowired
+    private IBillGateService gateService;
+    @Autowired
+    private UploadImage uploadImage;
+    @Autowired
+    private IDeviceListService deviceListService;
+
+    @RequestMapping("/getGateData")
+    public Result getDoorData(@RequestParam("time") String time,
+                              @RequestParam(value = "plateNumber", required = false) String plateNumber,
+                              @RequestParam("result") String result,
+                              @RequestParam("image") MultipartFile image,
+                              @RequestParam("username") String userName,
+                              @RequestParam("seq") String seq) throws ParseException, IOException {
+
+        BillGate gate = new BillGate();
+        gate.setBillStatus(Integer.parseInt(result));
+        DateFormat def = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        gate.setCheckDate(def.parse(time));
+        gate.setCarNum(plateNumber);
+        String imageCom = "";
+        if (ObjectUtil.isNotEmpty(image)) {
+            if (uploadImage.getImageCom(image).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片上传失败", false);
+            }
+            imageCom = uploadImage.getImageCom(image);
+            gate.setCarUrl(imageCom);
+        }
+
+        //后面需要修改
+        QueryWrapper<DeviceList> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_code", seq);
+        DeviceList deviceList = deviceListService.getOne(queryWrapper);
+        gate.setFarmId(deviceList.getFarmId());
+        gate.setLocationId(deviceList.getLocationId());
+        gate.setCheckLocation(deviceList.getLocationName());
+        gate.setUserName(userName);
+        gateService.save(gate);
+        return new Result(ResultCode.SUCCESS, time, imageCom);
+    }
 }

+ 15 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillGoodsInventoryController.java

@@ -1,10 +1,18 @@
 package com.huimv.secure.controller;
 
 
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.service.IBillGoodsInventoryService;
+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 org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -15,6 +23,13 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/bill-goods-inventory")
+@CrossOrigin
 public class BillGoodsInventoryController {
+    @Autowired
+    private IBillGoodsInventoryService goodsInventoryService;
 
+    @RequestMapping("/listAll")
+    public Result listAll(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return goodsInventoryService.listAll(httpServletRequest, paramsMap);
+    }
 }

+ 12 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillIsolateController.java

@@ -2,6 +2,7 @@ package com.huimv.secure.controller;
 
 
 import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
 import com.huimv.secure.service.IBillIsolateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -24,6 +25,17 @@ public class BillIsolateController {
 
     @Autowired
     private IBillIsolateService billIsolateService;
+
+    @PostMapping("/listPersonalIsolate")
+    public Result listPersonalIsolate(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billIsolateService.listPersonalIsolate(httpServletRequest,paramsMap);
+    }
+
+    @PostMapping("/getDetail")
+    public Result getDetail(@RequestBody Map<String, String> paramsMap){
+        return new Result(ResultCode.SUCCESS,billIsolateService.getById(paramsMap.get("id")));
+    }
+
     //后台
     @PostMapping("/isolateList")
     public Result isolateList(@RequestBody Map<String, String> paramsMap){

+ 31 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillLuggageController.java

@@ -2,11 +2,14 @@ package com.huimv.secure.controller;
 
 
 import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
 import com.huimv.secure.service.IBillLuggageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -24,6 +27,34 @@ public class BillLuggageController {
 
     @Autowired
     private IBillLuggageService billLuggageService;
+
+    @PostMapping("/addLuggage")
+    public Result addLuggage(HttpServletRequest httpServletRequest,
+                             @RequestParam("farmId") String farmId,
+                             @RequestParam("userName") String userName,
+                             @RequestParam("phone") String phone,
+                             @RequestParam("luggageDate") String luggageDate,
+                             @RequestParam("luggageLocation") String luggageLocation,
+                             @RequestParam("luggageLocationId") String luggageLocationId,
+                             @RequestParam("luggageNum") Integer luggageNum,
+                             @RequestParam(value = "img1",required = false) MultipartFile img,
+                             @RequestParam(value = "img2",required = false) MultipartFile img2,
+                             @RequestParam(value = "img3",required = false) MultipartFile img3,
+                             @RequestParam(value = "img4",required = false) MultipartFile img4,
+                             @RequestParam(value = "img5",required = false) MultipartFile img5) throws IOException {
+        return billLuggageService.addLuggage(httpServletRequest,farmId,userName,phone,luggageDate,luggageLocation,luggageLocationId,luggageNum,img,img2,img3,img4,img5);
+    }
+
+    @PostMapping("/listPersonalLuggage")
+    public Result listPersonalLuggage(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billLuggageService.listPersonalLuggage(httpServletRequest,paramsMap);
+    }
+
+    @PostMapping("/getDetail")
+    public Result getDetail(@RequestBody Map<String, String> paramsMap){
+        return new Result(ResultCode.SUCCESS,billLuggageService.getById(paramsMap.get("id")));
+    }
+
     @PostMapping("/listLuggage")
     public Result listLuggage( @RequestBody Map<String, String> paramsMap){
         return billLuggageService.listLuggage( paramsMap);

+ 71 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillPcrController.java

@@ -1,12 +1,20 @@
 package com.huimv.secure.controller;
 
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.entity.Configuration;
 import com.huimv.secure.service.IBillPcrService;
+import com.huimv.secure.service.IConfigurationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -24,6 +32,40 @@ public class BillPcrController {
 
     @Autowired
     private IBillPcrService billPcrService;
+    @Autowired
+    private IBillPcrService pcrService;
+    @Autowired
+    private IConfigurationService configurationService;
+
+    @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,
+                          @RequestParam("farmId") String farmId,
+                          @RequestParam("id") String id,
+                          @RequestParam("date") String date,
+                          @RequestParam("result") String result,
+                          @RequestParam(value = "img1",required = false) MultipartFile img1,
+                          @RequestParam(value = "img2",required = false) MultipartFile img2,
+                          @RequestParam(value = "img3",required = false) MultipartFile img3) throws ParseException, IOException {
+        return pcrService.edit(httpServletRequest, farmId,id,date,result,img1,img2,img3);
+    }
+
+    @PostMapping("/listPersonalPcr")
+    public Result listPersonalPcr(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billPcrService.listPersonalPcr(httpServletRequest,paramsMap);
+    }
+    @PostMapping("/getDetail")
+    public Result getDetail(@RequestBody Map<String, String> paramsMap){
+        return new Result(ResultCode.SUCCESS, billPcrService.getById(paramsMap.get("id")));
+    }
+
     //后台
     @PostMapping("/pcrWhole")
     public Result pcrWhole(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
@@ -48,4 +90,33 @@ public class BillPcrController {
     public Result selectList(HttpServletRequest httpServletRequest,@RequestBody Map<String, String> paramsMap){
         return billPcrService.selectList(httpServletRequest, paramsMap);
     }
+    @PostMapping("/delete")
+    public Result delete(HttpServletRequest httpServletRequest,@RequestBody Map<String, String> paramsMap){
+        String ids = paramsMap.get("ids");
+        String[] split = ids.split(",");
+        for (String s : split) {
+            billPcrService.removeById(s);
+        }
+        return new Result(10000,"删除成功!",true);
+    }
+    @PostMapping("/editTime")
+    public Result editTime(HttpServletRequest httpServletRequest,@RequestBody Map<String, String> paramsMap){
+        String time = paramsMap.get("time");
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<Configuration> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        Configuration configuration = configurationService.getOne(queryWrapper);
+        if (ObjectUtil.isEmpty(configuration)) {
+            Configuration configuration1 = new Configuration();
+            configuration1.setClean(2);
+            configuration1.setDry(2);
+            configuration1.setFarmId(farmId);
+            configuration1.setPcr(Integer.parseInt(time));
+            configurationService.save(configuration1);
+            return new Result(10000, "添加成功!", true);
+        }
+        configuration.setPcr(Integer.parseInt(time));
+        configurationService.updateById(configuration);
+        return new Result(10000,"保存成功!",true);
+    }
 }

+ 145 - 5
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/BillPersonnelAdmissionController.java

@@ -1,17 +1,25 @@
 package com.huimv.secure.controller;
 
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.entity.BillGoodsInventory;
+import com.huimv.secure.entity.BillIsolate;
+import com.huimv.secure.entity.BillPersonnelAdmission;
+import com.huimv.secure.entity.vo.BillAdmissionAndGoods;
+import com.huimv.secure.mapper.BillGoodsInventoryMapper;
 import com.huimv.secure.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 org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 import java.text.ParseException;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -26,6 +34,138 @@ import java.util.Map;
 @RequestMapping("/bill-personnel-admission")
 @CrossOrigin
 public class BillPersonnelAdmissionController {
+
+    //app
+    @Autowired
+    private IBillPersonnelAdmissionService billPersonnelAdmissionService;
+    @Resource
+    private BillGoodsInventoryMapper billGoodsInventoryMapper;
+
+    @PostMapping("/addAdmission")
+    public Result addAdmission(HttpServletRequest httpServletRequest, @RequestParam("admissionType") String admissionType,
+                               @RequestParam("vistitType") String vistitType,
+                               @RequestParam("userName") String userName,
+                               @RequestParam("phone") String phone,
+                               @RequestParam("workName") String workName,
+                               @RequestParam("papersType") String papersType,
+                               @RequestParam("papersCode") String papersCode,
+                               @RequestParam(value = "imgUrl",required = false) MultipartFile imgUrl,
+                               @RequestParam(value = "img",required = false) String img,
+                               @RequestParam("vistitDate") String vistitDate,
+                               @RequestParam("vistitReson") String vistitReson,
+                               @RequestParam("destId") String destId,
+                               @RequestParam("destName") String destName,
+                               @RequestParam(value = "carNum",required = false) String carNum,
+                               @RequestParam(value = "source",required = false) String source,
+                               @RequestParam(value = "goods",required = false) String goods,
+                               @RequestParam("farmId") String farmId) throws IOException, ParseException {
+        return billPersonnelAdmissionService.addAdmission(httpServletRequest,admissionType,vistitType,userName,phone,workName,papersType,papersCode,imgUrl,img,vistitDate,vistitReson,destId,destName,farmId,carNum,source,goods);
+    }
+
+    @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) throws IOException {
+        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);
+    }
+
+    @RequestMapping("/cleanById")
+    public Result cleanById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return admissionService.listByIdClean(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/editClean")
+    public Result editClean(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return admissionService.editClean(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/editDry")
+    public Result editDry(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return admissionService.editDry(httpServletRequest, paramsMap);
+    }
+
+    @PostMapping("/listPersonalAdmission")
+    public Result listPersonalAdmission(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billPersonnelAdmissionService.listPersonalAdmission(httpServletRequest,paramsMap);
+    }
+
+    @PostMapping("/listAdmission")
+    public Result listAdmission(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billPersonnelAdmissionService.listAdmission(httpServletRequest,paramsMap);
+    }
+    @PostMapping("/uploadImgAndAdmissin")
+    public Result uploadImgAndAdmissin(@RequestParam(value = "imgUrl") MultipartFile imgUrl,
+                                       @RequestParam(value = "id") Integer id) throws IOException {
+        return billPersonnelAdmissionService.uploadImgAndAdmissin(imgUrl,id);
+    }
+
+    @PostMapping("/handleAdmission")
+    public Result handleAdmission (HttpServletRequest httpServletRequest,@RequestBody Map<String, String> paramsMap) throws IOException {
+        return billPersonnelAdmissionService.handleAdmission(httpServletRequest,paramsMap);
+    }
+
+    @PostMapping("/listAll")
+    public Result listAll(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billPersonnelAdmissionService.listAll(httpServletRequest,paramsMap);
+    }
+
+    @PostMapping("/getDetail")
+    public Result getDetail(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
+        return billPersonnelAdmissionService.getDetail(httpServletRequest,paramsMap);
+    }
+
+    @PostMapping("/getById")
+    public Result getById(@RequestBody Map<String, String> paramsMap){
+        BillPersonnelAdmission billPersonnelAdmission = billPersonnelAdmissionService.getById(paramsMap.get("id"));
+        BillAdmissionAndGoods billAdmissionAndGoods = new BillAdmissionAndGoods();
+        BeanUtil.copyProperties(billPersonnelAdmission,billAdmissionAndGoods);
+        List<BillGoodsInventory> billGoodsInventories = billGoodsInventoryMapper.selectList(new QueryWrapper<BillGoodsInventory>().eq("bill_admission", paramsMap.get("id")));
+        billAdmissionAndGoods.setGoods(billGoodsInventories);
+        return new Result(ResultCode.SUCCESS,billAdmissionAndGoods);
+    }
+
+    @RequestMapping("/listDoor")
+    public Result listDoor(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return admissionService.listDoor(httpServletRequest, paramsMap);
+    }
+
+
+
+
+
+
+
+
+
+
+
+
     @Autowired
     private IBillPersonnelAdmissionService admissionService;
 

+ 93 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/FarmController.java

@@ -0,0 +1,93 @@
+package com.huimv.secure.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.common.token.TokenSign;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.entity.Farm;
+import com.huimv.secure.service.IFarmService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/admin/farm")
+public class FarmController {
+
+
+    @Autowired
+    private IFarmService farmService;
+
+    @GetMapping("/getFarm")
+    public Result getFarm(HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return  farmService.getFarm(userId);
+    }
+
+    @PostMapping("/listByRowStatus")
+    public Result listByRowStatus(){
+
+        return  new Result(ResultCode.SUCCESS,farmService.list(new QueryWrapper<Farm>().eq("row_status",1).orderByAsc("farm_name")));
+    }
+
+    @GetMapping("/getFarm2")
+    public Result getFarm2(HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return  farmService.getFarm2(userId);
+    }
+    @PostMapping("/list")
+    public Result list(HttpServletRequest request ,@RequestBody Map paramMap){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return  farmService.listPage(userId,paramMap);
+    }
+
+    @PostMapping("/add")
+    public Result add(@RequestBody Farm farm, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        if (userId != 1){
+            return new Result(10001,"该账号不能操作牧场",false);
+        }
+        return  farmService.add(farm);
+    }
+
+    @PostMapping("/edit")
+    public Result edit(@RequestBody Farm farm, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        if (userId != 1){
+            return new Result(10001,"该账号不能操作牧场",false);
+        }
+        farmService.updateById(farm);
+        return new Result(10000,"修改成功",true);
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(name = "ids") List<Integer> ids, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        if (userId != 1){
+            return new Result(10001,"该账号不能操作牧场",false);
+        }
+        farmService.removeByIds(ids);
+        return new Result(10000,"删除成功",true);
+    }
+
+    @PostMapping("/listFunction")
+    public Result listFunction(@RequestBody Map<String,String> paramsMap){
+        String farmId = paramsMap.get("farmId");
+        return  new Result(ResultCode.SUCCESS,farmService.getById(farmId).getFunction());
+    }
+
+
+}

+ 345 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/LoginController.java

@@ -0,0 +1,345 @@
+package com.huimv.secure.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.common.exception.ExceptionEnum;
+import com.huimv.secure.common.exception.MiException;
+import com.huimv.secure.common.token.TokenSign;
+import com.huimv.secure.common.utils.*;
+import com.huimv.secure.entity.SysAccountMultilevel;
+import com.huimv.secure.entity.dto.WeCahtVo;
+import com.huimv.secure.service.ILoginService;
+import com.huimv.secure.service.ISysAccountMultilevelService;
+import com.huimv.secure.session.AccessToken;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@RestController
+@RequestMapping(value = "/admin/my")
+@CrossOrigin
+public class LoginController {
+
+    @Autowired
+    ILoginService iLoginService;
+    @Autowired
+    private ISysAccountMultilevelService accountMultilevelService;
+
+    @Autowired
+    private UploadImage uploadImage;
+
+    @RequestMapping("/test")
+    public String logout() {
+        return "线上服务器1";
+    }
+
+    @RequestMapping("/logout")
+    public Result logout(@RequestParam(name = "accountName", required = true) String accountName, @RequestParam(name = "password", required = true) String password) {
+        return iLoginService.logout();
+    }
+
+    @Autowired
+    private RedisTemplate<String, String> redisTemplate;
+
+    @GetMapping("/send")
+    public void createImg(HttpServletRequest request, HttpServletResponse response) {
+        try {
+            //设置响应类型,告诉浏览器输出的内容为图片
+            response.setContentType("image/jpeg");
+            //设置响应头信息,告诉浏览器不要缓存此内容
+            response.setHeader("Pragma", "No-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            response.setDateHeader("Expire", 0);
+            VerifyUtil randomValidateCode = new VerifyUtil();
+            //输出验证码图片
+            String code = randomValidateCode.getRandcode(request, response);
+            System.out.println(code);
+            //将生成的随机验证码存放到redis中
+            String remoteHost = request.getRemoteHost();
+            redisTemplate.opsForValue().set(remoteHost, code, 300, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            System.out.println("获取验证码异常:" + e);
+            throw new MiException(ExceptionEnum.VERIFCATION_FAID);
+        }
+    }
+
+    //登录-多牧场
+    @PostMapping(value = "/loginMultilevel")
+    public Result loginMultilevel(HttpServletRequest req, @RequestBody Map<String, String> map) {
+
+
+        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 accountEntity = (SysAccountMultilevel) result.getData();
+            Integer id = accountEntity.getId();
+            IpTools.getRemoteHost(req);
+            AccessToken accessToken = new AccessToken();
+            accessToken.setCreated(new Date());
+            accessToken.setAccountName(accountName);
+            accessToken.setFarmId(accountEntity.getFarmId());
+            String token = TokenSign.sign(accountName, id, accountEntity.getFarmId(), null, null);
+            accessToken.setToken(token);
+
+            accessToken.setId(id);
+            accessToken.setLoginIp(remoteHost);
+            accessToken.setType(accountEntity.getType());
+            String lastFarmId = accountEntity.getLastFarmId();
+            if (ObjectUtil.isEmpty(lastFarmId)) {
+                lastFarmId = accountEntity.getFarmIds().split(",")[0];
+            }
+            accessToken.setLastFarmId(lastFarmId);
+            accessToken.setUserName(accountEntity.getUserName());
+
+            return new Result(ResultCode.SUCCESS, accessToken);
+        }
+        return result;
+    }
+
+    @PostMapping(value = "/switchUserType")
+    public Result switchUserType(HttpServletRequest req, @RequestBody Map<String, String> map) {
+        Integer userId = TokenSign.getMemberIdByJwtToken(req);
+
+        String type = map.get("type");
+        String remoteHost = req.getRemoteHost();
+        // 未对密码加密
+            SysAccountMultilevel accountEntity = accountMultilevelService.getById(userId);
+
+            accountEntity.setType(Integer.parseInt(type));
+            accountMultilevelService.updateById(accountEntity);
+
+            Integer id = accountEntity.getId();
+            IpTools.getRemoteHost(req);
+            AccessToken accessToken = new AccessToken();
+            accessToken.setCreated(new Date());
+            accessToken.setAccountName(accountEntity.getAccount());
+            accessToken.setFarmId(accountEntity.getFarmId());
+            String token = TokenSign.sign(accountEntity.getAccount(), id, accountEntity.getFarmId(), accountEntity.getWorkLocationType()+"", accountEntity.getType());
+            accessToken.setToken(token);
+
+            accessToken.setId(id);
+            accessToken.setLoginIp(remoteHost);
+            accessToken.setType(accountEntity.getType());
+            String lastFarmId = accountEntity.getLastFarmId();
+            if (ObjectUtil.isEmpty(lastFarmId)) {
+                lastFarmId = accountEntity.getFarmIds().split(",")[0];
+            }
+            accessToken.setLastFarmId(lastFarmId);
+            accessToken.setUserName(accountEntity.getUserName());
+            accessToken.setSysAccountMultilevel(accountEntity);
+
+            return new Result(ResultCode.SUCCESS, accessToken);
+    }
+
+    //测试-token
+    @PostMapping(value = "/getToken")
+    public String getToken(HttpServletRequest req) {
+        String token = TokenSign.sign("superadmin", 1, null, null, null);
+        return token;
+    }
+
+    @PostMapping(value = "/loginMultilevelClent")
+    public Result loginMultilevelClent(HttpServletRequest req, @RequestBody Map<String, String> map) {
+
+
+        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 accountEntity = (SysAccountMultilevel) result.getData();
+            Integer id = accountEntity.getId();
+            IpTools.getRemoteHost(req);
+            AccessToken accessToken = new AccessToken();
+            accessToken.setCreated(new Date());
+            accessToken.setAccountName(accountName);
+            accessToken.setFarmId(accountEntity.getFarmId());
+            String token = TokenSign.sign(accountName, id, accountEntity.getFarmId(), null, null);
+            accessToken.setToken(token);
+
+            accessToken.setId(id);
+            accessToken.setLoginIp(remoteHost);
+            accessToken.setType(accountEntity.getType());
+            String lastFarmId = accountEntity.getLastFarmId();
+            if (ObjectUtil.isEmpty(lastFarmId)) {
+                lastFarmId = accountEntity.getFarmIds().split(",")[0];
+            }
+            accessToken.setLastFarmId(lastFarmId);
+            accessToken.setUserName(accountEntity.getUserName());
+
+            return new Result(ResultCode.SUCCESS, accessToken);
+        }
+        return result;
+    }
+
+    @RequestMapping("/logoutClient")
+    public Result logoutClient(HttpServletRequest req, @RequestBody Map<String, String> map) {
+        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.setSysAccountMultilevel(data);
+            accessToken.setAccountName(accountName);
+            accessToken.setUserName(data.getUserName());
+            accessToken.setFarmId(data.getFarmId());
+            accessToken.setType(data.getType());
+            accessToken.setId(data.getId());
+            String token = TokenSign.sign(data.getUserName(), data.getId(), data.getFarmId(), data.getWorkLocationType()+"", data.getType());
+            accessToken.setToken(token);
+            String lastFarmId = data.getLastFarmId();
+            if (ObjectUtil.isEmpty(lastFarmId)) {
+                lastFarmId = data.getFarmIds().split(",")[0];
+            }
+            accessToken.setLastFarmId(lastFarmId);
+            accessToken.setLoginIp(remoteHost);
+            return new Result(ResultCode.SUCCESS, accessToken);
+        } else {
+            return result;
+        }
+    }
+
+
+    @GetMapping("/logoutWeChat")
+    public Result logoutWeChat(HttpServletRequest req, @RequestParam String jsCode) {
+        String remoteHost = req.getRemoteHost();
+        Map<String, Object> paramsMap = new HashMap<>();
+        paramsMap.put("appid", "wxa28e45fe5cb10ff1");
+        paramsMap.put("secret", "c16e584ec6e69fd35edd98ec21ec5e94");
+        paramsMap.put("js_code", jsCode);
+        paramsMap.put("grant_type", "authorization_code");
+        String result = HttpUtil.get("https://api.weixin.qq.com/sns/jscode2session", paramsMap);
+        System.out.println(result);
+        JSONObject jsonObject = JSON.parseObject(result);
+        System.out.println(jsonObject);
+        String openid = (String) jsonObject.get("openid");
+        String sessionKey = (String) jsonObject.get("session_key");
+        System.out.println("拿到了openid" + openid);
+        System.out.println("拿到了sessionKey" + sessionKey);
+        QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("wechat_id", openid);
+        SysAccountMultilevel data = accountMultilevelService.getOne(queryWrapper);
+        WeCahtVo weCahtVo = new WeCahtVo();
+        weCahtVo.setOpenId(openid);
+        weCahtVo.setSessionKey(sessionKey);
+        if (ObjectUtil.isEmpty(data)) {
+            return new Result(ResultCode.FAIL, weCahtVo);
+        } else {
+            AccessToken accessToken = new AccessToken();
+            accessToken.setSysAccountMultilevel(data);
+            accessToken.setAccountName(data.getAccount());
+            accessToken.setUserName(data.getUserName());
+            accessToken.setFarmId(data.getFarmId());
+            accessToken.setType(data.getType());
+            accessToken.setId(data.getId());
+            String token = TokenSign.sign(data.getUserName(), data.getId(), data.getFarmId(), data.getWorkLocationType()+"", 7);
+            accessToken.setToken(token);
+            String lastFarmId = data.getLastFarmId();
+            if (ObjectUtil.isEmpty(lastFarmId)) {
+                lastFarmId = data.getFarmIds().split(",")[0];
+            }
+            accessToken.setLastFarmId(lastFarmId);
+            accessToken.setLoginIp(remoteHost);
+            return new Result(ResultCode.SUCCESS, accessToken);
+        }
+    }
+
+    @GetMapping("/logWeChatGetPhone")
+    public Result logWeChatGetPhone(HttpServletRequest req, @RequestParam String jsCode) {
+        String access_token ="";
+        if ( !redisTemplate.hasKey("weChatGetPhone") || redisTemplate.getExpire("weChatGetPhone") ==null || redisTemplate.getExpire("weChatGetPhone") <=0){
+            String result = HttpUtil.get("https://api.weixin.qq.com/cgi-bin/token?appid=wxa28e45fe5cb10ff1&secret=c16e584ec6e69fd35edd98ec21ec5e94&grant_type=client_credential");
+            System.out.println(result);
+            JSONObject jsonObject = JSON.parseObject(result);
+            access_token =  (String) jsonObject.get("access_token");
+            redisTemplate.opsForValue().set("weChatGetPhone",access_token);
+            redisTemplate.expire("weChatGetPhone",7200,TimeUnit.SECONDS);
+        }else {
+            access_token = redisTemplate.opsForValue().get("weChatGetPhone");
+        }
+        RestTemplate restTemplate = new RestTemplate();
+        Map<String, Object> paramsMap = new HashMap<>();
+        paramsMap.put("code", jsCode);
+        ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + access_token, paramsMap, String.class);
+
+        System.out.println(stringResponseEntity.getBody());
+        return new Result(ResultCode.SUCCESS,JSON.parseObject(stringResponseEntity.getBody()));
+    }
+
+
+    @PostMapping("/register")
+    public Result addAdmission(HttpServletRequest req, @RequestParam("userName") String userName,
+                               @RequestParam("phone") String phone,
+//                               @RequestParam("workName") String workName,
+                               @RequestParam("papersType") String papersType,
+                               @RequestParam("papersCode") String papersCode,
+                               @RequestParam(value = "imgUrl", required = false) MultipartFile imgUrl,
+                               @RequestParam("openId") String openId) throws IOException {
+        String remoteHost = req.getRemoteHost();
+        QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("phone", phone).or().eq("papers_code", papersCode);
+        if (ObjectUtil.isNotEmpty(accountMultilevelService.getOne(queryWrapper))) {
+            return new Result(10001, "该手机号或身份证号已被使用!", false);
+        }
+        if (!PhoneNumberValidator.isValidPhoneNumber(phone)) {
+            return new Result(10001, "手机号格式错误!", false);
+        }
+        if (papersType.equals("0")) {
+            if (!IDCardValidator.isValidIDCard(papersCode)) {
+                return new Result(10001, "身份证号格式错误!", false);
+            }
+        }
+        SysAccountMultilevel sysAccountMultilevel = new SysAccountMultilevel();
+        sysAccountMultilevel.setUserName(userName);
+        sysAccountMultilevel.setPhone(phone);
+        sysAccountMultilevel.setAccount(phone);
+        sysAccountMultilevel.setPassword("123456");
+        sysAccountMultilevel.setAccountStatus(1);
+        sysAccountMultilevel.setFarmId("25");
+        sysAccountMultilevel.setWechatId(openId);
+        sysAccountMultilevel.setType(7);
+        String imageCom = uploadImage.getImageCom(imgUrl);
+        if (imageCom.equals("上传失败")) {
+            return new Result(10001, "图片上传失败!", false);
+        }
+        sysAccountMultilevel.setImgUrl(imageCom);
+        accountMultilevelService.save(sysAccountMultilevel);
+        AccessToken accessToken = new AccessToken();
+        accessToken.setSysAccountMultilevel(sysAccountMultilevel);
+        accessToken.setAccountName(sysAccountMultilevel.getAccount());
+        accessToken.setUserName(sysAccountMultilevel.getUserName());
+        accessToken.setFarmId(sysAccountMultilevel.getFarmId());
+        accessToken.setType(sysAccountMultilevel.getType());
+        accessToken.setId(sysAccountMultilevel.getId());
+        String token = TokenSign.sign(sysAccountMultilevel.getUserName(), sysAccountMultilevel.getId(), sysAccountMultilevel.getFarmId(), sysAccountMultilevel.getWorkLocationType()+"", sysAccountMultilevel.getType());
+        accessToken.setToken(token);
+
+        accessToken.setLoginIp(remoteHost);
+        return new Result(ResultCode.SUCCESS, accessToken);
+    }
+}

+ 2 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/controller/SysUserController.java

@@ -56,6 +56,7 @@ public class SysUserController {
                       @RequestParam(value = "entryTime",required = false) String entryTime,
                       @RequestParam(value = "job",required = false) String job,
                       @RequestParam(value = "workLocation",required = false) String workLocation,
+                      @RequestParam(value = "workLocationType",required = false) Integer workLocationType,
                       @RequestParam(value = "farmId",required = false) String farmId,
                       @RequestParam(value = "sheng",required = false) String sheng,
                       @RequestParam(value = "shi",required = false) String shi,
@@ -74,6 +75,7 @@ public class SysUserController {
         }
         sysUser.setJob(job);
         sysUser.setWorkLocation(workLocation);
+        sysUser.setWorkLocationType(workLocationType);
         sysUser.setFarmId(farmId);
         sysUser.setSheng(sheng);
         sysUser.setShi(shi);

+ 1 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseDevice.java

@@ -68,7 +68,7 @@ public class BaseDevice implements Serializable {
      */
     private LocalDateTime createTime;
 
-    private Integer farmId;
+    private String farmId;
 
 
 }

+ 2 - 2
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseFarm.java

@@ -24,8 +24,8 @@ public class BaseFarm implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    @TableId(value = "id")
+    private String id;
 
     private String farmName;
 

+ 1 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseLocation.java

@@ -32,7 +32,7 @@ public class BaseLocation implements Serializable {
      */
     private String locationName;
 
-    private Integer farmId;
+    private String farmId;
 
     /**
      * 1人员初级洗消站 2净区 3人员二级洗消站 4场内 5生产区 6车辆初级洗消站 7车辆二级洗消站 8中转料塔外围 9车辆三级洗消站 10销售中转站 11环保区洗消中心 12环保区净区 13洗消中心净区

+ 3 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BaseProcess.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -51,7 +53,7 @@ public class BaseProcess implements Serializable {
     /**
      * 提交时间
      */
-    private LocalDateTime subDate;
+    private Date subDate;
 
     /**
      * 用,分割  修改时间

+ 4 - 2
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillAccessDoor.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -36,7 +38,7 @@ public class BillAccessDoor implements Serializable {
     /**
      * 检测时间
      */
-    private LocalDateTime checkDate;
+    private Date checkDate;
 
     /**
      * 检测地点
@@ -60,7 +62,7 @@ public class BillAccessDoor implements Serializable {
      */
     private String userName;
 
-    private Integer farmId;
+    private String farmId;
 
 
 }

+ 6 - 4
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillClean.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -56,14 +58,14 @@ public class BillClean implements Serializable {
     /**
      * 来访时间
      */
-    private LocalDateTime vistitDate;
+    private Date vistitDate;
 
     /**
      * 提交时间
      */
     private LocalDateTime subDate;
 
-    private Integer farmId;
+    private String farmId;
 
     /**
      * 当前状态 0待审批 1合格  2异常
@@ -73,7 +75,7 @@ public class BillClean implements Serializable {
     /**
      * 处理时间
      */
-    private LocalDateTime passDate;
+    private Date passDate;
 
     /**
      * 处理人
@@ -93,7 +95,7 @@ public class BillClean implements Serializable {
     /**
      * 检测时间
      */
-    private LocalDateTime checkDate;
+    private Date checkDate;
 
     /**
      * 检测地点

+ 6 - 4
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillDry.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -56,14 +58,14 @@ public class BillDry implements Serializable {
     /**
      * 来访时间
      */
-    private LocalDateTime vistitDate;
+    private Date vistitDate;
 
     /**
      * 提交时间
      */
     private LocalDateTime subDate;
 
-    private Integer farmId;
+    private String farmId;
 
     /**
      * 当前状态 0待审批 1合格  2异常
@@ -73,7 +75,7 @@ public class BillDry implements Serializable {
     /**
      * 处理时间
      */
-    private LocalDateTime passDate;
+    private Date passDate;
 
     /**
      * 处理人
@@ -93,7 +95,7 @@ public class BillDry implements Serializable {
     /**
      * 检测时间
      */
-    private LocalDateTime checkDate;
+    private Date checkDate;
 
     /**
      * 检测地点

+ 4 - 2
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillGate.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -36,7 +38,7 @@ public class BillGate implements Serializable {
     /**
      * 检测时间
      */
-    private LocalDateTime checkDate;
+    private Date checkDate;
 
     /**
      * 检测地点
@@ -60,7 +62,7 @@ public class BillGate implements Serializable {
      */
     private String userName;
 
-    private Integer farmId;
+    private String farmId;
 
     /**
      * 车牌照片

+ 3 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillGoodsInventory.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -68,7 +70,7 @@ public class BillGoodsInventory implements Serializable {
      */
     private String goodsUnit;
 
-    private LocalDateTime createDate;
+    private Date createDate;
 
     private String farmId;
 

+ 15 - 6
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillIsolate.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -56,14 +59,16 @@ public class BillIsolate implements Serializable {
     /**
      * 来访时间
      */
-    private LocalDateTime vistitDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm" ,timezone = "GMT+8")
+    private Date vistitDate;
 
     /**
      * 提交时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm" ,timezone = "GMT+8")
     private LocalDateTime subDate;
 
-    private Integer farmId;
+    private String farmId;
 
     /**
      * 当前状态 0待隔离 1隔离中  2已完成 3提前解除
@@ -73,7 +78,8 @@ public class BillIsolate implements Serializable {
     /**
      * 处理时间
      */
-    private LocalDateTime passDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm" ,timezone = "GMT+8")
+    private Date passDate;
 
     /**
      * 处理人
@@ -100,12 +106,14 @@ public class BillIsolate implements Serializable {
     /**
      * 隔离开始时间
      */
-    private LocalDateTime isolateStartDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm" ,timezone = "GMT+8")
+    private Date isolateStartDate;
 
     /**
      * 隔离结束时间
      */
-    private LocalDateTime isolateEndDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm" ,timezone = "GMT+8")
+    private Date isolateEndDate;
 
     /**
      * 隔离天数
@@ -120,7 +128,8 @@ public class BillIsolate implements Serializable {
     /**
      * 真实隔离结束时间
      */
-    private LocalDateTime isolateRealEndDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm" ,timezone = "GMT+8")
+    private Date isolateRealEndDate;
 
     /**
      * 手机号

+ 1 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillLuggage.java

@@ -59,7 +59,7 @@ public class BillLuggage implements Serializable {
      */
     private String articlePicUrl;
 
-    private Integer farmId;
+    private String farmId;
 
 
 }

+ 8 - 4
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillPcr.java

@@ -7,6 +7,7 @@ import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -63,16 +64,19 @@ public class BillPcr implements Serializable {
     /**
      * 来访时间
      */
-    private LocalDateTime vistitDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm ss" ,timezone = "GMT+8")
+    private Date vistitDate;
 
     /**
      * 提交时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm ss" ,timezone = "GMT+8")
     private LocalDateTime subDate;
 
     /**
      * 检测时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm ss" ,timezone = "GMT+8")
     private Date checkDate;
 
     /**
@@ -83,7 +87,7 @@ public class BillPcr implements Serializable {
     /**
      * 处理时间
      */
-    private LocalDateTime passDate;
+    private Date passDate;
 
     /**
      * 处理人
@@ -100,7 +104,7 @@ public class BillPcr implements Serializable {
      */
     private Integer processId;
 
-    private Integer farmId;
+    private String farmId;
 
     private String testLocation;
 
@@ -116,7 +120,7 @@ public class BillPcr implements Serializable {
     /**
      * 车牌号
      */
-    private byte[] carNum;
+    private String carNum;
 
     /**
      * pcr有效期

+ 7 - 3
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/BillPersonnelAdmission.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -61,12 +64,13 @@ public class BillPersonnelAdmission implements Serializable {
     /**
      * 来访时间
      */
-    private LocalDateTime vistitDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm ss" ,timezone = "GMT+8")
+    private Date vistitDate;
 
     /**
      * 提交时间
      */
-    private LocalDateTime subDate;
+    private Date subDate;
 
     /**
      * 手机号
@@ -98,7 +102,7 @@ public class BillPersonnelAdmission implements Serializable {
      */
     private String vistitReson;
 
-    private Integer farmId;
+    private String farmId;
 
     /**
      * 当前状态 0待审批 1通过  2拒绝  3待上传物资信息

+ 42 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/Farm.java

@@ -0,0 +1,42 @@
+package com.huimv.secure.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("base_farm")
+public class Farm extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String farmName;
+
+    private String location;
+
+    private String frontLocation;
+
+
+    private Boolean rowStatus;
+    private String farmMenu;
+    private String farmTopMenu;
+    private String function;
+    
+}

+ 4 - 2
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/PeopleList.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -53,12 +55,12 @@ public class PeopleList implements Serializable {
     /**
      * 创建时间
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * 过期时间
      */
-    private LocalDateTime outTime;
+    private Date outTime;
 
     /**
      * 白名单类型 0为人员 1为车辆

+ 23 - 52
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/SysAccountMultilevel.java

@@ -1,9 +1,8 @@
 package com.huimv.secure.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -13,84 +12,56 @@ import lombok.experimental.Accessors;
  * 
  * </p>
  *
- * @author author
- * @since 2024-01-03
+ * @author astupidcoder
+ * @since 2021-10-14
  */
 @Data
-@EqualsAndHashCode(callSuper = false)
+@EqualsAndHashCode(callSuper = true)
 @Accessors(chain = true)
-@TableName("sys_account_multilevel")
-public class SysAccountMultilevel implements Serializable {
+public class SysAccountMultilevel extends Model {
 
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    /**
-     * 账号
-     */
     private String account;
 
+    private String password;
+
+    private Integer pid;
+
+    private String pids;
 
-    /**
-     * 状态 1启用,0未启用
-     */
     private Integer accountStatus;
 
+    private String farmIds;
 
     private String color;
 
+    private Boolean mode;
 
+    private String lastFarmId;
 
     private String userName;
+    private String farmNames;
 
-    /**
-     * 0管理员,1 场长 2 紧急进程审核员  ,3生物安全负责人 ,4 pcr 检测人员,5洗消站点工作人员 , 6员工,7访客
-     */
+    //0管理员,1 场长 2 紧急进程审核员  ,3生物安全负责人 ,4 pcr 检测人员,5洗消站点工作人员
     private Integer type;
 
-    /**
-     * 工作地点
-     */
     private String workLocation;
-
-    /**
-     * 1人员初级洗消站 2净区 3人员二级洗消站 4场内 5生产区 6车辆初级洗消站 7车辆二级洗消站 8中转料塔外围 9车辆三级洗消站 10销售中转站 11环保区洗消中心 12环保区净区 13洗消中心净区
-     */
     private Integer workLocationType;
-
-
-    /**
-     * 头像图片
-     */
+    //工作岗位 1 场长 2 紧急进程审核员  ,3生物安全负责人 ,4 pcr 检测人员,5洗消站点工作人员
+    private String workPost;
+    private String phone;
     private String imgUrl;
-
-
-
-    /**
-     * 密码
-     */
-    private String password;
-
-
-    /**
-     * 微信标识
-     */
+    private String workName;
+    //证件类型 0身份证 ,1护照
+    private String papersType;
+    private String papersCode;
     private String wechatId;
-
-    /**
-     * 车牌号
-     */
-    private String carNum;
-
-    /**
-     * 绑定用户id
-     */
     private Integer userId;
-
-
     private String farmId;
-
+    private String jobs;
 
 }

+ 1 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/pojo/UserPagePojo.java

@@ -9,7 +9,7 @@ public class UserPagePojo {
     private Integer size;
     private Integer gender;
     private String searchStr;
-    private Integer job;
+    private String job;
     private String workLocation;
     private Integer workLocationType;
     private String farmId;

+ 9 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/vo/GetFarmIdVo.java

@@ -0,0 +1,9 @@
+package com.huimv.secure.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class GetFarmIdVo {
+    private String farmId;
+    private String name;
+}

+ 10 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/entity/vo/GetFarmVo2.java

@@ -0,0 +1,10 @@
+package com.huimv.secure.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class GetFarmVo2 {
+    private List<GetFarmIdVo> list;
+}

+ 5 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BaseProcessMapper.java

@@ -2,6 +2,10 @@ package com.huimv.secure.mapper;
 
 import com.huimv.secure.entity.BaseProcess;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.secure.entity.vo.BaseProcessByLocationVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface BaseProcessMapper extends BaseMapper<BaseProcess> {
 
+    List<BaseProcessByLocationVo> pageByLocationId(@Param("locationId")String locationId, @Param("processId")String processId);
 }

+ 8 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BillCleanMapper.java

@@ -2,8 +2,11 @@ package com.huimv.secure.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.secure.entity.BillClean;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.secure.entity.vo.CleanAndDryVo;
+import com.huimv.secure.entity.vo.CleanAndDryVo2;
 import com.huimv.secure.entity.vo.CleanVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,5 +21,10 @@ import java.util.List;
  * @since 2024-01-03
  */
 public interface BillCleanMapper extends BaseMapper<BillClean> {
+
+    Page<CleanAndDryVo> listPersonalCleanAndDry(Page<CleanAndDryVo> page, Integer userId, String vistitType);
+    Page<CleanAndDryVo> listCleanAndDry(Page<CleanAndDryVo> page, Integer farmId, Integer status);
+    Page<CleanAndDryVo2> CleanAndDry(Page<CleanAndDryVo2> page, String farmId, String type, String[] status, String[] locations);
+    Page<CleanAndDryVo2> CleanAndDry2(Page<CleanAndDryVo2> page, String farmId, String[] status);
     List<CleanVo> listAll(@Param(Constants.WRAPPER) QueryWrapper<BillClean> queryWrapper);
 }

+ 7 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BillGoodsInventoryMapper.java

@@ -1,7 +1,13 @@
 package com.huimv.secure.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.secure.entity.BillGoodsInventory;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.secure.entity.vo.BillGoodsInventoryVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2024-01-03
  */
 public interface BillGoodsInventoryMapper extends BaseMapper<BillGoodsInventory> {
-
+    List<BillGoodsInventoryVo> listAll(@Param(Constants.WRAPPER) QueryWrapper<BillGoodsInventory> queryWrapper);
 }

+ 10 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/BillPersonnelAdmissionMapper.java

@@ -1,10 +1,13 @@
 package com.huimv.secure.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.secure.entity.BillPersonnelAdmission;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.secure.entity.vo.BillAdmissionVo;
+import com.huimv.secure.entity.vo.FactoryDirectorVo;
 import com.huimv.secure.entity.vo.ListAdmissionVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,6 +22,13 @@ import java.util.List;
  * @since 2024-01-03
  */
 public interface BillPersonnelAdmissionMapper extends BaseMapper<BillPersonnelAdmission> {
+
+
+    IPage<FactoryDirectorVo> listAll(String type, String farmId, IPage<FactoryDirectorVo> page);
+
+    IPage<FactoryDirectorVo> listCarAll(String type, String farmId, Page<FactoryDirectorVo> page);
+
+
     List<ListAdmissionVo> countAdmission(@Param(Constants.WRAPPER) QueryWrapper<BillPersonnelAdmission> queryWrapper);
 
     List<BillAdmissionVo> admissionTail(@Param(Constants.WRAPPER) QueryWrapper<BillPersonnelAdmission> queryWrapper);

+ 18 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/mapper/FarmMapper.java

@@ -0,0 +1,18 @@
+package com.huimv.secure.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.secure.entity.Farm;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Repository
+public interface FarmMapper extends BaseMapper<Farm> {
+
+}

+ 7 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBaseProcessService.java

@@ -1,8 +1,11 @@
 package com.huimv.secure.service;
 
+import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.entity.BaseProcess;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  * 流程表 服务类
@@ -13,4 +16,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBaseProcessService extends IService<BaseProcess> {
 
+
+    Result getOne(Map<String, String> map);
+
+    Result pageByLocationId(Map<String, String> map);
 }

+ 26 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillCleanService.java

@@ -3,8 +3,11 @@ package com.huimv.secure.service;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.entity.BillClean;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -16,6 +19,29 @@ import java.util.Map;
  * @since 2024-01-03
  */
 public interface IBillCleanService extends IService<BillClean> {
+
+    Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result listByIdDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result commitClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, String result, MultipartFile img1, MultipartFile img2, MultipartFile img3) throws ParseException, IOException;
+    Result listPersonalClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    //环保车
+    Result carClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, MultipartFile img1, MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5, String type) throws ParseException, IOException;
+
+    Result listCleanAndDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result listPersonalCleanAndDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    //饲料车
+    Result goodsCarClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, MultipartFile img1, MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5, String type, String result) throws ParseException, IOException;
+
+
+
+
     //后台
     Result listCount(Map<String, String> paramsMap);
 

+ 5 - 1
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillGoodsInventoryService.java

@@ -1,8 +1,12 @@
 package com.huimv.secure.service;
 
+import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.entity.BillGoodsInventory;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -12,5 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2024-01-03
  */
 public interface IBillGoodsInventoryService extends IService<BillGoodsInventory> {
-
+    Result listAll(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 }

+ 2 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillIsolateService.java

@@ -17,6 +17,8 @@ import java.util.Map;
  */
 public interface IBillIsolateService extends IService<BillIsolate> {
 
+    Result listPersonalIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
     //后台隔离曲线
     Result Isolate(Map<String, String> paramsMap);
 

+ 6 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillLuggageService.java

@@ -3,8 +3,10 @@ package com.huimv.secure.service;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.entity.BillLuggage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -17,6 +19,10 @@ import java.util.Map;
  */
 public interface IBillLuggageService extends IService<BillLuggage> {
 
+    Result addLuggage(HttpServletRequest httpServletRequest, String farmId, String userName, String phone, String luggageDate, String luggageLocation, String luggageLocationId, Integer luggageNum, MultipartFile img, MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5) throws IOException;
+
+    Result listPersonalLuggage(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
     Result listLuggage(Map<String, String> paramsMap);
 
     Result selectLuggage( Map<String, String> paramsMap);

+ 11 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillPcrService.java

@@ -3,8 +3,11 @@ package com.huimv.secure.service;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.entity.BillPcr;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -17,6 +20,14 @@ import java.util.Map;
  */
 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, String farmId, String id, String date, String result,
+                MultipartFile img1, MultipartFile img2, MultipartFile img3) throws ParseException, IOException;
+    Result listPersonalPcr(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
 
     //后台总体概况
     Result pcrWhole(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);

+ 44 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IBillPersonnelAdmissionService.java

@@ -1,10 +1,14 @@
 package com.huimv.secure.service;
 
 import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.entity.BillIsolate;
 import com.huimv.secure.entity.BillPersonnelAdmission;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -16,6 +20,46 @@ import java.util.Map;
  * @since 2024-01-03
  */
 public interface IBillPersonnelAdmissionService extends IService<BillPersonnelAdmission> {
+    //app
+
+    Result addAdmission(HttpServletRequest httpServletRequest, String admissionType, String vistitType, String userName,
+                        String phone, String workName, String papersType, String papersCode, MultipartFile imgUrl,
+                        String img, String vistitDate, String vistitReson, String destId, String destName, String farmId,
+                        String carNum, String source, String goods) throws IOException, ParseException;
+
+    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) throws IOException;
+
+    Result editIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException;
+
+    Result listClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result listByIdClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+    Result editClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException;
+    Result editDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException;
+
+    Result listPersonalAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result listAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws IOException;
+
+    Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result getDetail(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+    Result uploadImgAndAdmissin(MultipartFile imgUrl, Integer id) throws IOException;
+    //车辆闸机和人脸门禁
+    Result listDoor(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
     //后台入场申请报表
     Result countAdmission(Map<String, String> paramsMap);
 

+ 26 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/IFarmService.java

@@ -0,0 +1,26 @@
+package com.huimv.secure.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.entity.Farm;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+public interface IFarmService extends IService<Farm> {
+
+    Result getFarm(Integer userId);
+
+    Result add(Farm farm);
+
+    Result getFarm2(Integer userId);
+
+    Result listPage(Integer userId, Map paramMap);
+}

+ 14 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/ILoginService.java

@@ -0,0 +1,14 @@
+package com.huimv.secure.service;
+
+
+import com.huimv.secure.common.utils.Result;
+
+public interface ILoginService {
+
+
+    Result logout();
+
+    Result loginMultilevel(String accountName, String password);
+
+    Result loginMultilevelClient(String accountName, String password);
+}

+ 45 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BaseProcessServiceImpl.java

@@ -1,11 +1,22 @@
 package com.huimv.secure.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
 import com.huimv.secure.entity.BaseProcess;
+import com.huimv.secure.entity.vo.BaseProcessByLocationVo;
+import com.huimv.secure.entity.vo.BaseProcessVo;
 import com.huimv.secure.mapper.BaseProcessMapper;
 import com.huimv.secure.service.IBaseProcessService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 流程表 服务实现类
@@ -16,5 +27,39 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class BaseProcessServiceImpl extends ServiceImpl<BaseProcessMapper, BaseProcess> implements IBaseProcessService {
+    @Autowired
+    private BaseProcessMapper baseProcessMapper;
+    @Override
+    public Result getOne(Map<String, String> map) {
+        String id = map.get("processId");
+        BaseProcess byId = this.getById(id);
+        String[] allLocation = byId.getAllLocation().split(",");
+        String[] allLocationId = byId.getAllLocationId().split(",");
+        String[] allLocationStatus = byId.getAllLocationStatus().split(",");
+        List list = new ArrayList();
+        for (int i = 0; i < allLocation.length; i++) {
+            BaseProcessVo baseProcessVo = new BaseProcessVo();
+            baseProcessVo.setAllLocation(allLocation[i]);
+            baseProcessVo.setAllLocationId(allLocationId[i]);
+            baseProcessVo.setAllLocationSatus(allLocationStatus[i]);
+            list.add(baseProcessVo);
+        }
+
+        return new Result(ResultCode.SUCCESS,list);
+    }
 
+    @Override
+    public Result pageByLocationId(Map<String, String> map) {
+        String locationId = map.get("locationId");
+        String processId = map.get("processId");
+        List<BaseProcessByLocationVo> baseProcessByLocationVos =  baseProcessMapper.pageByLocationId(locationId,processId);
+        for (BaseProcessByLocationVo baseProcessByLocationVo : baseProcessByLocationVos) {
+            String imgUrl = baseProcessByLocationVo.getImgUrl();
+            if (StringUtils.isNotBlank(imgUrl)){
+                List<String> list = Arrays.asList(imgUrl.split(","));
+                baseProcessByLocationVo.setImgUrls(list);
+            }
+        }
+        return new Result(ResultCode.SUCCESS,baseProcessByLocationVos);
+    }
 }

+ 885 - 7
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillCleanServiceImpl.java

@@ -3,24 +3,33 @@ package com.huimv.secure.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.secure.common.token.TokenSign;
 import com.huimv.secure.common.utils.DataUill;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.common.utils.ResultCode;
-import com.huimv.secure.entity.BillClean;
+import com.huimv.secure.common.utils.UploadImage;
+import com.huimv.secure.entity.*;
+import com.huimv.secure.entity.vo.CleanAndDryVo;
+import com.huimv.secure.entity.vo.CleanAndDryVo2;
 import com.huimv.secure.entity.vo.CleanVo;
-import com.huimv.secure.mapper.BillCleanMapper;
+import com.huimv.secure.mapper.*;
 import com.huimv.secure.service.IBillCleanService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 import java.text.DecimalFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.*;
 
 /**
  * <p>
@@ -35,8 +44,877 @@ public class BillCleanServiceImpl extends ServiceImpl<BillCleanMapper, BillClean
 
     @Resource
     private BillCleanMapper billCleanMapper;
+    @Autowired
+    private BaseLocationMapper locationMapper;
+    @Autowired
+    private BillCleanMapper cleanMapper;
+    @Autowired
+    private BillDryMapper dryMapper;
+    @Autowired
+    private UploadImage uploadImage;
+    @Autowired
+    private BaseProcessMapper processMapper;
+    @Autowired
+    private ConfigurationMapper configurationMapper;
+    @Autowired
+    private ExistMapper existMapper;
+    @Autowired
+    private BillPcrMapper pcrMapper;
+    @Autowired
+    private BillIsolateMapper isolateMapper;
+    @Autowired
+    private BillPersonnelAdmissionMapper admissionMapper;
+
+
+    @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");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+        }
+        if ("".equals(pageSize) || null == pageSize) {
+            pageSize = "20";
+        }
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+        if ("".equals(data) || null == data) {
+            data = "0";
+        }
+        if (type.equals("0")) {
+
+            QueryWrapper<BaseLocation> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("id", TokenSign.getWorkIdByJwtToken(httpServletRequest));
+            List<BaseLocation> baseLocations = locationMapper.selectList(queryWrapper1);
+            List<Integer> ids = new ArrayList<>();
+            for (BaseLocation baseLocation : baseLocations) {
+                ids.add(baseLocation.getId());
+            }
+
+            Page<BillClean> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+            QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("vistit_type", type).orderByDesc("sub_date")
+                    .in("test_location_id", ids);
+
+            if ("0".equals(data)) {
+                queryWrapper.in("bill_status", 0, 1, 2);
+            }
+            if ("1".equals(data)) {
+                queryWrapper.eq("bill_status", 0);
+            }
+            if ("2".equals(data)) {
+                queryWrapper.eq("bill_status", 1);
+            }
+            QueryWrapper<BillClean> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("farm_id", farmId).eq("vistit_type", type).orderByDesc("sub_date")
+                    .in("test_location_id", ids).eq("bill_status", 0);
+
+            return new Result(ResultCode.SUCCESS, cleanMapper.selectPage(page, queryWrapper), cleanMapper.selectCount(queryWrapper2));
+        }/* else if (type.equals("4")) {
+            Page<BillClean> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+            QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("vistit_type", 4).orderByDesc("sub_date")
+                    .eq("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest));
+
+            if ("0".equals(data)) {
+                queryWrapper.in("bill_status", 0, 1, 2);
+            }
+            if ("1".equals(data)) {
+                queryWrapper.eq("bill_status", 0);
+            }
+            if ("2".equals(data)) {
+                queryWrapper.eq("bill_status", 1);
+            }
+            return new Result(ResultCode.SUCCESS, cleanMapper.selectPage(page, queryWrapper));
+        }*/ else {
+            Page<CleanAndDryVo2> cleanAndDryVo2Page = null;
+            Page<CleanAndDryVo2> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+            QueryWrapper<BaseLocation> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("location_type", TokenSign.getWorkIdByJwtToken(httpServletRequest));
+            List<BaseLocation> baseLocations = locationMapper.selectList(queryWrapper1);
+            QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("vistit_type", type);
+            QueryWrapper<BillDry> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("farm_id", farmId).eq("vistit_type", type);
+            if ("0".equals(data)) {
+                ArrayList<String> arrayList = new ArrayList<>();
+                for (BaseLocation baseLocation : baseLocations) {
+                    arrayList.add(baseLocation.getId().toString());
+                }
+                String[] s = arrayList.toArray(new String[arrayList.size()]);
+                System.out.println("传入自定义sql的位置参数形式:" + s);
+                cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, "0,1".split(","), s);
+                queryWrapper.in("test_location_id", arrayList);
+                queryWrapper2.in("test_location_id", arrayList);
+            }
+            if ("1".equals(data)) {
+                ArrayList<String> integerArrayList = new ArrayList<>();
+                for (BaseLocation baseLocation : baseLocations) {
+                    integerArrayList.add(baseLocation.getId().toString());
+                }
+                String[] ids = integerArrayList.toArray(new String[integerArrayList.size()]);
+                ArrayList<String> arrayList = new ArrayList<>();
+                arrayList.add("0");
+                String[] s = arrayList.toArray(new String[arrayList.size()]);
+                cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, s, ids);
+                queryWrapper.in("test_location_id", integerArrayList);
+                queryWrapper2.in("test_location_id", integerArrayList);
+            }
+            if ("2".equals(data)) {
+                ArrayList<String> integerArrayList = new ArrayList<>();
+                for (BaseLocation baseLocation : baseLocations) {
+                    integerArrayList.add(baseLocation.getId().toString());
+                }
+                String[] ids = integerArrayList.toArray(new String[integerArrayList.size()]);
+                ArrayList<String> arrayList = new ArrayList<>();
+                arrayList.add("1");
+                String[] s = arrayList.toArray(new String[arrayList.size()]);
+                cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, s, ids);
+                queryWrapper.in("test_location_id", integerArrayList);
+                queryWrapper2.in("test_location_id", integerArrayList);
+            }
+            queryWrapper.eq("img_status", 0);
+            queryWrapper2.eq("img_status", 0);
+            Integer integer = cleanMapper.selectCount(queryWrapper);
+            Integer integer1 = dryMapper.selectCount(queryWrapper2);
+            return new Result(ResultCode.SUCCESS, cleanAndDryVo2Page, integer + integer1);
+        }
+
+    }
+
+    @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 listByIdDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS, dryMapper.selectById(id));
+    }
+
+    @Override
+    public Result commitClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, String result
+            , MultipartFile img1, MultipartFile img2, MultipartFile img3) throws ParseException, IOException {
+
+        String s1 = "";
+        String s2 = "";
+        String s3 = "";
+        if (ObjectUtil.isNotEmpty(img1)) {
+            if (uploadImage.getImageCom(img1).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片1上传失败", false);
+            }
+            s1 = uploadImage.uploadImg(img1);
+        }
+        if (ObjectUtil.isNotEmpty(img2)) {
+            if (uploadImage.getImageCom(img2).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片2上传失败", false);
+            }
+            s2 = "," + uploadImage.uploadImg(img2);
+        }
+        if (ObjectUtil.isNotEmpty(img3)) {
+            if (uploadImage.getImageCom(img3).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片3上传失败", false);
+            }
+            s3 = "," + uploadImage.uploadImg(img3);
+        }
+        String s = s1 + s2 + s3;
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        if (StringUtils.isBlank(date)) {
+            date = sdf.format(new Date());
+        }
+        BillClean billClean = cleanMapper.selectById(id);//某条洗消记录
+        billClean.setImgUrl(s);
+        billClean.setImgStatus(1);
+
+        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("id", billClean.getTestLocationId());
+        BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
+
+        QueryWrapper<Configuration> queryWrapper3 = new QueryWrapper<>();
+        queryWrapper3.eq("farm_id", farmId);
+        Configuration configuration = configurationMapper.selectOne(queryWrapper3);
+
+        QueryWrapper<Exist> existQueryWrapper = new QueryWrapper<>();
+        existQueryWrapper.eq("farm_id", farmId);
+        Exist exist = existMapper.selectOne(existQueryWrapper);//判断是否有二级洗消站
+
+
+        if (billClean.getBillStatus() != 0) {
+            return new Result(10001, "该订单已通过,无需再次提交!", false);
+        }
+        //这个接口是人员流程的洗消点工作人员使用接口
+        if (billClean.getDestId() == 2) {
+            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())));
+                billClean.setCleanTime("10");
+                baseProcess.setProcessType(1);
+
+                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.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                baseProcess.setAllLocationStatus("2,2");
+            } 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())));
+                billClean.setCleanTime("10");
+                baseProcess.setProcessType(2);
+                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.setAllLocationStatus("2,3");
+                baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+            }
+        }
+        if (billClean.getDestId() == 3) {
+            if (billClean.getTestLocationId() == 2) {
+                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())));
+                    billClean.setCleanTime("10");
+                    //生成pcr检测申请
+                    BillPcr billPcr = new BillPcr();
+                    billPcr.setPcrType(0);
+                    billPcr.setPhone(billClean.getPhone());
+                    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(LocalDateTime.now());
+                    billPcr.setBillStatus(0);
+                    billPcr.setProcessId(billClean.getProcessId());
+                    billPcr.setFarmId(billClean.getFarmId());
+                    billPcr.setTestLocation("净道二级洗消站");
+                    billPcr.setTestLocationId(3);
+                    billPcr.setQualifiedDate(configuration.getPcr().toString());
+                    pcrMapper.insert(billPcr);
+                    baseProcess.setAllLocationStatus("2,2,1");
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
+                    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())));
+                    billClean.setCleanTime("10");
+                    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");
+                    baseProcess.setAllLocationStatus("2,3,0");
+                }
+            } else {
+                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())));
+                    billClean.setCleanTime("10");
+                    //生成隔离申请
+                    BillIsolate isolate = new BillIsolate();
+                    isolate.setPhone(billClean.getPhone());
+                    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(LocalDateTime.now());
+                    isolate.setFarmId(billClean.getFarmId());
+                    isolate.setBillStatus(0);
+                    isolate.setIsolateDayNum("");
+                    isolate.setProcessId(billClean.getProcessId());
+                    isolate.setIsolateLocation(baseLocation.getLocationName());
+                    isolate.setIsolateLocationId(baseLocation.getId());
+                    isolateMapper.insert(isolate);
+                    baseProcess.setAllLocationStatus("2,2,1");
+                    baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
+                    String status = baseProcess.getCurrentStatus();
+                    String substring = status.substring(0, status.length() - 1);
+                    baseProcess.setCurrentStatus(substring + "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())));
+                    billClean.setCleanTime("10");
+
+                    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.setAllLocationStatus("2,2,3");
+                }
+            }
+        }
+        processMapper.updateById(baseProcess);
+        cleanMapper.updateById(billClean);
+        return new Result(10000, "修改成功!", true);
+    }
+
+
+    @Override
+    public Result listPersonalClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String pageNo = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String vistitType = paramsMap.get("vistitType");
+        Page<BillClean> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
+        QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date");
+        return new Result(ResultCode.SUCCESS, billCleanMapper.selectPage(page, new QueryWrapper<BillClean>().eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date")), billCleanMapper.selectCount(queryWrapper));
+    }
+
+    @Override
+    public Result carClean(HttpServletRequest httpServletRequest, String farmId, String id, String data, MultipartFile img1, MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5, String type) throws ParseException, IOException {
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        if (StringUtils.isBlank(data)) {
+            data = sdf.format(new Date());
+        }
+
+
+        if ("1".equals(type)) {
+            BillClean billClean1 = cleanMapper.selectById(id);//某条洗消记录
+            if (billClean1.getBillStatus() != 0) {
+                return new Result(10001, "该订单已通过,无需再次提交!", false);
+            }
+            //洗消上传
+            BillClean billClean = cleanMapper.selectById(id);//某条洗消记录
+            System.out.println("洗消记录的id:" + billClean.getTestLocationId());
+            Integer testId = billClean.getTestLocationId();
+            QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
+            locationQueryWrapper.eq("id", testId);
+            BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
+
+            QueryWrapper<BaseProcess> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
+            BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
+
+            billClean.setBillStatus(0);
+            billClean.setImgStatus(1);
+            billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+            billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+            billClean.setTestLocation(baseLocation.getLocationName());
+            billClean.setTestLocationId(baseLocation.getId());
+            billClean.setCheckDate(sdf.parse(data));
+            billClean.setPassDate(sdf.parse(sdf.format(new Date())));
+            billClean.setCleanTime("10");
+            String s1 = "";
+            String s2 = "";
+            String s3 = "";
+            String s4 = "";
+            String s5 = "";
+            if (ObjectUtil.isNotEmpty(img1)) {
+                if (uploadImage.getImageCom(img1).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片1上传失败", false);
+                }
+                s1 = uploadImage.uploadImg(img1);
+            }
+            if (ObjectUtil.isNotEmpty(img2)) {
+                if (uploadImage.getImageCom(img2).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片2上传失败", false);
+                }
+                s2 = "," + uploadImage.uploadImg(img2);
+            }
+            if (ObjectUtil.isNotEmpty(img3)) {
+                if (uploadImage.getImageCom(img3).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片3上传失败", false);
+                }
+                s3 = "," + uploadImage.uploadImg(img3);
+            }
+            if (ObjectUtil.isNotEmpty(img4)) {
+                if (uploadImage.getImageCom(img4).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片4上传失败", false);
+                }
+                s4 = "," + uploadImage.uploadImg(img4);
+            }
+            if (ObjectUtil.isNotEmpty(img5)) {
+                if (uploadImage.getImageCom(img5).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片5上传失败", false);
+                }
+                s5 = "," + uploadImage.uploadImg(img5);
+            }
+            String s = s1 + s2 + s3 + s4 + s5;
+            billClean.setImgUrl(s);
+            cleanMapper.updateById(billClean);
+            //物资车生成二次申请
+
+        } else {
+            BillDry billClean = dryMapper.selectById(id);//某条烘干记录
+            if (billClean.getBillStatus() != 0) {
+                return new Result(10001, "该订单已通过,无需再次提交!", false);
+            }
+            System.out.println("洗消记录的id:" + billClean.getTestLocationId());
+            Integer testId = billClean.getTestLocationId();
+            QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
+            locationQueryWrapper.eq("id", testId);
+            BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
+
+            QueryWrapper<BaseProcess> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
+            BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
+
+            billClean.setBillStatus(0);
+            billClean.setImgStatus(1);
+            billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+            billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+            billClean.setTestLocation(baseLocation.getLocationName());
+            billClean.setTestLocationId(baseLocation.getId());
+            billClean.setCheckDate(sdf.parse(data));
+            billClean.setPassDate(sdf.parse(sdf.format(new Date())));
+            billClean.setDryTem("70");
+            billClean.setDryTime("10");
+            String s1 = "";
+            String s2 = "";
+            String s3 = "";
+            String s4 = "";
+            String s5 = "";
+            if (ObjectUtil.isNotEmpty(img1)) {
+                if (uploadImage.getImageCom(img1).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片1上传失败", false);
+                }
+                s1 = uploadImage.uploadImg(img1);
+            }
+            if (ObjectUtil.isNotEmpty(img2)) {
+                if (uploadImage.getImageCom(img2).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片2上传失败", false);
+                }
+                s2 = "," + uploadImage.uploadImg(img2);
+            }
+            if (ObjectUtil.isNotEmpty(img3)) {
+                if (uploadImage.getImageCom(img3).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片3上传失败", false);
+                }
+                s3 = "," + uploadImage.uploadImg(img3);
+            }
+            if (ObjectUtil.isNotEmpty(img4)) {
+                if (uploadImage.getImageCom(img4).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片4上传失败", false);
+                }
+                s4 = "," + uploadImage.uploadImg(img4);
+            }
+            if (ObjectUtil.isNotEmpty(img5)) {
+                if (uploadImage.getImageCom(img5).equals("上传失败")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return new Result(10001, "图片5上传失败", false);
+                }
+                s5 = "," + uploadImage.uploadImg(img5);
+            }
+            String s = s1 + s2 + s3 + s4 + s5;
+            billClean.setImgUrl(s);
+            dryMapper.updateById(billClean);
+        }
+
+        return new Result(10000, "提交成功!", true);
+    }
+
+    @Override
+    public Result listCleanAndDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");
+        String pageNo = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        Page<CleanAndDryVo> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
+        Page<CleanAndDryVo> cleanAndDryVoPage;
+        switch (type) {
+            case "1":
+                cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 0);
+                break;
+            case "2":
+                cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 1);
+                break;
+            case "3":
+                cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 2);
+                break;
+            default:
+                cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 0);
+                break;
+        }
+
+        return new Result(ResultCode.SUCCESS, cleanAndDryVoPage, cleanAndDryVoPage.getSize());
+    }
+
+    @Override
+    public Result listPersonalCleanAndDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String pageNo = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String vistitType = paramsMap.get("vistitType");
+        Page<CleanAndDryVo> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
+        Integer userId = TokenSign.getMemberIdByJwtToken(httpServletRequest);
+        Page<CleanAndDryVo> cleanAndDryVoPage = cleanMapper.listPersonalCleanAndDry(page, userId, vistitType);
+        return new Result(ResultCode.SUCCESS, cleanAndDryVoPage, cleanAndDryVoPage.getSize());
+    }
+
+    @Override
+    public Result goodsCarClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, MultipartFile img1,
+                                MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5, String type, String result
+    ) throws ParseException, IOException {
+
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        if (StringUtils.isBlank(date)) {
+            date = sdf.format(new Date());
+        }
+
+        String s1 = "";
+        String s2 = "";
+        String s3 = "";
+        String s4 = "";
+        String s5 = "";
+        if (ObjectUtil.isNotEmpty(img1)) {
+            if (uploadImage.getImageCom(img1).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片1上传失败", false);
+            }
+            s1 = uploadImage.uploadImg(img1);
+        }
+        if (ObjectUtil.isNotEmpty(img2)) {
+            if (uploadImage.getImageCom(img2).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片2上传失败", false);
+            }
+            s2 = "," + uploadImage.uploadImg(img2);
+        }
+        if (ObjectUtil.isNotEmpty(img3)) {
+            if (uploadImage.getImageCom(img3).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片3上传失败", false);
+            }
+            s3 = "," + uploadImage.uploadImg(img3);
+        }
+        if (ObjectUtil.isNotEmpty(img4)) {
+            if (uploadImage.getImageCom(img4).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片4上传失败", false);
+            }
+            s4 = "," + uploadImage.uploadImg(img4);
+        }
+        if (ObjectUtil.isNotEmpty(img5)) {
+            if (uploadImage.getImageCom(img5).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片5上传失败", false);
+            }
+            s5 = "," + uploadImage.uploadImg(img5);
+        }
+        String s = s1 + s2 + s3 + s4 + s5;
+
+        if ("1".equals(type)) {
+            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("id", billClean.getTestLocationId());
+            BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
+
+            //物资车只有一个目的地
+            if (billClean.getVistitType() == 5 || billClean.getDestId() == 12) {
+
+                //当前是目的地
+                if ("1".equals(result)) {
+                    billClean.setBillStatus(1);
+                    baseProcess.setProcessType(1);
+                    baseProcess.setAllLocationStatus("2,2");
+                } else {
+                    baseProcess.setAllLocationStatus("2,3");
+                    billClean.setBillStatus(2);
+                    baseProcess.setProcessType(2);
+                }
+                billClean.setImgStatus(1);
+                billClean.setImgUrl(s);
+                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())));
+                billClean.setCleanTime("10");
+
+                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);
+            }
+
+            //饲料车
+            if (billClean.getDestId() == 8) {
+                if (billClean.getTestLocationId() == 7) {
+                    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())));
+                        billClean.setImgUrl(s);
+                        billClean.setImgStatus(1);
+                        billClean.setCleanTime("10");
+                        cleanMapper.updateById(billClean);
+
+                        BillClean clean = new BillClean();
+                        clean.setVistitType(billClean.getVistitType());
+                        clean.setVistitDate(billClean.getVistitDate());
+                        clean.setDestName(billClean.getDestName());
+                        clean.setDestId(billClean.getDestId());
+                        clean.setAdmissionUserId(billClean.getAdmissionUserId());
+                        clean.setAdmissionUserName(billClean.getAdmissionUserName());
+                        clean.setSubDate(LocalDateTime.now());
+                        clean.setBillStatus(0);
+                        clean.setImgStatus(0);
+                        clean.setFarmId(billClean.getFarmId());
+                        clean.setCarNum(billClean.getCarNum());
+                        clean.setPhone(billClean.getPhone());
+                        clean.setProcessId(billClean.getProcessId());
+                        clean.setTestLocationId(baseLocation.getNextId());
+                        clean.setTestLocation(baseLocation.getNextLocation());
+                        cleanMapper.insert(clean);
+
+                        baseProcess.setAllLocationStatus("2,2,1");
+                        baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                        baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
+                        baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
+                        String status = baseProcess.getCurrentStatus();
+                        String substring = status.substring(0, status.length() - 1);
+                        baseProcess.setCurrentStatus(substring + "1," + 0);
+                        processMapper.updateById(baseProcess);
+                    } else {
+                        billClean.setImgStatus(1);
+                        billClean.setImgUrl(s);
+                        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())));
+                        billClean.setCleanTime("10");
+                        cleanMapper.updateById(billClean);
+                        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");
+                        baseProcess.setAllLocationStatus("2,3,0");
+                        processMapper.updateById(baseProcess);
+                    }
+                } else {
+                    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())));
+                        billClean.setImgUrl(s);
+                        billClean.setImgStatus(1);
+                        billClean.setCleanTime("10");
+                        cleanMapper.updateById(billClean);
+                        //生成烘干申请
+                        BillDry billPcr = new BillDry();
+                        billPcr.setPhone(billClean.getPhone());
+                        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(LocalDateTime.now());
+                        billPcr.setBillStatus(0);
+                        billPcr.setImgStatus(0);
+                        billPcr.setCarNum(billClean.getCarNum());
+                        billPcr.setProcessId(billClean.getProcessId());
+                        billPcr.setFarmId(billClean.getFarmId());
+                        billPcr.setTestLocation(baseLocation.getLocationName());
+                        billPcr.setTestLocationId(baseLocation.getId());
+                        dryMapper.insert(billPcr);
+                        baseProcess.setAllLocationStatus("2,2,1");
+                        baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                        baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
+                        baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
+                        String status = baseProcess.getCurrentStatus();
+                        String substring = status.substring(0, status.length() - 1);
+                        baseProcess.setCurrentStatus(substring + "1," + 0);
+                        processMapper.updateById(baseProcess);
+                    } else {
+                        billClean.setBillStatus(2);
+                        baseProcess.setProcessType(2);
+                        billClean.setImgStatus(1);
+                        billClean.setImgUrl(s);
+                        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())));
+                        billClean.setCleanTime("10");
+                        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.setAllLocationStatus("2,2,3");
+                        processMapper.updateById(baseProcess);
+                        cleanMapper.updateById(billClean);
+                    }
+                }
+            }
+
+            return new Result(10000, "修改成功!", true);
+
+        } else {
+            BillDry billClean = dryMapper.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("id", billClean.getTestLocationId());
+            BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
+            if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
+                return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
+            } else {
+                if ("1".equals(result)) {
+                    //烘干通过
+                    billClean.setImgUrl(s);
+                    billClean.setBillStatus(1);
+                    billClean.setPassDate(new Date());
+                    billClean.setCheckDate(new Date());
+                    billClean.setPhone(billClean.getPhone());
+                    billClean.setCarNum(billClean.getCarNum());
+                    billClean.setImgStatus(1);
+                    billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
+                    billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+                    billClean.setTestLocation(baseLocation.getLocationName());
+                    billClean.setTestLocationId(baseLocation.getId());
+                    billClean.setDryTime("10");
+                    billClean.setDryTem("70");
+                    dryMapper.updateById(billClean);
+
+                    baseProcess.setProcessType(1);
+                    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.setAllLocationStatus("2,2,2,2");
+                    processMapper.updateById(baseProcess);
+                } else {
+                    billClean.setImgStatus(1);
+                    billClean.setImgUrl(s);
+                    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())));
+                    billClean.setDryTime("10");
+                    billClean.setDryTem("70");
+                    dryMapper.updateById(billClean);
+
+                    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");
+
+//                    baseProcess.setAllLocationStatus("2,2,2,3");
+
+                    if (billClean.getTestLocationId() == 8) {
+                        baseProcess.setAllLocationStatus("2,2,2,2,3");
+                    }
+
+                    processMapper.updateById(baseProcess);
+                }
+                return new Result(10000, "修改成功!", true);
+            }
+
+        }
+
+
+    }
+
+
     @Override
-    public Result listCount( Map<String, String> paramsMap) {
+    public Result listCount(Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
         Date timesmorning = DataUill.getTimesmorning();
         QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();

+ 27 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillGoodsInventoryServiceImpl.java

@@ -1,11 +1,21 @@
 package com.huimv.secure.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
 import com.huimv.secure.entity.BillGoodsInventory;
+import com.huimv.secure.entity.vo.BillGoodsInventoryVo;
 import com.huimv.secure.mapper.BillGoodsInventoryMapper;
 import com.huimv.secure.service.IBillGoodsInventoryService;
 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.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +27,21 @@ import org.springframework.stereotype.Service;
 @Service
 public class BillGoodsInventoryServiceImpl extends ServiceImpl<BillGoodsInventoryMapper, BillGoodsInventory> implements IBillGoodsInventoryService {
 
+    @Autowired
+    private BillGoodsInventoryMapper inventoryMapper;
+
+    @Override
+    public Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<BillGoodsInventory> queryWrapper = new QueryWrapper<>();
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
+        queryWrapper.ge("create_date", calendar.getTime()).eq("farm_id", farmId);
+//        queryWrapper.groupBy("create_date");
+//        queryWrapper.orderByAsc("create_date");
+        List<BillGoodsInventoryVo> billGoodsInventoryVos = inventoryMapper.listAll(queryWrapper);
+//        List<BillGoodsInventory> billGoodsInventories = inventoryMapper.selectList(queryWrapper);
+
+        return new Result(ResultCode.SUCCESS, billGoodsInventoryVos);
+    }
 }

+ 18 - 5
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillIsolateServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.secure.common.token.TokenSign;
 import com.huimv.secure.common.utils.DataUill;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.common.utils.ResultCode;
@@ -34,6 +35,18 @@ public class BillIsolateServiceImpl extends ServiceImpl<BillIsolateMapper, BillI
 
     @Resource
     private BillIsolateMapper billIsolateMapper;
+
+
+    @Override
+    public Result listPersonalIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String pageNo = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        Page<BillIsolate> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
+        QueryWrapper<BillIsolate> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("isolate_start_date");
+        return new Result(ResultCode.SUCCESS, billIsolateMapper.selectPage(page, new QueryWrapper<BillIsolate>().eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date")), billIsolateMapper.selectCount(queryWrapper));
+    }
+
     @Override
     public Result Isolate(Map<String, String> paramsMap) {
         String type = paramsMap.get("type");//0全部  1为人员二级洗消站 2为生产区
@@ -47,23 +60,23 @@ public class BillIsolateServiceImpl extends ServiceImpl<BillIsolateMapper, BillI
         List<IsolateVo> isolateVos = null;
         QueryWrapper<BillIsolate> queryWrapper = new QueryWrapper<>();
         if ("0".equals(type)) {
-            queryWrapper.in("isolate_location_id", 3, 4);
+            queryWrapper.in("isolate_location_id", 2, 3);
         } else if ("1".equals(type)) {
-            queryWrapper.eq("isolate_location_id", 3);
+            queryWrapper.eq("isolate_location_id", 2);
         } else if ("2".equals(type)) {
-            queryWrapper.eq("isolate_location_id", 4);
+            queryWrapper.eq("isolate_location_id", 3);
         }
         //今日
         if ("1".equals(dateType)) {
             Date timesmorning = DataUill.getTimesmorning();
             queryWrapper.ge("sub_date", timesmorning);
 
-        } else if ("2".equals(type)) {
+        } else if ("2".equals(dateType)) {
             Calendar calendar = Calendar.getInstance();
             calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
             queryWrapper.ge("sub_date", calendar.getTime());
 
-        } else if ("3".equals(type)) {
+        } else if ("3".equals(dateType)) {
             Date timesMonthmorning = DataUill.getTimesMonthmorning();
             queryWrapper.ge("sub_date", timesMonthmorning);
         }

+ 55 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillLuggageServiceImpl.java

@@ -4,18 +4,25 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.secure.common.token.TokenSign;
 import com.huimv.secure.common.utils.DataUill;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.common.utils.UploadImage;
 import com.huimv.secure.entity.BillLuggage;
 import com.huimv.secure.entity.vo.LuggageVo;
 import com.huimv.secure.mapper.BillLuggageMapper;
 import com.huimv.secure.service.IBillLuggageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -33,8 +40,45 @@ import java.util.Map;
 public class BillLuggageServiceImpl extends ServiceImpl<BillLuggageMapper, BillLuggage> implements IBillLuggageService {
 
 
+    @Autowired
+    private UploadImage uploadImage;
     @Resource
     private BillLuggageMapper billLuggageMapper;
+
+
+    @Override
+    public Result addLuggage(HttpServletRequest httpServletRequest, String farmId, String userName, String phone, String luggageDate, String luggageLocation, String luggageLocationId, Integer luggageNum, MultipartFile img, MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5) throws IOException {
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
+        BillLuggage billLuggage = new BillLuggage();
+        billLuggage.setFarmId(farmId);
+        billLuggage.setUserName(userName);
+        billLuggage.setUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
+        billLuggage.setPhone(phone);
+        billLuggage.setLuggageDate(LocalDateTime.parse(luggageDate,dateTimeFormatter));
+        billLuggage.setLuggageNum(luggageNum);
+        billLuggage.setLuggageLocation(luggageLocation);
+        billLuggage.setLuggageLocationId(Integer.parseInt(luggageLocationId));
+        String content ="";
+        content = getUrl(content,img);
+        content = getUrl(content,img2);
+        content = getUrl(content,img3);
+        content = getUrl(content,img4);
+        content = getUrl(content,img5);
+        billLuggage.setArticlePicUrl(content);
+        billLuggageMapper.insert(billLuggage);
+        return Result.SUCCESS();
+    }
+
+    @Override
+    public Result listPersonalLuggage(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String pageNo = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String farmId = paramsMap.get("farmId");
+        Page<BillLuggage> page = new Page<>(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
+        Page<BillLuggage> billLuggagePage = billLuggageMapper.selectPage(page, new QueryWrapper<BillLuggage>().eq("user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).eq("farm_id",farmId).orderByDesc("luggage_date"));
+        return new Result(ResultCode.SUCCESS,billLuggagePage,billLuggagePage.getSize());
+    }
+
     @Override
     public Result listLuggage( Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
@@ -89,4 +133,15 @@ public class BillLuggageServiceImpl extends ServiceImpl<BillLuggageMapper, BillL
         Page<BillLuggage> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         return new Result(ResultCode.SUCCESS, billLuggageMapper.selectPage(page, queryWrapper));
     }
+
+    public String getUrl(String content, MultipartFile image) throws IOException {
+        if (ObjectUtil.isNotEmpty(image)){
+            if ( !"".equals(content)){
+                content = content +","+uploadImage.getImageCom(image);
+            }else {
+                content = content +uploadImage.getImageCom(image);
+            }
+        }
+        return content;
+    }
 }

+ 265 - 6
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillPcrServiceImpl.java

@@ -1,27 +1,40 @@
 package com.huimv.secure.service.impl;
 
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.Header;
+import cn.hutool.http.HttpRequest;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.secure.common.token.TokenSign;
 import com.huimv.secure.common.utils.DataUill;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.common.utils.ResultCode;
-import com.huimv.secure.entity.BillPcr;
+import com.huimv.secure.common.utils.UploadImage;
+import com.huimv.secure.entity.*;
 import com.huimv.secure.entity.dto.PcrDto;
 import com.huimv.secure.entity.vo.PcrVo;
 import com.huimv.secure.entity.vo.PcrVo1;
-import com.huimv.secure.mapper.BillPcrMapper;
+import com.huimv.secure.mapper.*;
 import com.huimv.secure.service.IBillPcrService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.*;
 
 /**
  * <p>
@@ -36,6 +49,252 @@ public class BillPcrServiceImpl extends ServiceImpl<BillPcrMapper, BillPcr> impl
 
     @Resource
     private BillPcrMapper billPcrMapper;
+    @Autowired
+    private BaseLocationMapper locationMapper;
+    @Autowired
+    private BillPcrMapper pcrMapper;
+    @Autowired
+    private UploadImage uploadImage;
+    @Autowired
+    private BaseProcessMapper processMapper;
+    @Autowired
+    private ConfigurationMapper configurationMapper;
+    @Autowired
+    private ExistMapper existMapper;
+    @Autowired
+    private BillCleanMapper cleanMapper;
+    @Autowired
+    private DeviceListMapper deviceListMapper;
+    @Autowired
+    private BillPersonnelAdmissionMapper personnelAdmissionMapper;
+    @Autowired
+    private PeopleListMapper peopleListMapper;
+
+    @Override
+    public Result listPersonalPcr(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String pageNo = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String vistitType = paramsMap.get("vistitType");
+        Page<BillPcr> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
+        Page<BillPcr> billPcrPage = billPcrMapper.selectPage(page, new QueryWrapper<BillPcr>().eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date"));
+        QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date");
+        return new Result(ResultCode.SUCCESS, billPcrPage, billPcrMapper.selectCount(queryWrapper));
+    }
+
+    @Override
+    public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String type = paramsMap.get("type");//展示类型
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+        }
+        if ("".equals(pageSize) || null == pageSize) {
+            pageSize = "20";
+        }
+        Page<BillPcr> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<BaseLocation> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("id", TokenSign.getWorkIdByJwtToken(httpServletRequest));
+        List<BaseLocation> baseLocations = locationMapper.selectList(queryWrapper1);
+        List<Integer> ids = new ArrayList<>();
+        for (BaseLocation baseLocation : baseLocations) {
+            ids.add(baseLocation.getId());
+        }
+        QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).in("test_location_id", ids).orderByDesc("sub_date");
+        if ("0".equals(type)) {
+            queryWrapper.in("bill_status", 0, 1, 2, 3);
+        }
+        if ("1".equals(type)) {
+            queryWrapper.eq("bill_status", 0);
+        }
+        if ("2".equals(type)) {
+            queryWrapper.eq("bill_status", 1);
+        }
+        if ("3".equals(type)) {
+            queryWrapper.in("bill_status", 2, 3);
+        }
+        QueryWrapper<BillPcr> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("farm_id", farmId).in("test_location_id", ids).orderByDesc("sub_date");
+        queryWrapper2.eq("bill_status", 0);
+        return new Result(ResultCode.SUCCESS, pcrMapper.selectPage(page, queryWrapper), pcrMapper.selectCount(queryWrapper2));
+    }
+
+    @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, String farmId, String id, String date, String result,
+                       MultipartFile img1, MultipartFile img2, MultipartFile img3) throws ParseException, IOException {
+        //1为合格2为异常
+        String s1 = "";
+        String s2 = "";
+        String s3 = "";
+        if (ObjectUtil.isNotEmpty(img1)) {
+            if (uploadImage.getImageCom(img1).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片1上传失败", false);
+            }
+            s1 = uploadImage.uploadImg(img1);
+        }
+        if (ObjectUtil.isNotEmpty(img2)) {
+            if (uploadImage.getImageCom(img2).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片2上传失败", false);
+            }
+            s2 = "," + uploadImage.uploadImg(img2);
+        }
+        if (ObjectUtil.isNotEmpty(img3)) {
+            if (uploadImage.getImageCom(img3).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new Result(10001, "图片3上传失败", false);
+            }
+            s3 = "," + uploadImage.uploadImg(img3);
+        }
+        String s = s1 + s2 + s3;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+        if (StringUtils.isBlank(date)) {
+            date = sdf.format(new Date());
+        }
+        BillPcr billPcr = pcrMapper.selectById(id);
+        billPcr.setImgUrl(s);
+        billPcr.setImgStatus(1);
+
+
+        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("id", billPcr.getTestLocationId());
+        BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
+
+        QueryWrapper<Configuration> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        Configuration configuration = configurationMapper.selectOne(queryWrapper);
+
+
+        if (billPcr.getBillStatus() != 0) {
+            return new Result(10001, "该订单已通过,无需再次提交!", false);
+        }
+        if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
+            return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
+        } 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())));
+                billPcr.setQualifiedDate(configuration.getPcr().toString());
+                //通过生成洗消记录
+                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(LocalDateTime.now());
+                billClean.setFarmId(billPcr.getFarmId());
+                billClean.setPassUserName(billPcr.getPassUserName());
+                billClean.setPassDate(billPcr.getPassDate());
+                billClean.setPassUserId(billPcr.getPassUserId());
+                billClean.setProcessId(billPcr.getProcessId());
+                billClean.setTestLocation(baseLocation.getLocationName());
+                billClean.setTestLocationId(baseLocation.getId());
+                billClean.setPhone(billPcr.getPhone());
+                billClean.setImgStatus(0);
+                billClean.setCarNum(billPcr.getCarNum());
+                cleanMapper.insert(billClean);
+                baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
+                baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
+                baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
+                String status = baseProcess.getCurrentStatus();
+                String substring = status.substring(0, status.length() - 1);
+                baseProcess.setCurrentStatus(substring + "1," + 0);
+                if (billPcr.getDestId() == 12) {
+                    baseProcess.setAllLocationStatus("2,1");
+                }
+                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()));
+                String status = baseProcess.getCurrentStatus();
+                String substring = status.substring(0, status.length() - 1);
+                baseProcess.setCurrentStatus(substring + "2," + 0);
+                if (baseLocation.getId() == 2) {
+                    //第一次检测不合格
+                    billPcr.setPcrType(0);
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + ",一级洗消站");
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + ",2");
+                }
+                if (baseLocation.getId() == 3) {
+                    //第二次检测不合格
+                    baseProcess.setProcessType(2);
+                    baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
+                    baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
+                    String status1 = baseProcess.getAllLocationStatus();
+                    String[] split = status1.split(",");
+                    split[0] = "2";
+                    split[2] = "2";
+                    split[3] = "3";
+                    baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + "," + split[3]);
+                }
+                if (baseLocation.getId() == 5) {
+                    String status1 = baseProcess.getAllLocationStatus();
+                    String[] split = status1.split(",");
+                    split[0] = "2";
+                    split[1] = "3";
+                    baseProcess.setAllLocationStatus(split[0] + "," + split[1]);
+                }
+                if (baseLocation.getId() == 7) {
+                    String status1 = baseProcess.getAllLocationStatus();
+                    String[] split = status1.split(",");
+                    split[0] = "2";
+                    split[1] = "3";
+                    baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
+                }
+                if (baseLocation.getId() == 10) {
+                    String status1 = baseProcess.getAllLocationStatus();
+                    String[] split = status1.split(",");
+                    split[0] = "2";
+                    split[1] = "3";
+                    baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
+                }
+                if (baseLocation.getId() == 12) {
+                    String status1 = baseProcess.getAllLocationStatus();
+                    String[] split = status1.split(",");
+                    split[0] = "2";
+                    split[1] = "3";
+                    baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
+                }
+                processMapper.updateById(baseProcess);
+                pcrMapper.updateById(billPcr);
+                return new Result(10000, "修改成功!", true);
+            }
+
+
+        }
+    }
+
 
     @Override
     public Result pcrWhole(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {

文件差異過大導致無法顯示
+ 1154 - 7
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/BillPersonnelAdmissionServiceImpl.java


+ 95 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/FarmServiceImpl.java

@@ -0,0 +1,95 @@
+package com.huimv.secure.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.entity.Farm;
+import com.huimv.secure.entity.SysAccountMultilevel;
+import com.huimv.secure.mapper.FarmMapper;
+import com.huimv.secure.mapper.SysAccountMultilevelMapper;
+import com.huimv.secure.service.IFarmService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Service
+public class FarmServiceImpl extends ServiceImpl<FarmMapper, Farm> implements IFarmService {
+
+    @Autowired
+    private SysAccountMultilevelMapper accountMultilevelMapper;
+    @Override
+    public Result getFarm(Integer userId) {
+        SysAccountMultilevel sysAccountMultilevel = accountMultilevelMapper.selectById(userId);
+        String farmIds = sysAccountMultilevel.getFarmIds();
+        List list ;
+        if (userId == 1){
+            list = this.list();
+        }else {
+            List<String> list1 = Arrays.asList(farmIds.split(","));
+           list = (List)this.listByIds(list1);
+        }
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
+    @Override
+    public Result add(Farm farm) {
+        this.save(farm);
+        return new Result(10000,"添加成功",true);
+    }
+
+    @Override
+    public Result getFarm2(Integer userId) {
+        SysAccountMultilevel sysAccountMultilevel = accountMultilevelMapper.selectById(userId);
+        String farmIds = sysAccountMultilevel.getFarmIds();
+        List<Farm> list ;
+        if (userId == 1){
+            list = this.list();
+        }else {
+            List<String> list1 = Arrays.asList(farmIds.split(","));
+            list = this.listByIds(list1);
+        }
+        String str = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q";
+        String[] split = str.split(",");
+        Integer i = 0;
+        for (Farm farm : list) {
+            farm.setFarmName(split[i]+"牧场");
+            i++;
+        }
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
+    @Override
+    public Result listPage(Integer userId, Map paramMap) {
+        int pageNum = (Integer)paramMap.get("pageNum");
+        int pageSize = (Integer)paramMap.get("pageSize");
+        String farmName = (String)paramMap.get("farmName");
+        QueryWrapper<Farm> wrapper= new QueryWrapper<>();
+        wrapper.like("farm_name",farmName);
+        SysAccountMultilevel sysAccountMultilevel = accountMultilevelMapper.selectById(userId);
+        String farmIds = sysAccountMultilevel.getFarmIds();
+        if (StringUtils.isBlank(farmIds)){
+            return new Result(10001,"未绑定牧场",false);
+        }
+        if (userId != 1){
+            List<String> list1 = Arrays.asList(farmIds.split(","));
+            wrapper.in("id",list1);
+        }
+        IPage<Farm> page = this.page(new Page<>(pageNum, pageSize), wrapper);
+        return new Result(ResultCode.SUCCESS,page);
+    }
+}

+ 60 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/LoginServiceImpl.java

@@ -0,0 +1,60 @@
+package com.huimv.secure.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.secure.common.utils.Result;
+import com.huimv.secure.common.utils.ResultCode;
+import com.huimv.secure.entity.SysAccountMultilevel;
+import com.huimv.secure.mapper.SysAccountMultilevelMapper;
+import com.huimv.secure.service.ILoginService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LoginServiceImpl implements ILoginService {
+
+
+    @Override
+    public Result logout() {
+        return null;
+    }
+
+    @Autowired
+    private SysAccountMultilevelMapper accountMultilevelMapper;
+
+    @Override
+    public Result loginMultilevel(String accountName, String password) {
+
+        QueryWrapper<SysAccountMultilevel> wrapper = new QueryWrapper<>();
+        wrapper.eq("account",accountName).eq("password",password);
+        SysAccountMultilevel accountMultilevel = accountMultilevelMapper.selectOne(wrapper);
+
+        if (ObjectUtil.isEmpty(accountMultilevel)){
+            return new Result(10001, "账号不存在或密码错误.", false);
+        }
+
+        if (accountMultilevel.getAccountStatus() == 0){
+            return new Result(10002, "账号未启用.", false);
+        }
+        return new Result(ResultCode.SUCCESS,accountMultilevel);
+    }
+
+    @Override
+    public Result loginMultilevelClient(String accountName, String password) {
+        QueryWrapper<SysAccountMultilevel> wrapper = new QueryWrapper<>();
+        wrapper.eq("account",accountName).eq("password",password);
+        SysAccountMultilevel accountMultilevel = accountMultilevelMapper.selectOne(wrapper);
+
+        if (ObjectUtil.isEmpty(accountMultilevel)){
+            return new Result(10001, "账号不存在或密码错误.", false);
+        }
+        if (accountMultilevel.getType()!=0){
+            return new Result(10001, "用户类型不匹配.", false);
+        }
+
+        if (accountMultilevel.getAccountStatus() == 0){
+            return new Result(10002, "账号未启用.", false);
+        }
+        return new Result(ResultCode.SUCCESS,accountMultilevel);
+    }
+}

+ 30 - 8
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/service/impl/SysUserServiceImpl.java

@@ -9,13 +9,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.secure.common.utils.Result;
 import com.huimv.secure.common.utils.ResultCode;
 import com.huimv.secure.common.utils.UploadImage;
-import com.huimv.secure.entity.SysAccountMultilevel;
-import com.huimv.secure.entity.SysUser;
+import com.huimv.secure.entity.*;
 import com.huimv.secure.entity.pojo.UserPagePojo;
 import com.huimv.secure.entity.vo.UserAgeAndGender;
 import com.huimv.secure.entity.vo.UserJob;
-import com.huimv.secure.mapper.SysAccountMultilevelMapper;
-import com.huimv.secure.mapper.SysUserMapper;
+import com.huimv.secure.mapper.*;
 import com.huimv.secure.service.ISysUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,12 +44,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private SysAccountMultilevelMapper sysAccountMultilevelMapper;
     @Autowired
     private UploadImage uploadImage;
+    @Autowired
+    private FarmMapper farmMapper;
+    @Autowired
+    private BaseLocationMapper baseLocationMapper;
+    @Autowired
+    private ExistMapper existMapper;
+
 
     @Override
     public Result pageAll(UserPagePojo userPagePojo) {
         Integer pageNum = userPagePojo.getCurrent();
         Integer pageSize = userPagePojo.getSize();
-        Integer job = userPagePojo.getJob();
+        String job = userPagePojo.getJob();
         Integer workLocationType = userPagePojo.getWorkLocationType();
         String workLocation = userPagePojo.getWorkLocation();
         Integer gender = userPagePojo.getGender();
@@ -97,8 +102,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Override
     public Result listWorkLocation(Map map) {
-
-        return null;
+        String farmId = (String)map.get("farmId");
+        if (checkFarm(farmId)) {
+            return new Result(10001,"牧场信息为空",false);
+        }
+        Exist exist = existMapper.selectOne(new QueryWrapper<Exist>().eq("farm_id", farmId));
+        if (exist.getExist() == 0){
+            return new Result(ResultCode.SUCCESS,baseLocationMapper.selectList(new QueryWrapper<BaseLocation>().groupBy("location_type").orderByAsc("location_type")));
+        }else {
+            return new Result(ResultCode.SUCCESS,baseLocationMapper.selectList(new QueryWrapper<BaseLocation>().groupBy("location_type").orderByAsc("location_type")));
+        }
     }
 
     @Override
@@ -132,5 +145,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return new Result(10000,"修改成功",true);
 
     }
-
+    private boolean checkFarm(String farmId){
+        if (StringUtils.isBlank(farmId) ) {
+            return true;
+        }
+        Farm byId = farmMapper.selectById(farmId);
+        if (ObjectUtil.isEmpty(byId)) {
+            return true;
+        }
+        return false;
+    }
 }

+ 3 - 3
huimv.nongke.secure/huimv.nongke.secure/src/main/java/com/huimv/secure/session/AccessToken.java

@@ -19,7 +19,7 @@ public class AccessToken {
     private Integer type;
     private String farmId;
     private String message;
-    private Integer lastFarmId;
+    private String lastFarmId;
     private String userName;
 
     public SysAccountMultilevel getSysAccountMultilevel() {
@@ -40,11 +40,11 @@ public class AccessToken {
         this.userName = userName;
     }
 
-    public Integer getLastFarmId() {
+    public String getLastFarmId() {
         return lastFarmId;
     }
 
-    public void setLastFarmId(Integer lastFarmId) {
+    public void setLastFarmId(String lastFarmId) {
         this.lastFarmId = lastFarmId;
     }
 

+ 25 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BaseProcessMapper.xml

@@ -2,4 +2,29 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.secure.mapper.BaseProcessMapper">
 
+    <select id="pageByLocationId" resultType="com.huimv.secure.entity.vo.BaseProcessByLocationVo">
+
+   select *from (
+     SELECT   NULL AS qualified_date,NULL AS pass_user_name,NULL AS pcr_type,process_id ,id,farm_id ,admission_user_id ,test_location,check_date,test_location_id
+      ,bill_status  ,NULL AS isolate_end_date ,1 AS `type`   , NULL AS isolate_day_num   ,NULL AS isolate_real_day_num, NULL AS isolate_real_end_date ,img_url,img_status,clean_time ,NULL AS dry_time,NULL AS dry_tem  FROM `bill_clean`
+
+   UNION
+   SELECT qualified_date,pass_user_name,pcr_type, process_id ,id,farm_id,admission_user_id ,test_location,check_date,test_location_id   ,bill_status
+   ,NULL AS isolate_end_date ,2 AS `type` ,NULL AS isolate_day_num ,NULL AS isolate_real_day_num, NULL AS isolate_real_end_date , img_url,   img_status ,NULL AS clean_time ,NULL AS dry_time,NULL AS dry_tem  FROM  `bill_pcr`
+
+   UNION
+   SELECT NULL AS qualified_date,NULL AS pass_user_name, NULL AS pcr_type, process_id ,id,farm_id,admission_user_id ,test_location,check_date,test_location_id
+    ,bill_status  ,NULL AS isolate_end_date ,3  AS `type` ,NULL AS isolate_day_num ,NULL AS isolate_real_day_num,  NULL AS  isolate_real_end_date, img_url, img_status ,NULL AS clean_time  ,dry_time,dry_tem FROM  `bill_dry`
+    UNION
+
+   SELECT  NULL AS qualified_date,pass_user_name,  NULL AS pcr_type, process_id ,id,farm_id,admission_user_id , isolate_location AS test_location,
+   isolate_start_date AS check_date ,
+   isolate_location_id AS test_location_id  ,
+   bill_status,
+      isolate_end_date ,   4 AS `type` ,isolate_day_num  ,isolate_real_day_num, isolate_real_end_date , NULL AS img_url, NULL AS  img_status ,NULL AS clean_time ,NULL AS dry_time,NULL AS dry_tem
+
+    FROM  `bill_isolate`) a  where  a.process_id  = #{processId} and test_location_id  = #{locationId} order by a.check_date desc
+
+    </select>
+
 </mapper>

+ 70 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BillCleanMapper.xml

@@ -2,6 +2,76 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.secure.mapper.BillCleanMapper">
 
+
+
+    <select id="listPersonalCleanAndDry" resultType="com.huimv.secure.entity.vo.CleanAndDryVo">
+        SELECT id,car_num,bill_status,test_location,check_date,vistit_type,sub_date,pass_date,1 AS 'type'
+        FROM `bill_clean` WHERE admission_user_id = #{userId} AND vistit_type = #{vistitType}
+
+        UNION ALL
+
+        SELECT id,car_num,bill_status,test_location,check_date,vistit_type,sub_date,pass_date,2 AS 'type'
+        FROM `bill_dry` WHERE admission_user_id = #{userId} AND vistit_type = #{vistitType}
+        ORDER BY sub_date DESC
+    </select>
+    <select id="listCleanAndDry" resultType="com.huimv.secure.entity.vo.CleanAndDryVo">
+        SELECT id,car_num,bill_status,test_location,check_date,vistit_type,pass_date,sub_date,1 AS 'type'
+        FROM `bill_clean` WHERE farm_id = #{farmId} AND vistit_type != 0 AND img_status = 1
+        <if test="status != null">
+            AND bill_status = #{status}
+        </if>
+
+        UNION ALL
+
+        SELECT id,car_num,bill_status,test_location,check_date,vistit_type,pass_date,sub_date,2 AS 'type'
+        FROM `bill_dry` WHERE farm_id = #{farmId} AND vistit_type != 0 AND img_status = 1
+        <if test="status != null">
+            AND bill_status = #{status}
+        </if>
+        ORDER BY sub_date DESC
+    </select>
+
+    <select id="CleanAndDry" resultType="com.huimv.secure.entity.vo.CleanAndDryVo2">
+        select *,null,1 AS 'type' from bill_clean where farm_id=#{farmId} and vistit_type=#{type}
+        and test_location_id in
+        <foreach collection="locations" item="location" separator="," open="(" close=")">
+            #{location}
+        </foreach>
+        and img_status in
+        <foreach collection="status" item="statu" separator="," open="(" close=")">
+            #{statu}
+        </foreach>
+        union all
+        select *,2 AS 'type' from bill_dry where farm_id=#{farmId} and vistit_type=#{type}
+        and test_location_id in
+        <foreach collection="locations" item="location" separator="," open="(" close=")">
+            #{location}
+        </foreach>
+        and img_status in
+        <foreach collection="status" item="statu" separator="," open="(" close=")">
+            #{statu}
+        </foreach>
+        ORDER BY sub_date DESC
+    </select>
+
+
+    <select id="CleanAndDry2" resultType="com.huimv.secure.entity.vo.CleanAndDryVo2">
+        select id,vistit_type,dest_name,dest_id,admission_user_name,admission_user_id,vistit_date,sub_date,farm_id,bill_status,pass_date,pass_user_name,pass_user_id,process_id,check_date,test_location,test_location_id,phone,car_num,img_url,img_status,clean_time,null,1 AS 'type' from bill_clean where farm_id=#{farmId} and
+        vistit_type in (1,2,3,4,5,6) and img_status=1
+        and bill_status in
+        <foreach collection="status" item="statu" separator="," open="(" close=")">
+            #{statu}
+        </foreach>
+        union all
+        select id,vistit_type,dest_name,dest_id,admission_user_name,admission_user_id,vistit_date,sub_date,farm_id,bill_status,pass_date,pass_user_name,pass_user_id,process_id,check_date,test_location,test_location_id,phone,car_num,img_url,img_status,dry_time,dry_tem,2 AS 'type' from bill_dry where farm_id=#{farmId} and
+        vistit_type in (1,2,3,4,5,6) and img_status=1
+        and bill_status in
+        <foreach collection="status" item="statu" separator="," open="(" close=")">
+            #{statu}
+        </foreach>
+        ORDER BY sub_date DESC
+    </select>
+
     <select id="listAll" resultType="com.huimv.secure.entity.vo.CleanVo">
         SELECT
     DATE(sub_date) as dateTime,

+ 12 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BillGoodsInventoryMapper.xml

@@ -2,4 +2,16 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.secure.mapper.BillGoodsInventoryMapper">
 
+
+    <select id="listAll" resultType="com.huimv.secure.entity.vo.BillGoodsInventoryVo">
+        SELECT
+    DATE(create_date) as dateTime,
+    sum(goods_nums) count
+FROM
+    `bill_goods_inventory`
+
+    ${ew.customSqlSegment}
+GROUP BY DATE_FORMAT(create_date,"%Y-%m-%d")
+ORDER BY DATE_FORMAT(create_date,"%Y-%m-%d") asc
+    </select>
 </mapper>

+ 51 - 0
huimv.nongke.secure/huimv.nongke.secure/src/main/resources/com/huimv/secure/mapper/BillPersonnelAdmissionMapper.xml

@@ -2,6 +2,57 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.secure.mapper.BillPersonnelAdmissionMapper">
 
+
+
+    <select id="listAll" resultType="com.huimv.secure.entity.vo.FactoryDirectorVo">
+        SELECT id,admission_user_name AS 'userName',process_id processId, bill_status, isolate_location, isolate_start_date AS check_date, isolate_start_date AS 'startTime', isolate_end_date AS 'endTime', NULL AS test_location, NULL AS vistit_type, NULL AS dest_name, NULL AS vistit_date,3 AS 'type',sub_date
+FROM bill_isolate WHERE farm_id = #{farmId} AND vistit_type = '7'
+
+UNION ALL
+
+SELECT id,admission_user_name AS 'userName',process_id processId, bill_status, test_location, check_date, NULL, NULL, NULL, vistit_type, NULL, NULL,2 AS 'type',sub_date
+FROM bill_clean WHERE farm_id = #{farmId} AND vistit_type = '7'
+
+UNION ALL
+
+SELECT id,admission_user_name AS 'userName',process_id processId, bill_status, test_location, check_date, NULL, NULL, NULL, vistit_type, NULL, NULL,1 AS 'type',sub_date
+FROM bill_pcr WHERE farm_id = #{farmId} AND vistit_type = '7'
+
+UNION ALL
+
+SELECT  id,admission_user_name AS 'userName',process_id processId, bill_status, NULL, NULL, NULL, NULL, NULL, vistit_type, dest_name, vistit_date,0 AS 'type',sub_date
+FROM bill_personnel_admission WHERE farm_id = #{farmId} AND vistit_type = #{type}
+ORDER BY sub_date DESC
+    </select>
+
+
+    <select id="listCarAll" resultType="com.huimv.secure.entity.vo.FactoryDirectorVo">
+SELECT id,admission_user_name AS 'userName',process_id processId,car_num, bill_status, isolate_location, isolate_start_date AS check_date, isolate_start_date AS 'startTime', isolate_end_date AS 'endTime', NULL AS test_location, NULL AS vistit_type, NULL AS dest_name, NULL AS vistit_date,3 AS 'type',sub_date
+FROM bill_isolate WHERE farm_id = #{farmId} AND vistit_type = '7'
+
+UNION ALL
+
+SELECT id,admission_user_name AS 'userName',process_id processId,car_num, bill_status, test_location, check_date, NULL, NULL, NULL, vistit_type, NULL, NULL,4 AS 'type',sub_date
+FROM bill_dry WHERE farm_id = #{farmId} AND vistit_type = '7' AND img_status = 1
+
+UNION ALL
+
+SELECT id,admission_user_name AS 'userName',process_id processId,car_num, bill_status, test_location, check_date, NULL, NULL, NULL, vistit_type, NULL, NULL,2 AS 'type',sub_date
+FROM bill_clean WHERE farm_id = #{farmId} AND vistit_type = '7' AND img_status = 1
+
+UNION ALL
+
+SELECT id,admission_user_name AS 'userName',process_id processId,car_num, bill_status, test_location, check_date, NULL, NULL, NULL, vistit_type, NULL, NULL,1 AS 'type',sub_date
+FROM bill_pcr WHERE farm_id = #{farmId} AND vistit_type = '7'
+
+UNION ALL
+
+SELECT id,admission_user_name AS 'userName',process_id processId,car_num, bill_status, NULL, NULL, NULL, NULL, NULL, vistit_type, dest_name, vistit_date,0 AS 'type',sub_date
+FROM bill_personnel_admission WHERE farm_id = #{farmId} AND vistit_type = #{type}
+ORDER BY sub_date DESC
+    </select>
+
+
     <select id="countAdmission" resultType="com.huimv.secure.entity.vo.ListAdmissionVo">
         select count(*) count, vistit_type type from bill_personnel_admission
         ${ew.customSqlSegment}