package com.ltkj.web.controller.system; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import cn.hutool.extra.pinyin.PinyinUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.DictHosp; import com.ltkj.hosp.domain.DictSfxm; import com.ltkj.hosp.domain.TjCustomer; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.service.IDictHospService; import com.ltkj.hosp.service.IDictSfxmService; import com.ltkj.hosp.service.TjAsyncService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.aspectj.weaver.AjAttribute; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.ltkj.common.annotation.Log; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.enums.BusinessType; import com.ltkj.common.utils.poi.ExcelUtil; import com.ltkj.common.core.page.TableDataInfo; /** * 收费项目Controller * * @author ltkj * @date 2023-03-22 */ @RestController @RequestMapping("/system/sfxm") @Api(tags = "收费项目管理") public class DictSfxmController extends BaseController { @Resource private IDictSfxmService dictSfxmService; @Resource private IDictHospService dictHospService; @Resource private RedisCache redisCache; @Resource private TjAsyncService asyncService; /** * 查询收费项目列表 */ // @PreAuthorize("@ss.hasPermi('system:sfxm:list')") @PostMapping("/list") @ApiOperation(value = "查询") public TableDataInfo list(@RequestBody DictSfxm dictSfxm) { startPage(); String pym = dictSfxm.getPym(); if(null !=pym && !pym.isEmpty()) { pym=dictSfxm.getPym().toUpperCase(Locale.ROOT); dictSfxm.setPym(pym); } List list = dictSfxmService.selectDictSfxmList(dictSfxm); if (null != list && !list.isEmpty()) { for (DictSfxm sfxm : list) { DictHosp hosp = dictHospService.getById(sfxm.getYqid()); if (null != hosp) { sfxm.setYqName(hosp.getHospAreaName()); } } } return getDataTable(list); } /** * 导出收费项目列表 */ // @PreAuthorize("@ss.hasPermi('system:sfxm:export')") @Log(title = "收费项目", businessType = BusinessType.EXPORT) @PostMapping("/export") @ApiOperation(value = "导出") public void export(HttpServletResponse response, DictSfxm dictSfxm) { List list = dictSfxmService.selectDictSfxmList(dictSfxm); ExcelUtil util = new ExcelUtil(DictSfxm.class); util.exportExcel(response, list, "收费项目数据"); } /** * 获取收费项目详细信息 */ // @PreAuthorize("@ss.hasPermi('system:sfxm:query')") @GetMapping(value = "/{id}") @ApiOperation(value = "详情信息") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(dictSfxmService.selectDictSfxmById(id)); } /** * 新增收费项目 */ // @PreAuthorize("@ss.hasPermi('system:sfxm:add')") @Log(title = "收费项目", businessType = BusinessType.INSERT) @PostMapping @ApiOperation(value = "新增") public AjaxResult add(@RequestBody DictSfxm dictSfxm) { asyncService.getDictSfxms(); dictSfxm.setWbm(MatchUtils.toWubi(dictSfxm.getXmmc())); dictSfxm.setPym(PinyinUtil.getFirstLetter(dictSfxm.getXmmc(),"").toUpperCase(Locale.ROOT)); return toAjax(dictSfxmService.insertDictSfxm(dictSfxm)); } /** * 修改收费项目 */ // @PreAuthorize("@ss.hasPermi('system:sfxm:edit')") @Log(title = "收费项目", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "修改") public AjaxResult edit(@RequestBody DictSfxm dictSfxm) { asyncService.getDictSfxms(); return toAjax(dictSfxmService.updateDictSfxm(dictSfxm)); } /** * 删除收费项目 */ // @PreAuthorize("@ss.hasPermi('system:sfxm:remove')") @Log(title = "收费项目", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation(value = "删除") public AjaxResult remove(@PathVariable Long[] ids) { asyncService.getDictSfxms(); return toAjax(dictSfxmService.deleteDictSfxmByIds(ids)); } @GetMapping("/getList") @ApiOperation(value = "按照项目编码树形查询") public AjaxResult getList() { if(redisCache.hasKey("getDictSfxms")){ List getDictSfxms = redisCache.getCacheObject("getDictSfxms"); return AjaxResult.success(getDictSfxms); } List dictSfxms = getDictSfxms(); return AjaxResult.success(dictSfxms); } private List getDictSfxms() { List dictSfxms = dictSfxmService.getYjDictSfxmList(); if (null != dictSfxms && dictSfxms.size() > 0) { for (DictSfxm dictSfxm : dictSfxms) { List sfxms = dictSfxmService.getEjDictSfxmList(dictSfxm.getId()); if (null != sfxms && sfxms.size() > 0) { for (DictSfxm sfxm : sfxms) { List sfx = dictSfxmService.getSjDictSfxmList(dictSfxm.getId()); sfxm.setDictSfxms(sfx); } } dictSfxm.setDictSfxms(sfxms); } } return dictSfxms; } @GetMapping("/getListByXmId") @ApiOperation(value = "按照项目主键查询项目信息") public AjaxResult getListByXmbm(@RequestParam @ApiParam(value = "项目主键id") String id, @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page, @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize) { DictSfxm service = dictSfxmService.getById(id); String xmbm = null; if (null != service) { xmbm = service.getXmbm(); } Map map = new HashMap<>(); if (null != xmbm && xmbm.length() == 2) { List sfxms = dictSfxmService.getEjDictSfxmList(service.getId()); if (null != sfxms && !sfxms.isEmpty()) { for (DictSfxm sfxm : sfxms) { List sfx = dictSfxmService.getSjDictSfxmList(service.getId()); sfxm.setDictSfxms(sfx); } List sfxmList = sfxms.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); Collections.reverse(sfxmList); map.put("date", sfxmList); map.put("total", sfxms.size()); } else { map.put("date", null); map.put("total", 0); } return AjaxResult.success(map); } if (null != xmbm && xmbm.length() == 4) { List sfx = dictSfxmService.getSjDictSfxmList(service.getId()); if (null != sfx && !sfx.isEmpty()) { List sfxmList = sfx.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); if (!sfxmList.isEmpty()) { for (DictSfxm sfxm : sfxmList) { DictHosp hosp = dictHospService.getById(sfxm.getYqid()); if (null != hosp) { sfxm.setYqName(hosp.getHospAreaName()); } } } Collections.reverse(sfxmList); map.put("date", sfxmList); map.put("total", sfx.size()); } else { map.put("date", null); map.put("total", 0); } return AjaxResult.success(map); } return AjaxResult.success(map); } // /** // * 查询收费项目列表 // */ // @PostMapping("/getSfxmList") // @ApiOperation(value = "查询") // public AjaxResult getSfxmList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page, // @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize, // @ApiParam(value = "拼音码") @RequestParam(required = false) String pym, // @ApiParam(value = "名称") @RequestParam(required = false) String xmmc, // @ApiParam(value = "id") @RequestParam(required = false) String id) { // Map map = new HashMap<>(); // List collect = null; // LambdaQueryWrapper wq=new LambdaQueryWrapper<>(); // if(null !=pym && !"".equals(pym)) { // pym=pym.toUpperCase(Locale.ROOT); // wq.like(DictSfxm::getPym,pym); // } // if(null !=xmmc && !"".equals(xmmc)) { // wq.like(DictSfxm::getXmmc,xmmc); // } // if(null !=id && !"".equals(id)) { // wq.like(DictSfxm::getId,id); // } // List list = dictSfxmService.list(wq); // if (null != list && list.size() > 0) { // for (DictSfxm sfxm : list) { // DictHosp hosp = dictHospService.getById(sfxm.getYqid()); // if (null != hosp) { // sfxm.setYqName(hosp.getHospAreaName()); // } // } // } // collect = list.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // if (null != collect) { // map.put("total", collect.size()); // } else { // map.put("total", 0); // } // map.put("list", collect); // return AjaxResult.success(map); // } }