BigLawn il y a 1 mois
Parent
commit
659684d0b8

+ 6 - 0
yudao-module-museum/yudao-module-museum-biz/pom.xml

@@ -75,6 +75,12 @@
             <artifactId>commons-io</artifactId>
             <version>2.11.0</version>
         </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-system-biz</artifactId>
+            <version>2.3.0-jdk8-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
 
     </dependencies>
 

+ 261 - 261
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/MuseumFlowController.java

@@ -5,20 +5,28 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.*;
 import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
+
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
-import cn.iocoder.yudao.module.museum.dal.mysql.museumflow.MuseumFlowMapper;
 import cn.iocoder.yudao.module.museum.service.museumflow.MuseumFlowService;
 import cn.iocoder.yudao.module.museum.service.museuminfo.MuseumInfoService;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
+import cn.iocoder.yudao.module.system.service.permission.PermissionService;
+import cn.iocoder.yudao.module.system.service.permission.RoleService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.*;
+
+
 @Tag(name = "博物馆-出回库管理")
 @RestController
 @RequestMapping("/museum/flow")
@@ -27,6 +35,13 @@ public class MuseumFlowController {
     @Resource
     private MuseumFlowService museumFlowService;
     private MuseumInfoService museumInfoService;
+    @Resource
+    private RoleService roleService;
+    @Resource
+    private UserRoleMapper userRoleMapper;
+    @Resource
+    private PermissionService permissionService;
+
 
     @PostMapping("/create")
     @Operation(summary = "新增表单")
@@ -36,351 +51,336 @@ public class MuseumFlowController {
 
     @PutMapping("/update")
     @Operation(summary = "更新表单")
-    public CommonResult<Boolean> updateMuseumFlow(@RequestBody MuseumFlowSaveVO saveVO){
-        museumFlowService.updateMuseumFlow(saveVO);
-        return CommonResult.success(true);
+    public CommonResult<Boolean> updateMuseumFlow(@RequestBody MuseumFlowSaveVO saveVO) {
+        Long UserId = getLoginUserId();
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            museumFlowService.updateMuseumFlow(saveVO);
+            return CommonResult.success(true);
+        } else {
+            return CommonResult.error(200, "您无此权限");
+        }
     }
 
     @DeleteMapping("/delete")
     @Operation(summary = "删除表单")
-    public CommonResult<Boolean> deleteMuseumFlow(@RequestParam("id") Integer id){
-        museumFlowService.deleteMuseumFlow(id);
-        return CommonResult.success(true);
+    public CommonResult<Boolean> deleteMuseumFlow(@RequestParam("id") Integer id) {
+        Long UserId = getLoginUserId();
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            museumFlowService.deleteMuseumFlow(id);
+            return CommonResult.success(true);
+        } else {
+            return CommonResult.error(200, "您无此权限");
+        }
     }
 
     @GetMapping("/get")
     @Operation(summary = "查找表单")
-    public CommonResult<MuseumFlowRespVO> getMuseumFlow(@RequestParam("id") Integer id){
+    public CommonResult<MuseumFlowRespVO> getMuseumFlow(@RequestParam("id") Integer id) {
         MuseumFlowDO result = museumFlowService.selectMuseumFlow(id);
-        MuseumFlowRespVO result1 = BeanUtils.toBean(result,MuseumFlowRespVO.class);
+        MuseumFlowRespVO result1 = BeanUtils.toBean(result, MuseumFlowRespVO.class);
         return CommonResult.success(result1);
     }
 
+    @GetMapping("/get-info")
+    @Operation(summary = "查找标本信息")
+    public CommonResult<List<MuseumFlowInfoVO>> getMuseumInfo(@RequestParam("number") List<String> number) {
+        Long UserId = getLoginUserId();
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            List<MuseumFlowInfoVO> informationList = new ArrayList<>();
+            for (String number1 : number) {
+                MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(number1);
+                if (result == null) {
+                    return CommonResult.error(200, "标本不存在");
+                } else {
+                    MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(number1);
+                    MuseumFlowInfoVO event1 = BeanUtils.toBean(event, MuseumFlowInfoVO.class);
+                    List<MuseumInfoDO> information = new ArrayList<>();
+                    information.add(result);
+                    event1.setMuseumInfoDO(information);
+                    informationList.add(event1);
+
+                }
+            }
+            return CommonResult.success(informationList);
+        } else {
+            return CommonResult.error(200, "您无此权限");
+        }
+    }
+
+
+    @GetMapping("/menId")
+    @Operation(summary = "查询身份信息")
+    public CommonResult<Boolean> hasAnyRoles() {
+        Long UserId = getLoginUserId();
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            return CommonResult.success(true);
+        } else {
+            return CommonResult.error(200, "无权限");
+        }
+    }
+
     @PostMapping("/outbound")
     @Operation(summary = "添加出库单")
-    public CommonResult<Boolean>  createMuseumFlowOutbound(@RequestBody MuseumFlowSaveVO saveVO) {
-        String sample_id = saveVO.getNumber();
-        String number = saveVO.getNumber();
-        MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-        MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(number);
+    public CommonResult<Boolean> createMuseumFlowOutbound(@RequestBody MuseumFlowSaveVO saveVO) {
+        Long UserId = getLoginUserId();
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            String sample_id = saveVO.getNumber();
+            String number = saveVO.getNumber();
+            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
+            MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(number);
+            AdminUserDO userList = museumFlowService.selectAdminUserDOById(UserId);
 //             Save中 1现为未出库或已回库,0为已出库
 //             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-        //TODO 你这里上面获取了result和event的值再判断他为空,怎么可能为空 ,所以如果为空的话,上面两句就直接报错了
-        if (result == null) {
-            return CommonResult.error(200, "标本不存在");
-        }
-        else{
-            int Save = result.getSave();
-            if (Save == 1) {
-                if (event != null) {
+            if (result == null) {
+                return CommonResult.error(200, "标本不存在");
+            } else {
+                if (event == null) {
+                    int Save = result.getSave();
+                    if (Save == 1) {
+                        LocalDateTime applyTime = LocalDateTime.now();
+                        saveVO.setApplyTime(applyTime);
+                        String name = result.getChineseName();
+                        saveVO.setSampleName(name);//标本名称
+                        museumFlowService.createMuseumFlow(saveVO);
+                        museumFlowService.updateMuseumFlowStateOutbound2(saveVO);//状态2 审批中
+                        return CommonResult.success(true);
+                    }
+                } else {
                     int State = event.getState();
-                    if (State == 2) {
-                    return CommonResult.error(200, "标本正在审批");
+                    if (State == 0) {
+                        return CommonResult.error(200, "标本已回库");
+                    } else if (State == 1) {
+                        return CommonResult.error(200, "标本已出库");
+                    } else if (State == 2) {
+                        return CommonResult.error(200, "标本正在审批");
                     } else if (State == 3) {
                         return CommonResult.error(200, "标本审批已通过");
                     } else if (State == 4) {
                         return CommonResult.error(200, "标本已审批已驳回");
                     }
-                } else {
-                    String name = result.getChineseName();
-                    saveVO.setSampleName(name);
-                    museumFlowService.createMuseumFlow(saveVO);
-                    museumFlowService.updateMuseumFlowStateOutbound2(saveVO);
-                    return CommonResult.success(true);
+                    return CommonResult.error(200, "标本信息已存放在出入库的数据库中");
                 }
-            } else {
-                return CommonResult.error(200, "标本不在库中");
             }
+        } else {
+            return CommonResult.error(200, "您无此操作权限");
         }
         return CommonResult.success(true);
-//        List<String> sample_ids = saveVO.getNumber();
-//        List<String> errorList = new ArrayList<>();
-//        List<String> sample_names = new ArrayList<>();
-//////             Save中 1现为未出库或已回库,0为已出库
-//////             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-//        for (String sample_id : sample_ids) {
-//            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-//            if (result == null) {
-//                errorList.add(sample_id+"标本不存在");
-//                return CommonResult.error(200, "标本不存在");
-//            }
-//            else {
-//                int save = result.getSave();
-//                String name = result.getChineseName();
-//                if (save == 0) {
-//                    errorList.add(sample_id+"标本不在库中");
-//                    return CommonResult.error(200, "标本不在库中");
-//                }else {
-//                    sample_names.add(name);
-//                }
-//            }
-//        }
-//        if (errorList.isEmpty()) {
-//            saveVO.setSampleName(sample_names);//设置标本名称
-//            museumFlowService.createMuseumFlow(saveVO);//创建表单
-//            museumFlowService.updateMuseumFlowStateOutbound2(saveVO);//更改标本状态为出库
-//
-////            museumFlowService.selectPageS(respVO);
-//            return CommonResult.success(true);
-//        }else {
-//            System.out.println(errorList);
-//            return CommonResult.error(200, "标本存在错误");
-//        }
     }
 
     @PostMapping("outboundEnd")
     @Operation(summary = "出库完成功能")
-    public CommonResult<Boolean> createMuseumFlowOutboundEnd(@RequestBody MuseumFlowReviewVO reviewVO){
-        List<String> sample_ids = reviewVO.getNumber();
-        List<String> errorList = new ArrayList<>();
-        List<String> sample_names = new ArrayList<>();
+    public CommonResult<Boolean> createMuseumFlowOutboundEnd(@RequestBody MuseumFlowReviewVO reviewVO) {
+        Long UserId = getLoginUserId();
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            List<String> sample_ids = reviewVO.getNumber();
+            List<String> errorList = new ArrayList<>();
+            List<String> sample_names = new ArrayList<>();
 ////             Save中 1现为未出库或已回库,0为已出库
 ////             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-        for (String sample_id : sample_ids) {
-            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-            MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(sample_id);
-            String name = result.getChineseName();
-            if (event != null) {
-                int State = event.getState();
-                if (State == 2) {
-                    errorList.add(sample_id+"标本正在审批");
-                }else if (State == 3) {
-                    sample_names.add(name);
-                }else if (State == 4) {
-                    errorList.add(sample_id+"标本审批已驳回");
+            for (String sample_id : sample_ids) {
+                MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(sample_id);
+                if (event != null) {
+                    int State = event.getState();
+                    if (State == 1) {
+                        errorList.add(sample_id + "标本已出库");
+                    } else if (State == 2) {
+                        errorList.add(sample_id + "标本正在审批");
+                    } else if (State == 3) {
+                        AdminUserDO userList = museumFlowService.selectAdminUserDOById(UserId);
+                        String name = event.getSampleName();
+                        sample_names.add(name);
+                        String reviewPerson = userList.getNickname();
+                        reviewVO.setReviewPerson(reviewPerson);
+                    } else if (State == 4) {
+                        errorList.add(sample_id + "标本审批已驳回");
+                    } else if (State == 0) {
+                        errorList.add(sample_id + "标本审批已回库");
+                    }
+                } else {
+                    errorList.add(sample_id + "标本未申请出库");
                 }
-            }else {
-                errorList.add(sample_id+"标本未申请出库");
             }
-        }
-        if (errorList.isEmpty()) {
-            for (String sample_id : sample_ids) {
-                String number = sample_id;
-                museumFlowService.updateMuseumFlowStateOutbound1(number);
+            if (errorList.isEmpty()) {
+                for (String sample_id : sample_ids) {
+                    museumFlowService.updateMuseumFlowStateOutbound1(sample_id);
+                    museumFlowService.updateMuseumFlowSave0(sample_id);
+                }
+                LocalDateTime outboundTime = LocalDateTime.now();
+                reviewVO.setOutboundTime(outboundTime);
+                reviewVO.setSampleName(sample_names);//设置标本名称
+                reviewVO.setState(1);
+                museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
+                return CommonResult.success(true);
+            } else {
+                System.out.println(errorList);
+                return CommonResult.error(200, errorList.toString());
             }
-            reviewVO.setSampleName(sample_names);//设置标本名称
-            museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
-            museumFlowService.updateMuseumFlowStateOutbounds1(reviewVO);//更改标本状态为出库
-
-//            museumFlowService.selectPageS(respVO);
-            return CommonResult.success(true);
-        }else {
-            System.out.println(errorList);
-            return CommonResult.error(200, errorList.toString());
+        } else {
+            return CommonResult.error(200, "您无此操作权限");
         }
     }
 
     @GetMapping("/selectPageS")
     @Operation(summary = "获取关于标本信息的分页")
-    public PageResult<MuseumInfoDO> selectPageS(@Valid MuseumInfoPageReqVO pageVO){
-           return museumInfoService.getMuseumInfoPage(pageVO);
+    public PageResult<MuseumInfoDO> selectPageS(@Valid MuseumInfoPageReqVO pageVO) {
+        return museumInfoService.getMuseumInfoPage(pageVO);
     }
 
     @GetMapping("/pagePerson")
     @Operation(summary = "获取关于出库员的分页")
-    public PageResult<MuseumFlowDO> selectMuseumFlowOutboundPerson(@Valid MuseumFlowPageVO pageVO){
-        return  museumFlowService.selectPageMuseumFlowOutboundPerson(pageVO);
+    public PageResult<MuseumFlowDO> selectMuseumFlowOutboundPerson(@Valid MuseumFlowPageVO pageVO) {
+        return museumFlowService.selectPageMuseumFlowOutboundPerson(pageVO);
     }
 
     @PostMapping("/review")
     @Operation(summary = "通过的审批单")
     public CommonResult<Boolean> createMuseumFlowReview(@RequestBody MuseumFlowReviewVO reviewVO) {
+        Long UserId = getLoginUserId();
         List<String> sample_ids = reviewVO.getNumber();
         List<String> errorList = new ArrayList<>();
         List<String> sample_names = new ArrayList<>();
 ////             Save中 1现为未出库或已回库,0为已出库
 ////             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-        for (String sample_id : sample_ids) {
-            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-            MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(sample_id);
-            String name = result.getChineseName();
+        if (permissionService.hasAnyRoles(UserId, "leader")) {
+            for (String sample_id : sample_ids) {
+                MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
+                MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(sample_id);
+                String name = result.getChineseName();
                 if (event != null) {
                     int State = event.getState();
                     if (State == 2) {
                         sample_names.add(name);
-                    }else if (State == 3) {
-                        errorList.add(sample_id+"标本审批已通过");
-                    }else if (State == 4) {
-                        errorList.add(sample_id+"标本审批已驳回");
+                    } else if (State == 3) {
+                        errorList.add(sample_id + "标本审批已通过");
+                    } else if (State == 4) {
+                        errorList.add(sample_id + "标本审批已驳回");
+                    } else {
+                        if (State == 0) {
+                            errorList.add(sample_id + "标本审批已回库");
+                        } else if (State == 1) {
+                            errorList.add(sample_id + "标本已出库");
+                        }
                     }
-                }else {
-                    errorList.add(sample_id+"标本未申请出库");
+                } else {
+                    errorList.add(sample_id + "标本未申请出库");
                 }
-        }
-        if (errorList.isEmpty()) {
-            for (String sample_id : sample_ids) {
-                String number = sample_id;
-                museumFlowService.updateMuseumFlowStateReview3(number);
             }
-            reviewVO.setSampleName(sample_names);//设置标本名称
-            museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
-            museumFlowService.updateMuseumFlowStateReviews3(reviewVO);//更改标本状态为出库
-
-//            museumFlowService.selectPageS(respVO);
-            return CommonResult.success(true);
-        }else {
-            System.out.println(errorList);
-            return CommonResult.error(200, errorList.toString());
+            if (errorList.isEmpty()) {
+                for (String sample_id : sample_ids) {
+                    museumFlowService.updateMuseumFlowStateReview3(sample_id);
+                }
+                AdminUserDO userList = museumFlowService.selectAdminUserDOById(UserId);
+                String reviewPerson = userList.getNickname();
+                reviewVO.setReviewPerson(reviewPerson);
+                reviewVO.setSampleName(sample_names);//设置标本名称
+                LocalDateTime reviewTime = LocalDateTime.now();
+                reviewVO.setReviewTime(reviewTime);
+                museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
+                museumFlowService.updateMuseumFlowStateReviews3(reviewVO);//更改标本状态为3 审批通过
+                return CommonResult.success(true);
+            } else {
+                System.out.println(errorList);
+                return CommonResult.error(200, errorList.toString());
+            }
+        } else {
+            return CommonResult.error(200, "您无此操作权限");
         }
     }
-//        String sample_id = reviewVO.getNumber();
-//        String number = reviewVO.getNumber();
-//        MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-//        MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(number);
-//
-//        int Save = result.getSave();
-//        int State = event.getState();
-////             Save中 0现为未出库或已回库,1为已出库
-////             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-//        //TODO 你这里上面获取了result和event的值再判断他为空,怎么可能为空 ,所以如果为空的话,上面两句就直接报错了
-//        if (result == null) {
-//            return CommonResult.error(200, "样品不存在");
-//        } else if (event == null) {
-//            return CommonResult.error(200, "样品在出入库的库中不存在");
-//        }
-//        else if (Save == 0) {
-//            return CommonResult.error(200, "样品并未申请出库");
-//        } else if (Save == 1) {
-//            if (State == 2) {
-//                museumFlowService.createMuseumFlowReview(reviewVO);
-//                museumFlowService.updateMuseumFlowStateReview3(reviewVO);
-//                return CommonResult.success(true);
-//            } else if (State == 3) {
-//                return CommonResult.error(200, "样品已审批通过");
-//            } else if (State == 4) {
-//                return CommonResult.error(200, "样品审批已被驳回");
-//            }
-//        } else {
-//            return CommonResult.error(200, "样品已审批通过并出库");
-//        }
 
     @PostMapping("/reject")
     @Operation(summary = "新增驳回的审批单")
     public CommonResult<Boolean> createMuseumFlowReject(@RequestBody MuseumFlowReviewVO reviewVO) {
+        Long UserId = getLoginUserId();
         List<String> sample_ids = reviewVO.getNumber();
         List<String> errorList = new ArrayList<>();
         List<String> sample_names = new ArrayList<>();
 ////             Save中 1现为未出库或已回库,0为已出库
 ////             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-        for (String sample_id : sample_ids) {
-            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-            MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(sample_id);
-            String name = result.getChineseName();
-            if (event != null) {
-                int State = event.getState();
-                if (State == 2) {
-                    sample_names.add(name);
-                }else if (State == 3) {
-                    errorList.add(sample_id+"标本审批已通过");
-                }else if (State == 4) {
-                    errorList.add(sample_id+"标本审批已驳回");
-                }
-            }else {
-                errorList.add(sample_id+"标本未申请出库");
-            }
-        }
-        if (errorList.isEmpty()) {
+        if (permissionService.hasAnyRoles(UserId, "leader")) {
             for (String sample_id : sample_ids) {
-                String number = sample_id;
-                museumFlowService.updateMuseumFlowStateReview4(number);
+                MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
+                MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(sample_id);
+                String name = result.getChineseName();
+                if (event != null) {
+                    int State = event.getState();
+                    if (State == 2) {
+                        sample_names.add(name);
+                    } else if (State == 3) {
+                        errorList.add(sample_id + "标本审批已通过");
+                    } else if (State == 4) {
+                        errorList.add(sample_id + "标本审批已驳回");
+                    } else {
+                        if (State == 0) {
+                            errorList.add(sample_id + "标本审批已回库");
+                        } else if (State == 1) {
+                            errorList.add(sample_id + "标本已出库");
+                        }
+                    }
+                } else {
+                    errorList.add(sample_id + "标本未申请出库");
+                }
             }
-            reviewVO.setSampleName(sample_names);//设置标本名称
-            museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
-            museumFlowService.updateMuseumFlowStateReviews4(reviewVO);//更改标本状态为出库
-
+            if (errorList.isEmpty()) {
+                for (String sample_id : sample_ids) {
+                    museumFlowService.updateMuseumFlowStateReview4(sample_id);
+                }
+                AdminUserDO userList = museumFlowService.selectAdminUserDOById(UserId);
+                String reviewPerson = userList.getNickname();
+                reviewVO.setReviewPerson(reviewPerson);
+                reviewVO.setSampleName(sample_names);//设置标本名称
+                LocalDateTime reviewTime = LocalDateTime.now();
+                reviewVO.setReviewTime(reviewTime);
+                museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
+                museumFlowService.updateMuseumFlowStateReviews4(reviewVO);//更改标本状态为出库
 //            museumFlowService.selectPageS(respVO);
-            return CommonResult.success(true);
-        }else {
-            System.out.println(errorList);
-            return CommonResult.error(200, errorList.toString());
+                return CommonResult.success(true);
+            } else {
+                System.out.println(errorList);
+                return CommonResult.error(200, errorList.toString());
+            }
+        } else {
+            return CommonResult.error(200, "您无此操作权限");
         }
-//        for (String sample_id : sample_ids) {
-//            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-//            if (result == null) {
-//                errorList.add(sample_id+"标本不存在");
-//            }
-//            else {
-//                int save = result.getSave();
-//                String name = result.getChineseName();
-//                if (save == 0) {
-//                    errorList.add(sample_id+"标本不在库中");
-//                }else {
-//                    sample_names.add(name);
-//                }
-//            }
-//        }
-//        if (errorList.isEmpty()) {
-//            reviewVO.setSampleName(sample_names);//设置标本名称
-//            museumFlowService.createMuseumFlowReview(reviewVO);//创建表单
-//            museumFlowService.updateMuseumFlowStateReview4(reviewVO);
-////            museumFlowService.selectPageS(respVO);
-//            return CommonResult.success(true);
-//        }else {
-//            System.out.println(errorList);
-//            return CommonResult.error(200, "标本存在错误");
-//        }
-//        String sample_id = reviewVO.getNumber();
-//        String number = reviewVO.getNumber();
-//        MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-//        MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(number);
-//        int Save = result.getSave();
-//        int State = event.getState();
-////             Save中 0现为未出库或已回库,1为已出库
-////             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-//        if (result == null) {
-//            return CommonResult.error(200, "样品不存在");
-//        } else if (event == null) {
-//            return CommonResult.error(200, "样品在出入库的库中不存在");
-//        }
-//        else if (Save == 1) {
-//            return CommonResult.error(200, "样品已出库");
-//        } else if (Save == 0) {
-//            if (State == 2) {
-//                museumFlowService.createMuseumFlowReview(reviewVO);
-//                museumFlowService.updateMuseumFlowStateReview4(reviewVO);
-//                return CommonResult.success(true);
-//            } else if (State == 3) {
-//                return CommonResult.error(200, "样品已审批通过");
-//            } else if (State == 4) {
-//                return CommonResult.error(200, "样品审批已被驳回");
-//            }
-//        } else {
-//            return CommonResult.error(200, "样品已审批通过并出库");
-//        }
-//        return CommonResult.success(true);
     }
 
     @PostMapping("/return")
-    @Operation(summary = "新建回库单")
+    @Operation(summary = "回库功能")
     public CommonResult<Boolean> createMuseumFlowReturn(@RequestBody MuseumFlowReturnVO returnVO) {
-        String sample_id = returnVO.getNumber();
+        Long UserId = getLoginUserId();
         String number = returnVO.getNumber();
-        MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
+        String sample_id = returnVO.getNumber();
         MuseumFlowDO event = museumFlowService.selectMuseumFlowNumber(number);
-        int Save = result.getSave();
-        int State = event.getState();
-//             Save中 0现为未出库或已回库,1为已出库
+        MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
+//             Save中 1现为未出库或已回库,0为已出库
 //             State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
-        if (result == null) {
-            return CommonResult.error(200, "样品不存在");
-        } else if (event == null) {
-            return CommonResult.error(200, "样品在出入库的库中不存在");
-        }
-         if (Save == 1) {
-            return CommonResult.error(200, "样品已出库");
-        } else if (Save == 0) {
-            if (State == 2) {
-                museumFlowService.createMuseumFlowReturn(returnVO);
-                museumFlowService.updateMuseumFlowSave0(returnVO);
-                return CommonResult.success(true);
-            } else if (State == 3) {
-                return CommonResult.error(200, "样品已审批通过");
-            } else if (State == 4) {
-                return CommonResult.error(200, "样品审批已被驳回");
+        if (permissionService.hasAnyRoles(UserId, "operate")) {
+            if (event == null) {
+                return CommonResult.error(200, "标本未申请出库");
+            } else {
+                int Save = result.getSave();
+                if (Save == 0) {
+                    int State = event.getState();
+                    if (State == 0) {
+                        return CommonResult.error(200, "标本已返回库中");
+                    } else if (State == 1) {
+                        museumFlowService.updateMuseumFlowStateReturn1(returnVO);
+                        museumFlowService.updateMuseumFlowSave1(sample_id);
+                        LocalDateTime returnTime = LocalDateTime.now();
+                        returnVO.setReturnTime(returnTime);
+                    } else if (State == 2) {
+                        return CommonResult.error(200, "标本正在审批");
+                    } else if (State == 3) {
+                        return CommonResult.error(200, "标本审批已通过但未出库");
+                    } else if (State == 4) {
+                        return CommonResult.error(200, "标本审批已驳回");
+                    }
+                } else {
+                    return CommonResult.error(200, "标本还未出库");
+                }
             }
+            return CommonResult.success(true);
         } else {
-            return CommonResult.error(200, "样品已审批通过并出库");
+            return CommonResult.error(200, "您无此操作权限");
         }
-        return CommonResult.success(true);
     }
 }

+ 72 - 0
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowInfoVO.java

@@ -0,0 +1,72 @@
+package cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo;
+
+import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Schema(description = "博物馆-出库标本信息 info VO")
+@Data
+public class MuseumFlowInfoVO {
+
+    @TableId
+    @Schema(description = "样品ID")
+    private Integer id;
+
+    @Schema(description = "出库员")
+    private String outboundPerson;
+
+    @Schema(description = "出库时间")
+    private LocalDateTime outboundTime;
+
+    @Schema(description = "目的")
+    private String purpose;
+
+    @Schema(description = "出库附件")
+    private String annexOut;
+
+    @Schema(description = "申请人")
+    private String applyPerson;
+
+    @Schema(description = "申请单位")
+    private String applyUnit;
+
+    @Schema(description = "申请时间")
+    private LocalDateTime applyTime;
+
+    @Schema(description = "预计退还时间")
+    private String returnExpect;
+
+    @Schema(description = "审批人")
+    private String reviewPerson;
+
+    @Schema(description = "审批时间")
+    private LocalDateTime reviewTime;
+
+    @Schema(description = "拒绝原因")
+    private String rejectSeason;
+
+    @Schema(description = "退还员")
+    private String returnPerson;
+
+    @Schema(description = "退还时间")
+    private LocalDateTime returnTime;
+
+    @Schema(description = "点收人")
+    private String receivePerson;
+
+    @Schema(description = "回库附件")
+    private String annexReturn;
+
+    @Schema(description = "备注")
+    private String nots;
+
+    @Schema(description = "状态")
+    private Integer state;
+
+    @Schema(description = "标本详情")
+    private List<MuseumInfoDO> museumInfoDO;
+}

+ 0 - 2
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowSaveVO.java

@@ -72,6 +72,4 @@ public class MuseumFlowSaveVO {
     @Schema(description = "状态")
     private Integer state;
 
-    @Schema(description = "关联标本信息分页")
-    private List<MuseumInfoDO> museumInfoVO;
 }

+ 36 - 27
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/mysql/museumflow/MuseumFlowMapper.java

@@ -3,21 +3,25 @@ package cn.iocoder.yudao.module.museum.dal.mysql.museumflow;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowInfoVO;
 import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowPageVO;
 import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowSaveVO;
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
+import org.jsoup.select.Evaluator;
 
 import java.util.List;
 
 @Mapper
 public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
 
-    @Update("UPDATE museum_outbound SET sample_type=#{sampleType}, place=#{place} WHERE id =#{id}")
+    @Update("UPDATE museum_outbound SET sample_name=#{sampleName}, outbound_person=#{outboundPerson}," +
+            " purpose=#{purpose} WHERE number =#{number}")
     void updateMuseumFlow(MuseumFlowDO museumFlowDO);
 
     @Update("UPDATE museum_outbound SET deleted=1  WHERE id =#{id}")
@@ -41,18 +45,20 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
     @Select("SELECT * FROM museum_outbound WHERE number = #{number} AND deleted = 0 ")
     MuseumFlowDO selectMuseumFlowByNumbers(@Param("number")List<String> number);
 
-/**出库功能
+/**出库功能 Save中 1现为未出库或已回库,0为已出库   State中 0现为未出库或已回库,1为已出库,2为审批中,3为审批通过,4为审批驳回
+
+
+    /**将总库中样品状态更新为0 已出库**/
+    @Update("UPDATE museum_info SET save=0  WHERE sample_id =#{sample_id} AND deleted =0 ")
+    void updateMuseumFlowSave0(String sample_id);
 
-    /**将主库样品状态更新为1 已出库**/
-    @Update("UPDATE museum_info SET save=1  WHERE sample_id = #{sample_id} AND deleted =0 ")
-    void updateMuseumFlowSave1(MuseumFlowDO museumFlowDO);
 
     /**将样品状态更新为1 已出库**/
-    @Update("UPDATE museum_info SET save=1  WHERE sample_id = #{sample_id} AND deleted =0 ")
+    @Update("UPDATE museum_outbound SET state=1  WHERE number = #{number} AND deleted =0 ")
     void updateMuseumFlowStateOutbound1(String number);
 
     /**将样品数组状态更新为1 已出库**/
-    @Update("UPDATE museum_info SET save=1  WHERE sample_id = #{sample_id} AND deleted =0 ")
+    @Update("UPDATE museum_outbound SET state=1  WHERE number = #{number} AND deleted =0 ")
     void updateMuseumFlowStateOutbounds1(MuseumFlowDO MuseumFlowDO);
 
 
@@ -60,22 +66,8 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
     @Update("UPDATE museum_outbound SET state=2  WHERE number =#{number} AND deleted =0 ")
     void updateMuseumFlowStateOutbound2(MuseumFlowDO MuseumFlowDO);
 
-//   default MuseumFlowDO selectPageMuseumFlowByPage(String number){return selectOne(MuseumFlowDO::getNumber,number);}
-/**分页**/
-
-//   default PageResult<MuseumInfoDO> selectPageS(MuseumFlowPageVO pageVO) {
-//       LambdaQueryWrapperX<MuseumInfoDO> queryWrapper = new LambdaQueryWrapperX<>();
-//       queryWrapper.inIfPresent(MuseumInfoDO::getSampleId, pageVO.getNumber())
-//               .orderByDesc(MuseumInfoDO::getId);
-//       return selectPage(pageVO, queryWrapper);
-//   }
-
-//       return selectPage(pageVO ,new LambdaQueryWrapperX<MuseumFlowDO>()
-//               .likeIfPresent(MuseumFlowDO::getNumber,pageVO.getNumber())
-//               .betweenIfPresent(MuseumFlowDO::getOutboundTime, pageVO.getOutboundTime())
-//               .eqIfPresent(MuseumFlowDO::getOutboundPerson,pageVO.getOutboundPerson())
-//               .inIfPresent(MuseumFlowDO::getId, id)
-//               .orderByDesc(MuseumFlowDO::getId));
+
+/**分页
 //        in 来指定多个值,如 in(w1,2,3);
 //        between..and 来指定遥感连续的范围, 如 between 1 and 10;
 //        like 是模糊查询;
@@ -92,6 +84,7 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
         return selectPage(pageVO, queryWrapper);
     }
 
+
 /**审批功能
 
 
@@ -112,9 +105,25 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
     void updateMuseumFlowStateReviews4(MuseumFlowDO MuseumFlowDO);
 
 
-/**回库功能
+/**回库功能 Save中 1现为未出库或已回库,0为已出库  flow中1
+
+
+    /**将主库样品状态更新为1 已出库**/
+    @Update("UPDATE museum_info SET save=1  WHERE sample_id = #{sample_id} AND deleted =0 ")
+    void updateMuseumFlowSave1(String sample_id);
+
+    /**将样品状态更新为0 已回库**/
+    @Update("UPDATE museum_outbound SET state=0  WHERE number = #{number} AND deleted =0 ")
+    void updateMuseumFlowStateReturn1(MuseumFlowDO MuseumFlowDO);
+
+/**身份查询功能
+
+    /**查询身份是否为操作员**/
+    @Select("SELECT * FROM system_users WHERE id = #{UserId} AND deleted =0 ")
+    AdminUserDO selectAdminUserDOById(Long UserId);
+
+//    /**根据编号在Flow库中进行查找*/
+//    @Select("SELECT * FROM museum_outbound WHERE number = #{number} AND deleted = 0 ")
+//    MuseumFlowDO selectMuseumFlowByNumber(@Param("number")String number);
 
-    /**将总库中样品状态更新为0 未出库或已回库**/
-    @Update("UPDATE museum_outbound SET save=0  WHERE number =#{number} AND deleted =0 ")
-    void updateMuseumFlowSave0(MuseumFlowDO MuseumFlowDO);
 }

+ 16 - 10
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumflow/MuseumFlowService.java

@@ -2,12 +2,10 @@ package cn.iocoder.yudao.module.museum.service.museumflow;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowPageVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowReturnVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowReviewVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowSaveVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.*;
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 
 import java.util.List;
 
@@ -45,10 +43,10 @@ public interface MuseumFlowService {
     /**根据编号数组在Flow库中进行查找*/
     MuseumFlowDO selectMuseumFlowNumbers(List<String> number);
 
-/**出库功能
+/**出库功能 Save中 1现为未出库或已回库,0为已出库 flow中0
 
-    /**将主库中标本状态设置为1*/
-    void updateMuseumFlowSave1(MuseumFlowSaveVO saveVO);
+    /**将主库中标本状态设置为0*/
+    void updateMuseumFlowSave0(String sample_id);
 
     /**标本状态设置为1*/
     void updateMuseumFlowStateOutbound1(String number);
@@ -86,11 +84,19 @@ public interface MuseumFlowService {
     /**将标本数组状态设置为4 审批驳回*/
     void updateMuseumFlowStateReviews4(MuseumFlowReviewVO reviewVO);
 
-/**回库功能
+/**回库功能 Save中 1现为未出库或已回库,0为已出库 flow中1
 
     /**新建出库单**/
     Integer createMuseumFlowReturn(MuseumFlowReturnVO returnVO);
 
-    /**将主库中标本状态设置为1*/
-    void updateMuseumFlowSave0(MuseumFlowReturnVO returnVO);
+    /**将主库中标本状态设置为0*/
+    void updateMuseumFlowSave1(String sample_id);
+
+    /**将标本状态设置为1*/
+    void updateMuseumFlowStateReturn1(MuseumFlowReturnVO returnVO);
+
+/**身份查询功能
+
+    /**查询身份是否为操作员**/
+    AdminUserDO selectAdminUserDOById(Long  UserId);
 }

+ 38 - 20
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumflow/MuseumFlowServiceImpl.java

@@ -3,13 +3,13 @@ package cn.iocoder.yudao.module.museum.service.museumflow;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowPageVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowReturnVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowReviewVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowSaveVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.*;
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import cn.iocoder.yudao.module.museum.dal.mysql.museumflow.MuseumFlowMapper;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import com.alibaba.druid.sql.visitor.functions.If;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -61,7 +61,7 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
         return museumFlowMapper.selectMuseumFlowByNumbers(number);
     }
 
-/**出库功能
+/**出库功能 Save中 1现为未出库或已回库,0为已出库 flow中0
 
     /**创建出库单*/
     @Override
@@ -70,10 +70,10 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
         return museumFlowMapper.insert(result);
     }
 
-    /**将主库中样品状态设置为1*/
+    /**将主库中标本状态设置为0*/
     @Override
-    public void updateMuseumFlowSave1(MuseumFlowSaveVO saveVO){
-        museumFlowMapper.updateMuseumFlowSave1(BeanUtils.toBean(saveVO,MuseumFlowDO.class));
+    public void updateMuseumFlowSave0(String sample_id){
+        museumFlowMapper.updateMuseumFlowSave0(sample_id);
     }
 
     /**将样品状态设置为1 已出库*/
@@ -94,22 +94,20 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
     }
 
 
-
-    /**根据出库员进行分页查找*/
-    @Override
-    public PageResult<MuseumFlowDO> selectPageMuseumFlowOutboundPerson(MuseumFlowPageVO pageVO){
-        return museumFlowMapper.selectPageMuseumFlowByOutboundPerson(pageVO);
-    }
-
-
 /**分页功能
 
-    /**根据分页长度进行排序**/
+//    根据分页长度进行排序
 //    @Override
 //    public PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO){
 //        return  museumFlowMapper.selectPageS(pageVO);
 //    }
 
+    /**根据出库员进行分页查找*/
+    @Override
+    public PageResult<MuseumFlowDO> selectPageMuseumFlowOutboundPerson(MuseumFlowPageVO pageVO){
+        return museumFlowMapper.selectPageMuseumFlowByOutboundPerson(pageVO);
+    }
+
 
 /**审批功能
 
@@ -143,7 +141,7 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
     }
 
 
-/**出库功能
+/**回库功能 Save中 1现为未出库或已回库,0为已出库 flow中1
 
     /**新建出库单**/
     @Override
@@ -154,7 +152,27 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
 
     /**将主库中样品状态设置为1*/
     @Override
-    public void updateMuseumFlowSave0(MuseumFlowReturnVO returnVO){
-        museumFlowMapper.updateMuseumFlowSave0(BeanUtils.toBean(returnVO,MuseumFlowDO.class));
+    public void updateMuseumFlowSave1(String sample_id){
+        museumFlowMapper.updateMuseumFlowSave1(sample_id);
+    }
+
+    /**将标本状态设置为1 已出库*/
+    @Override
+    public void updateMuseumFlowStateReturn1(MuseumFlowReturnVO returnVO){
+        museumFlowMapper.updateMuseumFlowStateReturn1(BeanUtils.toBean(returnVO,MuseumFlowDO.class));
+    }
+
+
+/**身份查询功能
+
+    /**根据角色编号在角色表中进行查找**/
+    @Override
+    public AdminUserDO selectAdminUserDOById(Long  UserId) {
+        return museumFlowMapper.selectAdminUserDOById(UserId);
     }
+
+//    /**根据编号在总表中进行查找**/
+//    public MuseumInfoDO selectMuseumFlowSampleId(String sample_id) {
+//        return museumFlowMapper.selectMuseumFlowBySampleId(sample_id);
+//    }
  }

+ 0 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java

@@ -199,7 +199,6 @@ public class PermissionServiceImpl implements PermissionService {
     public Set<Long> getMenuRoleIdListByMenuIdFromCache(Long menuId) {
         return convertSet(roleMenuMapper.selectListByMenuId(menuId), RoleMenuDO::getRoleId);
     }
-
     // ========== 用户-角色的相关方法  ==========
 
     @Override