Bläddra i källkod

云照护修改

LAPTOP-KB9HII50\70708 1 år sedan
förälder
incheckning
0371816722

+ 6 - 0
svr/svr-base/pom.xml

@ -159,6 +159,12 @@
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <!--这边用2.2.6适配这个系统原本的有的poi3.17版本-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
        </dependency>
        <!--   poi xml导入导出工具 start-->
        <dependency>
            <groupId>org.apache.poi</groupId>

+ 14 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/servicePackage/ServiceItemConfigDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.base.dao.servicePackage;
import com.yihu.jw.entity.base.servicePackage.ServiceItemConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 *
 * @author yeshijie on 2018/8/17.
 */
public interface ServiceItemConfigDao extends JpaRepository<ServiceItemConfig, String>, JpaSpecificationExecutor<ServiceItemConfig> {
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/servicePackage/ServicePackageItemRelationalDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.base.dao.servicePackage;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemRelationalDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2021/2/23.
 */
public interface ServicePackageItemRelationalDao
        extends JpaRepository<ServicePackageItemRelationalDO, String>,
        JpaSpecificationExecutor<ServicePackageItemRelationalDO> {
}

+ 15 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/servicePackage/ServicePackageSubItemDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.base.dao.servicePackage;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSubItemDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2021/2/23.
 */
public interface ServicePackageSubItemDao
        extends JpaRepository<ServicePackageSubItemDO, String>,
        JpaSpecificationExecutor<ServicePackageSubItemDO> {
}

+ 95 - 51
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/servicePackage/ServicePackageEndpoint.java

@ -1,12 +1,15 @@
package com.yihu.jw.base.endpoint.servicePackage;
import com.alibaba.fastjson.JSON;
import com.yihu.jw.base.dao.servicePackage.ServicePackageDao;
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemDao;
import com.yihu.jw.base.service.servicePackage.ServiceItemConfigService;
import com.yihu.jw.base.service.servicePackage.ServicePackageService;
import com.yihu.jw.entity.base.servicePackage.ServiceItemConfig;
import com.yihu.jw.entity.base.servicePackage.ServicePackageDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.restmodel.qvo.ParamQvo;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -21,7 +24,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.net.URLDecoder;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -40,68 +45,71 @@ public class ServicePackageEndpoint extends EnvelopRestEndpoint {
    private ServicePackageItemDao servicePackageItemDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private ServiceItemConfigService itemConfigService;
    @PostMapping(value = BaseRequestMapping.ServicePackage.CREATE)
    @ApiOperation(value = "创建")
    public Envelop create (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        ServicePackageDO servicePackageDO = toEntity(jsonData, ServicePackageDO.class);
        servicePackageService.create(servicePackageDO);
        return success("操作成功");
        try {
            ServicePackageDO servicePackageDO = toEntity(jsonData, ServicePackageDO.class);
            servicePackageService.create(servicePackageDO,getUID());
            return success("操作成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @PostMapping(value = BaseRequestMapping.ServicePackage.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) throws Exception{
        servicePackageService.delete(ids.split(","));
        return success("删除成功");
    @PostMapping(value = "deleteById")
    @ApiOperation(value = "删除服务包")
    public Envelop deleteById(
            @ApiParam(name = "id", value = "id", required = false) @RequestParam String id
    ){
        try {
            servicePackageService.deleteById(id);
            return success("删除成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @PostMapping(value = "changeState")
    @ApiOperation(value = "改变服务包状态")
    public Envelop changeState(
            @ApiParam(name = "id", value = "id", required = false) @RequestParam String id,
            @ApiParam(name = "del", value = "del 0失效1生效", required = false) @RequestParam String del
    ) {
        try {
            servicePackageService.changeState(id,del,getUID());
            return success("操作成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @GetMapping(value = BaseRequestMapping.ServicePackage.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<ServicePackageDO> page (
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<ServicePackageDO> servicePackageDOS = servicePackageService.search(fields, filters, sorts, page, size);
        List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDOS = wlyyHospitalSysDictDao.findByDictName("serviceType");
        List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDOS1 = wlyyHospitalSysDictDao.findByDictName("isEffect");
        for (ServicePackageDO servicePackageDO:servicePackageDOS){
            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByServicePackageId(servicePackageDO.getId());
            List<String> orgNames = itemDOList.stream().map(p -> p.getOrgName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
//            List<String> teamNames = itemDOList.stream().map(p -> p.getTeamName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            List<String> orgCodes = itemDOList.stream().map(p -> p.getOrgCode()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
 //           List<String> teamCodes = itemDOList.stream().map(p -> p.getTeamCode()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            servicePackageDO.setOrgNames(StringUtils.join(orgNames,","));
//            servicePackageDO.setTeamNames(StringUtils.join(teamNames,","));
            servicePackageDO.setOrgCodes(StringUtils.join(orgCodes,","));
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:wlyyHospitalSysDictDOS){
                if (servicePackageDO.getType().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    servicePackageDO.setTypeName(wlyyHospitalSysDictDO.getDictValue());
                }
            }
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:wlyyHospitalSysDictDOS1){
                if (servicePackageDO.getDel().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    servicePackageDO.setDelName(wlyyHospitalSysDictDO.getDictValue());
                }
            }
    public PageEnvelop<Map<String, Object>> page(
            @ApiParam(name = "id", value = "主键") @RequestParam(value = "id", required = false) String id,
            @ApiParam(name = "leasedCode", value = "租户code") @RequestParam(value = "leasedCode", required = false) String leasedCode,
            @ApiParam(name = "orgCode", value = "机构code") @RequestParam(value = "orgCode", required = false) String orgCode,
            @ApiParam(name = "pageName", value = "服务包名称") @RequestParam(value = "pageName", required = false) String pageName,
            @ApiParam(name = "status", value = "状态") @RequestParam(value = "status", required = false) String status,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1") @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15") @RequestParam(value = "size") int size
    ) {
        try {
            return servicePackageService.findList(id, leasedCode, orgCode, pageName, status, page, size);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("操作失败");
        }
        int count = (int)servicePackageService.getCount(filters);
        return success(servicePackageDOS, count, page, size);
    }
    @GetMapping(value = "findById")
@ -112,9 +120,7 @@ public class ServicePackageEndpoint extends EnvelopRestEndpoint {
        ServicePackageDO servicePackageDO = servicePackageDao.findOne(id);
        List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByServicePackageId(servicePackageDO.getId());
        List<String> orgNames = itemDOList.stream().map(p -> p.getOrgName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
//        List<String> teamNames = itemDOList.stream().map(p -> p.getTeamName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
        servicePackageDO.setOrgNames(StringUtils.join(orgNames,","));
//        servicePackageDO.setTeamNames(StringUtils.join(teamNames,","));
        servicePackageDO.setPackageItemDOList(itemDOList);
        return success(servicePackageDO);
    }
@ -131,4 +137,42 @@ public class ServicePackageEndpoint extends EnvelopRestEndpoint {
        List<ServicePackageDO> servicePackageDOS = servicePackageService.search(fields, filters, sorts);
        return success(servicePackageDOS);
    }
    /**
     * 配置服务项计划
     */
    @PostMapping(value = "/changeItemConfig")
    @ApiOperation(value = "配置服务项计划成功")
    public Envelop changeItemConfig(
            @ApiParam(name = "jsonStr", value = "Json数据", required = false) @RequestParam String jsonStr
    ) {
        try {
            jsonStr = URLDecoder.decode(jsonStr, "UTF-8");
            System.out.println("入参:" + JSON.toJSONString(jsonStr));
            ParamQvo qvo = JSON.parseObject(jsonStr, ParamQvo.class);
            itemConfigService.changeItemConfig(qvo);
            return success("配置服务项计划成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    /**
     * 根据服务包查询所有服务项配置
     */
    @GetMapping(value = "/findItemConfig")
    @ApiOperation(value = "根据服务包查询所有服务项配置")
    public Envelop findItemConfig(
            @ApiParam(name = "id", value = "服务包id") @RequestParam(value = "id", required = false) String id
    ) {
        try {
            List<ServiceItemConfig> list = itemConfigService.findItemConfig(id);
            return success("查询成功", list);
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
}

+ 59 - 14
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/servicePackage/ServicePackageItemEndpoint.java

@ -1,12 +1,13 @@
package com.yihu.jw.base.endpoint.servicePackage;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.netflix.discovery.converters.Auto;
import com.yihu.jw.base.service.servicePackage.ServicePackageItemService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.restmodel.qvo.ParamQvo;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -15,15 +16,12 @@ import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.codec.binary.Base64;
import org.nlpcn.es4sql.domain.From;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.List;
/**
@ -39,26 +37,73 @@ public class ServicePackageItemEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    /**
     * {"parentId":"","leasedCode":"","orgCode":"","itemName":"","status":"","pageIf":"1","page":1,"pageSize":1,"configureIf":"","id":""}
     * 查询所有服务项
     */
    @GetMapping(value = "getItemList")
    @ApiOperation(value = "查询所有服务项")
    public PageEnvelop<ServicePackageItemDO> getItemList(
            @ApiParam(name = "jsonStr", value = "Json数据", required = false) @RequestParam String jsonStr
    ) {
        try {
            jsonStr = URLDecoder.decode(jsonStr, "UTF-8");
            System.out.println("入参:" + JSON.toJSONString(jsonStr));
            ParamQvo qvo = JSON.parseObject(jsonStr, ParamQvo.class);
            return servicePackageItemService.getItemList(qvo);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("操作失败");
        }
    }
    @PostMapping(value = "create")
    @ApiOperation(value = "创建")
    public Envelop create (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        ServicePackageItemDO servicePackageItemDO = toEntity(jsonData, ServicePackageItemDO.class);
        JSONObject result = servicePackageItemService.create(servicePackageItemDO);
        if(StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))){
            return failed(result.getString("msg"));
            @RequestParam String jsonData) {
        try {
            ServicePackageItemDO servicePackageItemDO = toEntity(jsonData, ServicePackageItemDO.class);
            JSONObject result = servicePackageItemService.create(servicePackageItemDO);
            if(StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))){
                return failed(result.getString("msg"));
            }
            return success(result.get("msg"));
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    /**
     * 改变状态 del改成0
     */
    @PostMapping(value = "changeState")
    @ApiOperation(value = "改变状态")
    public ObjEnvelop changeState(
            @ApiParam(name = "id", value = "id", required = true) @RequestParam String id,
            @ApiParam(name = "del", value = "del 0失效1生效", required = true) @RequestParam String del){
        try {
            ServicePackageItemDO entity = servicePackageItemService.changeState(id,del);
            return success(entity);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("操作失败");
        }
        return success(result.get("msg"));
    }
    @PostMapping(value = "delete")
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) throws Exception{
        servicePackageItemService.delete(ids.split(","));
        return success("删除成功");
            @RequestParam(value = "ids") String ids){
        try {
            servicePackageItemService.deleteById(ids);
            return success("删除成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @PostMapping(value = "update")

+ 185 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/servicePackage/ServicePackageSubItemEndpoint.java

@ -0,0 +1,185 @@
package com.yihu.jw.base.endpoint.servicePackage;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.service.servicePackage.ServicePackageSubItemService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.vo.excel.SubItemExcelVo;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSubItemDO;
import com.yihu.jw.restmodel.qvo.ParamQvo;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "servicePackageSubItem", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(value = "服务子项管理", description = "服务子项管理", tags = {"wlyy基础服务 - 服务子项管理服务接口"})
public class ServicePackageSubItemEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private ServicePackageSubItemService subItemService;
    /**
     * 查询所有服务子项
     */
    @GetMapping(value = "getItemList")
    @ApiOperation(value = "查询所有服务项")
    public PageEnvelop<Map<String, Object>> getSubItemList(
            @ApiParam(name = "jsonStr", value = "Json数据", required = true) @RequestParam String jsonStr
    ) {
        try {
            jsonStr = URLDecoder.decode(jsonStr, "UTF-8");
            ParamQvo qvo = JSON.parseObject(jsonStr, ParamQvo.class);
            return subItemService.getSubItemList(qvo);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("操作失败");
        }
    }
    @PostMapping(value = "createSubItem")
    @ApiOperation(value = "创建服务子项")
    public Envelop createSubItem(
            @ApiParam(name = "jsonStr", value = "Json数据", required = true) @RequestParam String jsonStr) throws Exception {
        try {
            jsonStr = URLDecoder.decode(jsonStr, "UTF-8");
            ServicePackageSubItemDO subItemDO = toEntity(jsonStr, ServicePackageSubItemDO.class);
            JSONObject result = subItemService.createSubItem(subItemDO);
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL, result.getString("response"))) {
                return failed(result.getString("msg"));
            }
            return success(result.get("msg"));
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    /**
     * 改变状态
     */
    @PostMapping(value = "changeState")
    @ApiOperation(value = "改变状态")
    public ObjEnvelop changeState(
            @ApiParam(name = "jsonStr", value = "jsonStr", required = true) @RequestParam String jsonStr) throws Exception {
        try {
            jsonStr = URLDecoder.decode(jsonStr, "UTF-8");
            ParamQvo qvo = JSON.parseObject(jsonStr, ParamQvo.class);
            if (org.apache.commons.lang3.StringUtils.isBlank(qvo.getId())) {
                return failed("ID不能为空", ObjEnvelop.class);
            }
            ServicePackageSubItemDO entity = subItemService.changeState(qvo);
            return success(entity);
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException(e);
        }
    }
    @PostMapping(value = "deleteById")
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true) @RequestParam(value = "ids") String ids) throws Exception {
        try {
            subItemService.deleteById(ids);
            return success("删除成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("删除失败");
        }
    }
    /**
     * 导入数据
     */
    @PostMapping(value = "/importSubItemExcel")
    public Envelop importSubItemExcel(
            @ApiParam(value = "文件", required = true)
            @RequestParam(value = "file", required = true) MultipartFile file) {
        try {
            //获取文件的输入流
            InputStream inputStream = file.getInputStream();
            List<SubItemExcelVo> list = EasyExcel.read(inputStream)
                    .head(SubItemExcelVo.class)
                    .sheet(0)
                    .headRowNumber(1)
                    .doReadSync();
            subItemService.importSubItemExcel(list);
            return success("导入成功!");
        } catch (Exception exception) {
            exception.printStackTrace();
            return failed("导入失败!");
        }
    }
    /**
     * 导出数据
     */
    @GetMapping("/exportSubItemExcel")
    public void exportSubItemExcel(
            HttpServletResponse response,
            @ApiParam(name = "jsonStr", value = "jsonStr", required = false) @RequestParam(value = "jsonStr") String jsonStr
    ) throws Exception {
        OutputStream outputStream = response.getOutputStream();
        try {
            jsonStr = URLDecoder.decode(jsonStr, "UTF-8");
            System.out.println("入参:" + JSON.toJSONString(jsonStr));
            ParamQvo qvo = JSON.parseObject(jsonStr, ParamQvo.class);
            this.setExcelResponseProp(response, "服务子项");
            List<SubItemExcelVo> resultList = subItemService.getSubItemVoList(qvo);
            EasyExcel.write(outputStream, SubItemExcelVo.class)
                    .excelType(ExcelTypeEnum.XLSX)
                    .sheet("服务子项")
                    .doWrite(resultList);
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            outputStream.flush();
            outputStream.close();
        }
    }
    /**
     * 设置响应结果
     */
    private void setExcelResponseProp(HttpServletResponse response, String rawFileName) throws Exception {
        //设置内容类型
        response.setContentType("application/vnd.vnd.ms-excel");
        //设置编码格式
        response.setCharacterEncoding("utf-8");
        //设置导出文件名称(避免乱码)
        String fileName = URLEncoder.encode(rawFileName.concat(".xlsx"), "UTF-8");
        // 设置响应头
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName);
    }
}

+ 59 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServiceItemConfigService.java

@ -0,0 +1,59 @@
package com.yihu.jw.base.service.servicePackage;
import com.alibaba.fastjson.JSON;
import com.yihu.jw.base.dao.servicePackage.ServiceItemConfigDao;
import com.yihu.jw.entity.base.servicePackage.ServiceItemConfig;
import com.yihu.jw.restmodel.qvo.ParamQvo;
import com.yihu.mysql.query.BaseJpaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author yeshijie on 2018/8/17.
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class ServiceItemConfigService extends BaseJpaService<ServiceItemConfig, ServiceItemConfigDao> {
    private Logger logger = LoggerFactory.getLogger(ServiceItemConfigService.class);
    @Autowired
    ServiceItemConfigDao itemConfigDao;
    @Autowired
    JdbcTemplate jdbcTemplate;
    /**
     * 保存服务项的配置
     */
    public void changeItemConfig(ParamQvo qvo) throws Exception {
        String jsonContent = qvo.getJsonContent();
        List<ServiceItemConfig> itemConfigList = JSON.parseArray(jsonContent, ServiceItemConfig.class);
        String collect = itemConfigList.stream().map(vo -> String.valueOf("'" + vo.getServerItemId() + "'"))
                .collect(Collectors.joining(",", "(", ") "));
        //删除服务项的配置
        String sql = " DELETE FROM base_service_item_config WHERE package_id='" + qvo.getId() + "' AND server_item_id IN " + collect;
        jdbcTemplate.execute(sql);
        itemConfigDao.save(itemConfigList);
    }
    public List<ServiceItemConfig> findItemConfig(String id) {
        String sql = "SELECT\n" +
                "	b.name,a.* \n" +
                "FROM\n" +
                "	base_service_item_config a\n" +
                "	INNER JOIN base_service_package_item b ON a.package_id = b.service_package_id \n" +
                "	AND a.server_item_id = b.id \n" +
                "	WHERE 1=1 AND a.package_id='" + id + "'";
        List<ServiceItemConfig> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(ServiceItemConfig.class));
        return list;
    }
}

+ 22 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageItemRelationalService.java

@ -0,0 +1,22 @@
package com.yihu.jw.base.service.servicePackage;
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemRelationalDao;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemRelationalDO;
import com.yihu.mysql.query.BaseJpaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * @author yeshijie on 2018/8/17.
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class ServicePackageItemRelationalService
        extends BaseJpaService<ServicePackageItemRelationalDO, ServicePackageItemRelationalDao> {
    private Logger logger = LoggerFactory.getLogger(ServicePackageItemRelationalService.class);
}

+ 104 - 31
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageItemService.java

@ -2,23 +2,29 @@ package com.yihu.jw.base.service.servicePackage;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemDao;
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemRelationalDao;
import com.yihu.jw.base.dao.system.SystemDictEntryDao;
import com.yihu.jw.base.dao.team.BaseTeamDao;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemRelationalDO;
import com.yihu.jw.entity.base.system.SystemDictEntryDO;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.restmodel.qvo.ParamQvo;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * Created by yeshijie on 2021/2/23.
@ -34,23 +40,14 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
    private BaseTeamDao baseTeamDao;
    @Autowired
    private SystemDictEntryDao systemDictEntryDao;
    @Autowired
    private ServicePackageItemRelationalDao relationalDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    public JSONObject create(ServicePackageItemDO itemDO){
        JSONObject result = new JSONObject();
//         if(StringUtils.isEmpty(itemDO.getTeamCode())){
//            result.put("msg","请选择服务团队");
//            result.put("response", ConstantUtils.FAIL);
//            return result;
//        }
        BaseOrgDO baseOrgDO = baseOrgDao.findByCode(itemDO.getOrgCode());
        if (baseOrgDO!=null){
            itemDO.setOrgName(baseOrgDO.getName());
        }
//        BaseTeamDO baseTeamDO  = baseTeamDao.findOne(itemDO.getTeamCode());
//        if (baseTeamDO!=null){
//            itemDO.setTeamName(baseTeamDO.getName());
//        }
        if(StringUtil.isEmpty(itemDO.getId())){
            SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item",itemDO.getCode());
            if (systemDictEntryDO!=null){
@ -58,17 +55,18 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
                    itemDO.setTopicItem(systemDictEntryDO.getRemark());
                }
            }
            //新增
//            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByTeamCode(itemDO.getTeamCode(),itemDO.getCode());
//            if(itemDOList!=null&&itemDOList.size()>0){
//                result.put("msg","该服务团队已存在此服务项,请勿重复添加");
//                result.put("response", ConstantUtils.FAIL);
//                return result;
//            }
            itemDO.setPrice(new BigDecimal(0));
            itemDO.setServicePackageId("system");
            itemDO.setCreateTime(DateUtil.getStringDate());
            itemDO.setDel("1");
            servicePackageItemDao.save(itemDO);
            //保存子项目
            String subItemIdList = itemDO.getSubItemId();
            for (String subItemId : subItemIdList.split(",")) {
                ServicePackageItemRelationalDO entity = new ServicePackageItemRelationalDO();
                entity.setItemId(itemDO.getId());
                entity.setSubItemId(subItemId);
                relationalDao.save(entity);
            }
        }else{
            //修改
            SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item",itemDO.getCode());
@ -77,13 +75,22 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
                    itemDO.setTopicItem(systemDictEntryDO.getRemark());
                }
            }
            ServicePackageItemDO oldItemDO = servicePackageItemDao.findOne(itemDO.getId());
            oldItemDO.setName(itemDO.getName());
            oldItemDO.setDel(itemDO.getDel());
            oldItemDO.setCode(itemDO.getCode());
            oldItemDO.setFeeType(itemDO.getFeeType());
            oldItemDO.setIntroduce(itemDO.getIntroduce());
            servicePackageItemDao.save(oldItemDO);
            //修改
            servicePackageItemDao.save(itemDO);
            //删除关联表重新添加
            String delSql = " DELETE FROM base_service_package_item_relational WHERE item_id='" + itemDO.getId() + "'";
            jdbcTemplate.execute(delSql);
            //加入关联表
            String subItemIdList = itemDO.getSubItemId();
            if(StringUtils.isNotBlank(subItemIdList)){
                for (String subItemId : subItemIdList.split(",")) {
                    ServicePackageItemRelationalDO entity = new ServicePackageItemRelationalDO();
                    entity.setItemId(itemDO.getId());
                    entity.setSubItemId(subItemId);
                    relationalDao.save(entity);
                }
            }
        }
        result.put("response",ConstantUtils.SUCCESS);
@ -91,4 +98,70 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
        return result;
    }
    public PageEnvelop getItemList(ParamQvo qvo) {
        String detailSql = "SELECT a.*, " +
                " (SELECT GROUP_CONCAT(q.sub_item_id) FROM base_service_package_item_relational q WHERE q.item_id=a.id) 'subItemId' ";
        String countSql = "SELECT count(1) ";
        String pageSql = "";
        String sql = " FROM base_service_package_item a WHERE 1=1 \n";
        if (StringUtils.isNotBlank(qvo.getConfigureIf())) {
            //添加的项
            sql += " AND a.service_package_id ='system'  ";
        }
        if (StringUtils.isNotBlank(qvo.getId())) {
            sql += " AND a.id ='" + qvo.getId() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getParentId())) {
            sql += " AND a.service_package_id ='" + qvo.getParentId() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getLeasedCode())) {
            sql += " AND a.leased_code ='" + qvo.getLeasedCode() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getOrgCode())) {
            sql += " AND a.org_code ='" + qvo.getOrgCode() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getStatus())) {
            sql += " AND a.del ='" + qvo.getStatus() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getItemName())) {
            sql += " AND a.`name` LIKE '%" + qvo.getItemName() + "%'";
        }
        if (StringUtils.isNotBlank(qvo.getPageIf())) {
            //需要分页
            pageSql = " limit " + (qvo.getPage() - 1) * qvo.getPageSize() + "," + qvo.getPageSize();
        }
        countSql += sql;
        detailSql += sql + pageSql;
        Long count = jdbcTemplate.queryForObject(countSql, Long.class);
        List<ServicePackageItemDO> list = jdbcTemplate.query(detailSql,new BeanPropertyRowMapper<>(ServicePackageItemDO.class));
        List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findByDictName("isEffect");
        for (ServicePackageItemDO servicePackageItemDO:list){
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO1:wlyyHospitalSysDictDO){
                if (servicePackageItemDO.getDel().equalsIgnoreCase(wlyyHospitalSysDictDO1.getDictCode())){
                    servicePackageItemDO.setDelName(wlyyHospitalSysDictDO1.getDictValue());
                }
            }
        }
        return PageEnvelop.getSuccessListWithPage("获取成功",list,qvo.getPage(),qvo.getPageSize(),count);
    }
    public ServicePackageItemDO changeState(String id,String del) {
        ServicePackageItemDO entity = servicePackageItemDao.findOne(id);
        if (entity != null) {
            entity.setDel(del);
            ServicePackageItemDO newEntity = servicePackageItemDao.save(entity);
            return newEntity;
        }
        return null;
    }
    public void deleteById(String ids) {
        String collect = Arrays.stream(ids.split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",", "(", ")"));
        String delSql = "DELETE FROM base_service_package_item WHERE id IN ";
        delSql += collect;
        jdbcTemplate.execute(delSql);
        //删除关联关系
        String delRelationalSql = "DELETE FROM base_service_package_item_relational WHERE item_id in " + collect;
        jdbcTemplate.execute(delRelationalSql);
    }
}

+ 108 - 27
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageService.java

@ -7,26 +7,31 @@ import com.yihu.jw.base.dao.servicePackage.ServicePackageSignRecordDao;
import com.yihu.jw.base.dao.system.SystemDictEntryDao;
import com.yihu.jw.base.dao.team.BaseTeamDao;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
import com.yihu.jw.entity.base.system.SystemDictEntryDO;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.user.UserDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 *
@ -47,15 +52,19 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    @Autowired
    private BaseTeamDao baseTeamDao;
    @Autowired
    private UserDao userDao;
    @Autowired
    private SystemDictEntryDao systemDictEntryDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private ServicePackageSignRecordDao servicePackageSignRecordDao;
    @Transactional(rollbackFor = Exception.class)
    public JSONObject create(ServicePackageDO servicePackageDO){
    public JSONObject create(ServicePackageDO servicePackageDO,String uid){
        JSONObject result = new JSONObject();
        UserDO userDO = userDao.findById(uid);
        List<ServicePackageItemDO> itemDOList = servicePackageDO.getPackageItemDOList();
        if(itemDOList==null){
            servicePackageDO.setNum(0);
@ -66,40 +75,33 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
        if(StringUtil.isEmpty(servicePackageDO.getId())){
            //新增
            servicePackageDO.setCreateTime(new Date());
            if(userDO!=null){
                servicePackageDO.setCreateUser(userDO.getId());
                servicePackageDO.setCreateUserName(userDO.getName());
            }
            servicePackageDO=servicePackageDao.save(servicePackageDO);
        }else{
            //修改
            ServicePackageDO oldDO = servicePackageDao.findOne(servicePackageDO.getId());
            oldDO.setName(servicePackageDO.getName());
            oldDO.setDel(servicePackageDO.getDel());
            oldDO.setType(servicePackageDO.getType());
            oldDO.setIntroduce(servicePackageDO.getIntroduce());
            oldDO.setOrgCode(servicePackageDO.getOrgCode());
            oldDO.setOrgName(servicePackageDO.getOrgName());
            servicePackageDO= servicePackageDao.save(oldDO);
            servicePackageItemDao.deleteByServicePackageId(oldDO.getId());
            servicePackageDO.setUpdateTime(new Date());
            if(userDO!=null){
                servicePackageDO.setUpdateUser(userDO.getId());
                servicePackageDO.setUpdateUserName(userDO.getName());
            }
            servicePackageDO= servicePackageDao.save(servicePackageDO);
            servicePackageItemDao.deleteByServicePackageId(servicePackageDO.getId());
        }
        List<ServicePackageItemDO> itemDOs = new ArrayList<>();
        for (ServicePackageItemDO itemDO:itemDOList){
            BaseOrgDO baseOrgDO = baseOrgDao.findByCode(itemDO.getOrgCode());
            if (baseOrgDO!=null){
                itemDO.setOrgName(baseOrgDO.getName());
            }
            itemDO = servicePackageItemDao.findOne(itemDO.getId());
            ServicePackageItemDO itemDO1 = new ServicePackageItemDO();
            BeanUtils.copyProperties(itemDO,itemDO1);
            itemDO1.setId(null);
            itemDO1.setDictId(itemDO.getId());
            itemDO1.setServicePackageId(servicePackageDO.getId());
            itemDO1.setCreateTime(DateUtil.getStringDate());
            itemDO.setServicePackageId(servicePackageDO.getId());
            itemDO.setCreateTime(DateUtil.getStringDate());
            SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item",itemDO.getCode());
            if (systemDictEntryDO!=null){
                if (StringUtils.isNotBlank(systemDictEntryDO.getRemark())){//服务项所属专题不为空
                    itemDO1.setTopicItem(systemDictEntryDO.getRemark());
                    itemDO.setTopicItem(systemDictEntryDO.getRemark());
                }
            }
            itemDOs.add(itemDO1);
            itemDOs.add(itemDO);
        }
        servicePackageItemDao.save(itemDOs);
@ -108,4 +110,83 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
        return result;
    }
    public PageEnvelop findList(String id, String leasedCode, String orgCode, String pageName, String status, int page, int size) {
        String detailSql = "SELECT\n" +
                "	(SELECT GROUP_CONCAT(b.`name`) FROM  base_service_package_item b WHERE b.service_package_id=a.id) 'pageItemName',\n" +
                "	a.* \n";
        String countSql = "SELECT count(1)  ";
        String sql = " FROM 	base_service_package a  WHERE 1 =1 ";
        if (StringUtils.isNotBlank(id)) {
            sql += " AND a.id='" + id + "'";
        }
        if (StringUtils.isNotBlank(status)) {
            sql += " AND a.del='" + status + "'";
        }
        if (StringUtils.isNotBlank(pageName)) {
            sql += " AND a.`name` like'%" + pageName + "%'";
        }
        if (StringUtils.isNotBlank(leasedCode)) {
            sql += " AND a.`leased_code`='" + leasedCode + "'";
        }
        if (StringUtils.isNotBlank(orgCode)) {
            sql += " AND a.`org_code`='" + orgCode + "'";
        }
        sql += " ORDER BY a.create_time DESC ";
        String pageSql = " limit " + (page - 1) * size + "," + size;
        detailSql += sql + pageSql;
        countSql += sql;
        List<ServicePackageDO> list = jdbcTemplate.query(detailSql,new BeanPropertyRowMapper<>(ServicePackageDO.class));
        List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDOS = wlyyHospitalSysDictDao.findByDictName("serviceType");
        List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDOS1 = wlyyHospitalSysDictDao.findByDictName("isEffect");
        for (ServicePackageDO servicePackageDO:list){
            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByServicePackageId(servicePackageDO.getId());
            List<String> orgNames = itemDOList.stream().map(p -> p.getOrgName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            List<String> orgCodes = itemDOList.stream().map(p -> p.getOrgCode()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            servicePackageDO.setOrgNames(StringUtils.join(orgNames,","));
            servicePackageDO.setOrgCodes(StringUtils.join(orgCodes,","));
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:wlyyHospitalSysDictDOS){
                if (servicePackageDO.getType().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    servicePackageDO.setTypeName(wlyyHospitalSysDictDO.getDictValue());
                }
            }
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:wlyyHospitalSysDictDOS1){
                if (servicePackageDO.getDel().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    servicePackageDO.setDelName(wlyyHospitalSysDictDO.getDictValue());
                }
            }
        }
        Long count = jdbcTemplate.queryForObject(countSql, Long.class);
        return PageEnvelop.getSuccessListWithPage("获取成功",list,page,size,count);
    }
    public void deleteById(String id) {
        //查出服务包的服务项
        String itemSql = "SELECT id 'itemId' FROM base_service_package_item WHERE service_package_id ='" + id + "'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(itemSql);
        String collect = list.stream().map(map -> String.valueOf("'" + map.get("itemId") + "'")).collect(Collectors.joining(",", "(", ") "));
        //删除服务部
        String sql01 = " DELETE FROM base_service_package WHERE id='" + id + "'";
        //删除关联的服务项
        String sql02 = " DELETE FROM base_service_package_item WHERE service_package_id='" + id + "'";
        //删除关联关系
        if (!list.isEmpty()) {
            String sql03 = " DELETE FROM base_service_package_item_relational WHERE item_id IN " + collect;
            jdbcTemplate.execute(sql03);
        }
        jdbcTemplate.execute(sql02);
        jdbcTemplate.execute(sql01);
    }
    public void changeState(String id,String del,String uid) {
        ServicePackageDO packageDO = servicePackageDao.findOne(id);
        packageDO.setDel(del);
        UserDO userDO = userDao.findById(uid);
        if(userDO!=null){
            packageDO.setUpdateUser(userDO.getId());
            packageDO.setUpdateUserName(userDO.getName());
        }
        servicePackageDao.save(packageDO);
    }
}

+ 189 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageSubItemService.java

@ -0,0 +1,189 @@
package com.yihu.jw.base.service.servicePackage;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.servicePackage.ServicePackageSubItemDao;
import com.yihu.jw.base.vo.excel.SubItemExcelVo;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSubItemDO;
import com.yihu.jw.restmodel.qvo.ParamQvo;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
 * Created by yeshijie on 2021/2/23.
 */
@Service
public class ServicePackageSubItemService extends BaseJpaService<ServicePackageSubItemDO, ServicePackageSubItemDao> {
    @Autowired
    private ServicePackageSubItemDao subItemDao;
    public PageEnvelop getSubItemList(ParamQvo qvo) {
        String detailSql = "select * ";
        String countSql = " select count(1) ";
        String pageSql = "";
        String sql = " FROM base_service_package_sub_item a   ";
        if (StringUtils.isNotBlank(qvo.getParentId())) {
            sql += " INNER JOIN base_service_package_item_relational b ON a.id = b.sub_item_id  ";
        }
        sql += " WHERE 1=1 ";
        if (StringUtils.isNotBlank(qvo.getId())) {
            sql += "AND a.id = '" + qvo.getId() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getLeasedCode())) {
            sql += "AND a.leased_code = '" + qvo.getLeasedCode() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getOrgCode())) {
            sql += "AND a.org_code = '" + qvo.getOrgCode() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getStatus())) {
            sql += "AND a.`status` = '" + qvo.getStatus() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getName())) {
            sql += "AND a.`name` like '%" + qvo.getName() + "%'";
        }
        if (StringUtils.isNotBlank(qvo.getParentId())) {
            //创建的服务项的id
            sql += "AND b.`item_id` = '" + qvo.getParentId() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getDictItemId())) {
            sql += " and  a.dict_item_id='" + qvo.getDictItemId() + "'";
        }
        //分页
        if (StringUtils.isNotBlank(qvo.getPageIf())) {
            pageSql += " limit " + (qvo.getPage() - 1) * qvo.getPageSize() + "," + qvo.getPageSize();
        }
        detailSql += sql + pageSql;
        countSql += sql;
        Long count = jdbcTemplate.queryForObject(countSql, Long.class);
        List<ServicePackageSubItemDO> list = jdbcTemplate.query(detailSql,new BeanPropertyRowMapper<>(ServicePackageSubItemDO.class));
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", count);
        map.put("list", list);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,qvo.getPage(), qvo.getPageSize(), count);
    }
    /**
     * 用实体返回
     */
    public List<SubItemExcelVo> getSubItemVoList(ParamQvo qvo) {
        String detailSql = "SELECT\n" +
                " c.`name`'itemName',a.`name` 'subItemName' ,a.*\n" +
                "FROM\n" +
                " base_service_package_sub_item a\n" +
                " LEFT JOIN base_service_package_item_relational b ON a.id = b.sub_item_id \n" +
                " LEFT JOIN base_service_package_item c ON b.item_id=c.id\n" +
                "WHERE\n" +
                " 1 = 1 ";
        if (StringUtils.isNotBlank(qvo.getId())) {
            detailSql += "AND a.id = '" + qvo.getId() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getLeasedCode())) {
            detailSql += "AND a.leased_code = '" + qvo.getLeasedCode() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getOrgCode())) {
            detailSql += "AND a.org_code = '" + qvo.getOrgCode() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getStatus())) {
            detailSql += "AND a.`status` = '" + qvo.getStatus() + "'";
        }
        if (StringUtils.isNotBlank(qvo.getName())) {
            detailSql += "AND a.`name` like '%" + qvo.getName() + "%'";
        }
        if (StringUtils.isNotBlank(qvo.getParentId())) {
            detailSql += "AND a.`item_id` = '" + qvo.getParentId() + "'";
        }
        List<SubItemExcelVo> list = jdbcTemplate.query(detailSql, new BeanPropertyRowMapper<>(SubItemExcelVo.class));
        return list;
    }
    public JSONObject createSubItem(ServicePackageSubItemDO subItemDO) {
        subItemDO.setCreateTime(new Date());
        ServicePackageSubItemDO entity = subItemDao.save(subItemDO);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data", entity);
        jsonObject.put("msg", "操作成功");
        return jsonObject;
    }
    public ServicePackageSubItemDO changeState(ParamQvo qvo) throws Exception {
        ServicePackageSubItemDO entity = subItemDao.findOne(qvo.getId());
        if (entity != null) {
            entity.setStatus(qvo.getStatus());
            ServicePackageSubItemDO save = subItemDao.save(entity);
            return save;
        } else {
            throw new Exception("没有找到数据");
        }
    }
    public void deleteById(String ids) {
        String collect = Arrays.stream(ids.split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",", "(", ")"));
        String delSql = "DELETE FROM base_service_package_sub_item WHERE id IN ";
        delSql += collect;
        jdbcTemplate.execute(delSql);
    }
    public void importSubItemExcel(List<SubItemExcelVo> list) {
        //查询出所有租户和机构
        String sql01 = " SELECT id,`name` FROM base_saas WHERE `status`='1' ";
        String sql02 = " SELECT id,`code`,`name` FROM\tbase_org WHERE del='1' ";
        String sql03 = " SELECT id,name FROM `base`.`wlyy_rehabilitation_service_item`  ";
        List<Map<String, Object>> leasedList = jdbcTemplate.queryForList(sql01);
        List<Map<String, Object>> orgList = jdbcTemplate.queryForList(sql02);
        List<Map<String, Object>> itemList = jdbcTemplate.queryForList(sql03);
        ArrayList<ServicePackageSubItemDO> resultList = new ArrayList<>();
        for (SubItemExcelVo vo : list) {
            ServicePackageSubItemDO entity = new ServicePackageSubItemDO();
            entity.setCreateTime(new Date());
            entity.setName(vo.getItemName());
            entity.setIntroduce(vo.getIntroduce());
            entity.setSort(vo.getSort());
            if (StringUtils.isNotBlank(vo.getStatus())) {
                if (vo.getStatus().equals("生效")) {
                    entity.setStatus("1");
                } else {
                    entity.setStatus("0");
                }
            }
            for (Map<String, Object> map : leasedList) {
                if (vo.getLeasedName().equals(map.get("name"))) {
                    entity.setLeasedCode(map.get("id").toString());
                    entity.setLeasedName(map.get("name").toString());
                    break;
                }
            }
            for (Map<String, Object> map : orgList) {
                if (vo.getOrgName().equals(map.get("name"))) {
                    entity.setOrgCode(map.get("id").toString());
                    entity.setOrgName(map.get("name").toString());
                    break;
                }
            }
            for (Map<String, Object> map : itemList) {
                if (vo.getItemName().equals(map.get("name"))) {
                    entity.setDictItemId(map.get("id").toString());
                    break;
                }
            }
            resultList.add(entity);
            System.out.println(JSON.toJSONString(entity));
        }
        subItemDao.save(resultList);
    }
}

+ 29 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/vo/excel/SubItemExcelVo.java

@ -0,0 +1,29 @@
package com.yihu.jw.base.vo.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
 * @author suqinyi
 * @Date 2023/9/26
 */
@Data
public class SubItemExcelVo {
    @ExcelProperty("归属项目名称")
    private String itemName;
    @ExcelProperty("项目名称")
    private String subItemName;
    @ExcelProperty("租户")
    private String leasedName;
    @ExcelProperty("机构")
    private String orgName;
    @ExcelProperty("状态")
    private String status;
    @ExcelProperty("排序")
    private String sort;
    @ExcelProperty("说明")
    private String introduce;
}