ludc
2023-05-04 7ff176bf622d6a4bad0fb2bdf92f11a79f0dd24a
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
package com.vci.ubcs.code.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
import com.vci.ubcs.code.service.ICodeClassifyValueService;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * åˆ†ç±»ç æ®µçš„码值控制器
 *
 * @author weidy
 * @date 2022-01-24
 */
@RestController
@RequestMapping("/codeClassifyValueController")
public class CodeClassifyValueController {
    /**
    * åˆ†ç±»ç æ®µçš„码值 æœåŠ¡
    */
    @Autowired
    private ICodeClassifyValueService codeClassifyValueService;
    /**
     * åˆ†ç±»ç æ®µçš„码值树
     * @param treeQueryObject æ ‘形查询对象
     * @return åˆ†ç±»ç æ®µçš„码值显示树
     */
    @GetMapping("/treeCodeClassifyValue")
    public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject)  {
      return codeClassifyValueService.treeCodeClassifyValue(treeQueryObject);
    }
    /**
     * å¢žåŠ  åˆ†ç±»ç æ®µçš„码值
     * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PostMapping( "/addSave")
    public R<CodeClassifyValueVO> addSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
      return R.status(codeClassifyValueService.addSave(codeClassifyValueDTO));
    }
    /**
     * ä¿®æ”¹ åˆ†ç±»ç æ®µçš„码值
     * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PutMapping("/editSave")
    public R<CodeClassifyValueVO> editSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
        return R.status(codeClassifyValueService.editSave(codeClassifyValueDTO));
    }
    /**
    * æ£€æŸ¥ åˆ†ç±»ç æ®µçš„码值是否删除
    * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象,必须要有oid和ts属性
    * @return æ‰§è¡Œç»“æžœ success为true为可以删除,false表示有数据引用,obj为true表示有下级
    */
    @PostMapping( "/checkIsCanDelete")
    public R checkIsCanDelete( CodeClassifyValueDTO codeClassifyValueDTO)  {
        return codeClassifyValueService.checkIsCanDelete(codeClassifyValueDTO);
    }
    /**
     * åˆ é™¤åˆ†ç±»ç æ®µçš„码值
     * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     */
    @DeleteMapping( "/deleteData")
    public R delCodeClassifyValue(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO) {
        return codeClassifyValueService.deleteCodeClassifyValue(codeClassifyValueDTO);
    }
    /**
    * ä¸»é”®èŽ·å–åˆ†ç±»ç æ®µçš„ç å€¼
    * @param oid ä¸»é”®
    * @return åˆ†ç±»ç æ®µçš„码值显示对象
    */
    @GetMapping("/getObjectByOid")
    public R<CodeClassifyValueVO> getObjectByOid(String oid){
        CodeClassifyValueVO codeClassifyValueVO = codeClassifyValueService.getObjectByOid(oid);
        return R.data(codeClassifyValueVO);
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–åˆ†ç±»ç æ®µçš„ç å€¼
     * @param oids ä¸»é”®ï¼Œå¤šä¸ªä»¥é€—号分隔,但是受性能影响,建议一次查询不超过10000个
     * @return åˆ†ç±»ç æ®µçš„码值显示对象
     */
    @GetMapping("/listDataByOids")
    public R<Collection<CodeClassifyValueVO>> listCodeClassifyValueByOids(String oids){
        Collection<CodeClassifyValueVO> voCollection =  codeClassifyValueService.listCodeClassifyValueByOids(VciBaseUtil.str2List(oids));
        return R.data(voCollection);
    }
    /**
    * å‚ç…§æ ‘ åˆ†ç±»ç æ®µçš„码值
    * @param treeQueryObject æ ‘形查询对象
    * @return åˆ†ç±»ç æ®µçš„码值显示树
    */
    @GetMapping("/referTree")
        public List<Tree> referTree(TreeQueryObject treeQueryObject)  {
        return codeClassifyValueService.referTree(treeQueryObject);
    }
    /**
     * ä¿å­˜é¡µé¢ä¸Šçš„分类码段码值,主要是保存序号用于排序。如果数据库中存在页面传输对象集合中不存在的值,则删除。
     * @param param å‚数,包括dtoList é¡µé¢ä¼ è¾“对象集合 å’Œcodeclassifysecoid åˆ†ç±»ç æ®µä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    @PostMapping("/saveOrder")
    public R saveOrder(@RequestBody Map<String,Object> param){
        JSONArray json = JSONArray.parseArray(String.valueOf(param.get("dtoList")));
        List<CodeClassifyValueDTO> dtoList = new ArrayList<>();
        for (int i = 0; i < json.size(); i++) {
            CodeClassifyValueDTO codeFixedValueDTO = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(json.get(i))), CodeClassifyValueDTO.class);
            dtoList.add(codeFixedValueDTO);
        }
        String codeclassifysecoid = (String) param.get("codeClassifySecOid");
        VciBaseUtil.alertNotNull(dtoList,"码值集合");
        if (CollectionUtils.isEmpty(dtoList)){
            return R.success("");
        }
        return codeClassifyValueService.batchSave4Order(dtoList,codeclassifysecoid);
    }
}