Преглед на файлове

07 27 03 add 责任中心相关模块

hr преди 4 години
родител
ревизия
2eae334f72

+ 19 - 0
src/main/java/com/imed/costaccount/model/dto/DepartDTO.java

@@ -0,0 +1,19 @@
+package com.imed.costaccount.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+@ApiModel("修改或新增对照中心dto")
+public class DepartDTO {
+
+    @NotNull(message = "责任中心id不能为空")
+    private Integer responsibilityId;
+
+    @NotEmpty(message = "选择部门不能为空")
+    private List<Integer> departmentIds;
+}

+ 8 - 0
src/main/java/com/imed/costaccount/service/ResponsibilityDepartmentService.java

@@ -2,6 +2,7 @@ package com.imed.costaccount.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.DepartDTO;
 import com.imed.costaccount.model.vo.CenterDepartmentVO;
 import com.imed.costaccount.utils.PageUtils;
 import com.imed.costaccount.model.ResponsibilityDepartment;
@@ -24,5 +25,12 @@ public interface ResponsibilityDepartmentService extends IService<Responsibility
      * @return
      */
     List<CenterDepartmentVO> getCenterDepart(User user);
+
+    /**
+     * 保存或修改责任中心对照
+     * @param departDTO
+     * @param user
+     */
+    void saveCenterDepart(DepartDTO departDTO, User user);
 }
 

+ 36 - 0
src/main/java/com/imed/costaccount/service/impl/ResponsibilityDepartmentServiceImpl.java

@@ -1,19 +1,26 @@
 package com.imed.costaccount.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.imed.costaccount.mapper.ResponsibilityDepartmentMapper;
 import com.imed.costaccount.model.Responsibility;
 import com.imed.costaccount.model.ResponsibilityDepartment;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.DepartDTO;
 import com.imed.costaccount.model.vo.CenterDepartmentVO;
 import com.imed.costaccount.model.vo.DepartVO;
 import com.imed.costaccount.service.ResponsibilityDepartmentService;
 import com.imed.costaccount.service.ResponsibilityService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service("responsibilityDepartmentService")
@@ -43,4 +50,33 @@ public class ResponsibilityDepartmentServiceImpl
         }
         return list;
     }
+
+    /**
+     * 保存或修改责任中心对照
+     *
+     * @param departDTO
+     * @param user
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    public void saveCenterDepart(DepartDTO departDTO, User user) {
+        Integer responsibilityId = departDTO.getResponsibilityId();
+        Integer hospId = user.getHospId();
+        List<ResponsibilityDepartment> list = this.list(
+                new LambdaQueryWrapper<ResponsibilityDepartment>().select(ResponsibilityDepartment::getId)
+                        .eq(ResponsibilityDepartment::getResponsibilityId, responsibilityId)
+                        .eq(ResponsibilityDepartment::getHospId, hospId)
+        );
+        if (CollUtil.isNotEmpty(list)) {
+            this.removeByIds(list);
+        }
+
+        List<ResponsibilityDepartment> data = departDTO.getDepartmentIds().stream().map(item -> {
+            ResponsibilityDepartment centerDepart = new ResponsibilityDepartment();
+            return centerDepart.setResponsibilityId(responsibilityId).setCreateTime(new Date().getTime()).setHospId(hospId)
+                    .setDepartmentId(item);
+        }).collect(Collectors.toList());
+
+        this.saveBatch(data);
+    }
 }

+ 18 - 9
src/main/java/com/imed/costaccount/web/ResponsibilityDepartmentController.java

@@ -5,19 +5,20 @@ import java.util.List;
 
 import com.imed.costaccount.common.util.Result;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.DepartDTO;
 import com.imed.costaccount.model.vo.CenterDepartmentVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-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.bind.annotation.*;
 
 import com.imed.costaccount.model.ResponsibilityDepartment;
 import com.imed.costaccount.service.ResponsibilityDepartmentService;
 import com.imed.costaccount.utils.PageUtils;
 
+import javax.validation.Valid;
+
 
 /**
  * 责任中心科室对照表
@@ -25,6 +26,7 @@ import com.imed.costaccount.utils.PageUtils;
  * @author huangrui
  * @date 2021-07-27 14:53:53
  */
+@Api(tags="对照中心")
 @RestController
 @RequestMapping("/costAccount/centerDepartment")
 public class ResponsibilityDepartmentController {
@@ -34,15 +36,22 @@ public class ResponsibilityDepartmentController {
         this.responsibilityDepartmentService = responsibilityDepartmentService;
     }
 
-    /**
-     * 分页查询列表
-     */
-    @RequestMapping("/list")
+
+    @ApiOperation("列表")
+    @GetMapping("/list")
     public Result list(){
         User user = (User) SecurityUtils.getSubject().getPrincipal();
         List<CenterDepartmentVO> list = responsibilityDepartmentService.getCenterDepart(user);
         return Result.ok(list);
     }
 
+    @ApiOperation("保存或修改责任中心对照")
+    @PostMapping("/save")
+    public Result saveOrUpdate(@RequestBody @Valid DepartDTO departDTO) {
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        responsibilityDepartmentService.saveCenterDepart(departDTO,user);
+        return Result.ok();
+    }
+
 
 }

+ 1 - 1
src/main/resources/mapper/ResponsibilityDepartmentMapper.xml

@@ -15,7 +15,7 @@
 
 
     <select id="getDepartByCenterId" resultType="com.imed.costaccount.model.vo.DepartVO">
-        select sd.id as departmentId,sd.department_name as departmentName
+        select sd.id as departmentId,concat(sd.department_name,sd.department_code) as departmentName
             from cost_responsibility_department crd left join  sys_department sd on sd.id = crd.department_id
         where crd.responsibility_id = #{responsibilityId}
     </select>