Przeglądaj źródła

Merge branch 'master' of http://192.168.1.220:10080/esb/esb

hzp 9 lat temu
rodzic
commit
930fab9ec3

+ 20 - 0
Hos-Resource-Rest/pom.xml

@ -165,6 +165,26 @@
            <artifactId>xom</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2</artifactId>
            <version>1.6.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>1.6.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>1.6.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>org.apache.axis2.osgi</artifactId>
            <version>1.6.3</version>
        </dependency>
    </dependencies>

+ 4 - 4
Hos-Resource-Rest/src/main/java/com/yihu/hos/config/Config.java

@ -10,9 +10,9 @@ import java.util.Properties;
 * Created by Administrator on 2016/4/13.
 */
public class Config {
    public static String ip;
    public static String port;
    public static String clazz;
    public static String method;
    public static String url;
    public static String namespace;
    public static String monogoUrl;
    public static String startCollect;
}

+ 32 - 14
Hos-Resource-Rest/src/main/java/com/yihu/hos/gateway/control/rpc/impl/ResourceRpcImpl.java

@ -8,6 +8,8 @@ import com.yihu.hos.config.Config;
import com.yihu.hos.gateway.control.rpc.IResourceRpc;
import com.yihu.hos.gateway.model.rpc.RPCResponseResult;
import com.yihu.hos.gateway.util.Constant;
import com.yihu.hos.gateway.util.RPCUtil;
import com.yihu.hos.resource.util.httpclient.HttpClientUtil;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
@ -25,6 +27,7 @@ import java.util.Map;
 */
public class ResourceRpcImpl implements IResourceRpc {
    private DBHelper dbHelper = new DBHelper();
    private HttpClientUtil httpClientUtil = new HttpClientUtil();
    @Override
    public String transport(String RPCRequestXml) {
@ -43,11 +46,8 @@ public class ResourceRpcImpl implements IResourceRpc {
            String trancode = root.element("TransactionCode").toString();
            if (trancode.equals(Constant.PATIENT_INFORMATION)) {
                String cardNo = root.element("Data").element("CardNo").toString();
                ;
                String cardType = root.element("Data").element("CardType").toString();
                ;
                String patientId = root.element("Data").element("PatientId").toString();
                ;
                //查询病人基本信息
                patientInformation(cardNo, cardType, patientId);
            } else if (trancode.equals(Constant.PUSHREPORT)) {
@ -76,24 +76,32 @@ public class ResourceRpcImpl implements IResourceRpc {
                        "<PatientId>" + patientId + "</PatientId>" +
                        "</Data>" +
                        "</Req>";
        InvokeRequest r = new InvokeRequest(new Url(Config.ip, Integer.valueOf(Config.port)), Config.clazz, Config.method, String.class);
        r.setSyncMode();//设置调用模式为同步模式
        Object s = Rpc.invoke(r);
        Class[] classes = new Class[]{String.class};
        Object[] v = new Object[1];
        v[0] = data;
        Object s = RPCUtil.getRPCData("report.ReportWs.GetReportInfo", classes, v);
        //解析xml
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(s.toString());
        Element root = document.getRootElement();
        if ("10000".equals(root.element("RespCode"))) {
            //xml轉json
            JSONObject obj = new JSONObject();
            obj.put(root.getName(), iterateElement(root));
            String jsonString = obj.toString();
            JSONObject obj = xml2json(root.element("Data"));
            //調用接口存入mongo
            Map<String, Object> params = new HashMap<String, Object>();
            httpClientUtil.doPost(Config.monogoUrl, params, null, null);
            //出發採集上傳
            params = new HashMap<String, Object>();
            httpClientUtil.doPost(Config.startCollect, params, null, null);
        }
    }
    private JSONObject xml2json(Element root) {
        JSONObject obj = new JSONObject();
        obj.put(root.getName(), iterateElement(root));
        return obj;
    }
    //检查检验报告
    private void pushreport(String reportType, String reportId) throws Exception {
        String data =
@ -104,9 +112,10 @@ public class ResourceRpcImpl implements IResourceRpc {
                        "<ReportType>" + reportType + "</ReportType>" +
                        "</Data>" +
                        "</Req>";
        InvokeRequest r = new InvokeRequest(new Url(Config.ip, Integer.valueOf(Config.port)), Config.clazz, Config.method, String.class);
        r.setSyncMode();//设置调用模式为同步模式
        Object s = Rpc.invoke(r);
        Class[] classes = new Class[]{String.class};
        Object[] v = new Object[1];
        v[0] = data;
        Object s = RPCUtil.getRPCData("report.ReportWs.GetReportInfo", classes, v);
        //解析xml
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(s.toString());
@ -121,13 +130,22 @@ public class ResourceRpcImpl implements IResourceRpc {
            if (elements != null && elements.size() > 0) {
                for (Object obj1 : elements) {
                    Element data1XML = (Element) obj1;
                    //調用接口存入mongo
                    Map<String, Object> params = new HashMap<String, Object>();
                    httpClientUtil.doPost(Config.monogoUrl, params, null, null);
                    //出發採集上傳
                    params = new HashMap<String, Object>();
                    httpClientUtil.doPost(Config.startCollect, params, null, null);
                }
            }
            obj.put(root.getName(), iterateElement(root));
            String jsonString = obj.toString();
            //調用接口存入mongo
            Map<String, Object> params = new HashMap<String, Object>();
            httpClientUtil.doPost(Config.monogoUrl, params, null, null);
            //出發採集上傳
            params = new HashMap<String, Object>();
            httpClientUtil.doPost(Config.startCollect, params, null, null);
        }
    }

+ 54 - 0
Hos-Resource-Rest/src/main/java/com/yihu/hos/gateway/util/RPCUtil.java

@ -0,0 +1,54 @@
package com.yihu.hos.gateway.util;
import com.yihu.hos.config.Config;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
import javax.xml.namespace.QName;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Created by Administrator on 2016/4/18.
 */
public class RPCUtil {
    public static String getRPCData(String methos, Class[] classes, Object[] v) {
        String SERVER_URL = Config.url;
        String namespace = Config.namespace;
        String xml = getObjectByAxis2CallClient(SERVER_URL, namespace, methos, v, classes);
        return xml;
    }
    public static String getObjectByAxis2CallClient(String webServiceAddr, String webserviceNamespace, String webServiceMethod,
                                                    Object[] inputValues, Class[] inputValuetype) {
        try {
            //新建RPC服务客户端
            RPCServiceClient serviceClient = new RPCServiceClient();
            Options options = serviceClient.getOptions();
            //设置URL
            EndpointReference targetEPR = new EndpointReference(webServiceAddr);
            options.setTo(targetEPR);
            //设置参数的类型
            //设置namespace和方法名
            QName opAddEntry = new QName(webserviceNamespace, webServiceMethod);
            //数组的第一个值为返回值
            return (String) (serviceClient.invokeBlocking(opAddEntry, inputValues, inputValuetype))[0];
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
    public static void main(String[] args) {
        String SERVER_URL = "http://service.yihu.com:8080/WSGW/services/ServiceGateWay";
        String namespace = "http://com.yihu.wsgw/ServiceGateWay";
        String methos = "yy.yygh.QueryNumbers";
        Class[] classes = new Class[]{String.class};
        Object[] v = new Object[1];
        v[0] = "";
        String xml = getObjectByAxis2CallClient(SERVER_URL, namespace, methos, v, classes);
    }
}

+ 4 - 4
Hos-Resource-Rest/src/main/java/com/yihu/hos/resource/base/App.java

@ -79,10 +79,10 @@ public class App {
        }
    }
    private static void readpop(){
        Config.ip= prop.getProperty("rpc.ip");
        Config.port = prop.getProperty("rpc.port");
        Config.clazz = prop.getProperty("rpc.clazz");
        Config.method = prop.getProperty("rpc.method");
        Config.url= prop.getProperty("rpc.url");
        Config.namespace = prop.getProperty("rpc.namespace");
        Config.monogoUrl = prop.getProperty("http.monogourl");
        Config.startCollect = prop.getProperty("http.startCollect");
    }
    /**
     * spring boot 定时任务

+ 5 - 4
Hos-Resource-Rest/src/main/resources/rpc.properties

@ -1,4 +1,5 @@
rpc.ip=192.168.2.1
rpc.port=4430
rpc.clazz=4430
rpc.method=4430
rpc.url=http://service.yihu.com:8080/WSGW/services/ServiceGateWay
rpc.namespace=http://com.yihu.wsgw/ServiceGateWay
http.monogourl=http://localhost:8080/datapush/datapush
http.startCollect=http://localhost:8080/datapush/datapush

+ 0 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/adapter/AdapterDict.java

@ -7,10 +7,8 @@ import com.yihu.ehr.standard.model.adapter.AdapterDictEntryModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictModel;
import com.yihu.ehr.standard.service.adapter.AdapterDictEntryService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import com.yihu.ehr.standard.service.standard.StdMetadataService;
import net.sf.json.JSONObject;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

+ 4 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/DataCollectDispatcher.java

@ -41,7 +41,10 @@ public class DataCollectDispatcher {
    public Boolean getToken () {
        try {
            this.token = EsbHttp.getToken();
            token = EsbHttp.getToken();
            if (StringUtil.isEmpty(token)) {
                return false;
            }
            return true;
        } catch (Exception e) {
            LogService.getLogger().error("本次任务执行失败,获取token失败!");

+ 5 - 5
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterController.java

@ -7,11 +7,11 @@ import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.model.standard.StdPublisherModel;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeService;
import com.yihu.ehr.standard.service.standard.StandardService;
import com.yihu.ehr.standard.service.standard.StandardVersionService;
import com.yihu.ehr.standard.service.standard.StdPublisherService;
import com.yihu.ehr.system.model.SystemOrganization;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -196,13 +196,13 @@ public class AdapterController extends BaseController {
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StdPublisherModel> stdPublisherModelList = stdPublisherService.getList(condition, order, rows, page - 1);
        List<SystemOrganization> stdPublisherModelList = stdPublisherService.getList(condition, order, rows, page - 1);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        for(StdPublisherModel stdPublisherModel : stdPublisherModelList){
        for(SystemOrganization systemOrganization : stdPublisherModelList){
            DictItem items = new DictItem();
            String id = stdPublisherModel.getCode();
            String name = stdPublisherModel.getName();
            String id = systemOrganization.getCode();
            String name = systemOrganization.getFullName();
            items.setCode(id.toString());
            items.setValue(name);
            detailModelList.add(items);

+ 0 - 92
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/PublisherController.java

@ -1,92 +0,0 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.standard.model.standard.StdPublisherModel;
import com.yihu.ehr.standard.service.standard.StdPublisherService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * Created by LLH on 2016/1/6.
 */
@RestController("PublisherController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "PublisherController", description = "发布者管理", tags = {"发布者"})
public class PublisherController extends BaseController {
    @Resource(name = StdPublisherService.BEAN_ID)
    private StdPublisherService stdPublisherService;
    /**
     * 根据标准ID获取发布机构(get)
     * @param publisherId
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/getForPublisherId")
    @ApiOperation(value = "获取发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "获取发布机构")
    public StdPublisherModel get(
            @ApiParam(name = "publisherId", value = "机构ID")
            @RequestParam(value = "publisherId") Integer publisherId) {
        return stdPublisherService.get(publisherId);
    }
    /**
     * 获取集成标准发布机构(get)
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/getStandardPublisher")
    @ApiOperation(value = "获取发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "获取发布机构")
    public StdPublisherModel get() {
        return stdPublisherService.getStandardPublisher();
    }
    /**
     * 修改发布机构(PUT)
     * @param publisher
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/updatePublisher")
    @ApiOperation(value = "修改发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "修改发布机构")
    public StdPublisherModel updatePublisher(
            @ApiParam(name = "publisher", value = "机构信息")
            @RequestParam(value = "publisher") String publisher) {
        return stdPublisherService.update(publisher);
    }
    /**
     * 新增发布机构(POST)
     * @param publisher
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/addPublisher")
    @ApiOperation(value = "保存发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "保存发布机构")
    public StdPublisherModel addPublisher(
            @ApiParam(name = "publisher", value = "机构信息")
            @RequestParam(value = "publisher") String publisher) {
        return stdPublisherService.add(publisher);
    }
    /**
     * 删除发布机构(DELETE)
     * @param  publisherId
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/deletePublisher")
    @ApiOperation(value = "删除发布机构", produces = "application/json", notes = "删除发布机构")
    public void deletePublisher(
            @ApiParam(name = "publisherId", value = "机构ID")
            @RequestParam(value = "publisherId") Integer publisherId) {
        stdPublisherService.delete(publisherId);
    }
}

+ 0 - 68
Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StdPublisherModel.java

@ -1,68 +0,0 @@
package com.yihu.ehr.standard.model.standard;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
/**
 * 标准基本信息
 *
 * @created Airhead 2015/12/23.
 */
@Entity
@Table(name = "std_publisher")
public class StdPublisherModel implements Serializable {
    public static final String TABLE_NAME = "STD_PUBLISHER";
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "name")
    private String name;
    @Column(name = "code")
    private String code;
    @Column(name = "description")
    private String description;
    public static String getTableName() {
        return TABLE_NAME;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterDictEntryService.java

@ -9,8 +9,8 @@ import com.yihu.ehr.framework.exception.ApiException;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.adapter.AdapterDictModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictEntryModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterDictEntryResultDetailModel;
import com.yihu.ehr.standard.model.standard.StdDictionaryModel;

+ 18 - 25
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardService.java

@ -12,10 +12,12 @@ import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.model.standard.StdPublisherModel;
import com.yihu.ehr.standard.model.standard.resultModel.StandardResultDetailModel;
import com.yihu.ehr.system.dao.intf.IOrganizationDao;
import com.yihu.ehr.system.model.SystemOrganization;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -198,7 +200,7 @@ public class StandardService extends SQLGeneralDAO {
        return list;
    }
    public List<StandardResultDetailModel> getStandardListFormat(List<StdPublisherModel> publisherModelList,
    public List<StandardResultDetailModel> getStandardListFormat(List<SystemOrganization> publisherModelList,
                                                                 List<StandardModel> standardModelList,
                                                                 List<StandardVersionModel> versionModelList,
                                                                 Map<String, String> codeToIdMap,
@ -207,15 +209,15 @@ public class StandardService extends SQLGeneralDAO {
        Map<String, StandardResultDetailModel> resultDetailModelMap = new HashMap<>();
        Map<String, StandardResultDetailModel> resultDetailModelCheckMap = new HashMap<>();
        Map<String, StandardResultDetailModel> resultDetailModelAddMap = new HashMap<>();
        for (StdPublisherModel publisherModel : publisherModelList) {
        for (SystemOrganization publisherModel : publisherModelList) {
            StandardResultDetailModel resultDetailModel = new StandardResultDetailModel();
            String id = "publisher" + publisherModel.getId();
            resultDetailModel.setId(id);
            resultDetailModel.setName(publisherModel.getName());
            resultDetailModel.setName(publisherModel.getFullName());
            resultDetailModel.setType(0);
            resultDetailModel.setCode(publisherModel.getCode());
            codeToIdMap.put(publisherModel.getCode(), id);
            if (StringUtil.isEmpty(name) || publisherModel.getName().contains(name)) {
            if (StringUtil.isEmpty(name) || publisherModel.getFullName().contains(name)) {
                resultDetailModelCheckMap.put(id, resultDetailModel);
                resultDetailModelAddMap.put(id, resultDetailModel);
                resultDetailModelList.add(resultDetailModel);
@ -268,7 +270,7 @@ public class StandardService extends SQLGeneralDAO {
                resultDetailModelList.add(resultDetailModel);
                if (!resultDetailModelAddMap.containsKey(pid)) {
                    resultDetailModelAddMap.put(resultDetailModel.getPid(), resultDetailModelMap.get(resultDetailModel.getPid()));
                    resultDetailModelAddMap.put(resultDetailModelMap.get(resultDetailModel.getPid()).getPid(), resultDetailModelMap.get(resultDetailModelMap.get(resultDetailModel.getPid()).getPid()));
                    resultDetailModelAddMap.put(resultDetailModelMap.get(pid).getPid(), resultDetailModelMap.get(resultDetailModelMap.get(resultDetailModel.getPid()).getPid()));
                    resultDetailModelList.add(resultDetailModelMap.get(resultDetailModel.getPid()));
                    resultDetailModelList.add(resultDetailModelMap.get(resultDetailModelMap.get(resultDetailModel.getPid()).getPid()));
                }
@ -280,7 +282,6 @@ public class StandardService extends SQLGeneralDAO {
    public List<StandardResultDetailModel> getStandardList(String condition) {
        String name = Constants.EMPTY;
        Integer type = null;
        SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
        if (!StringUtil.isEmpty(condition)) {
            ObjectMapper objectMapper = new ObjectMapper();
            try {
@ -295,21 +296,15 @@ public class StandardService extends SQLGeneralDAO {
                e.printStackTrace();
            }
        }
        String publisherCode = Constants.EMPTY;
        String publisherHql = Constants.EMPTY;
        if (type != null) {
            List<Object[]> list = getSysParamList();
            String code = StringUtil.toString(list.get(0)[0]);
            publisherCode = StringUtil.toString(list.get(0)[1]);
            if (type == 0) {
                sqlCreator.equalCondition("code", code);
                publisherHql = "FROM StdPublisherModel where code = :publisherCode";
            } else if (type == 1) {
                sqlCreator.neCondition("code", code);
                publisherHql = "FROM StdPublisherModel where code != :publisherCode";
            }
        }
        List<Object[]> list = getSysParamList();
        String code = StringUtil.toString(list.get(0)[0]);
        SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
        if (type == 0) {
            sqlCreator.equalCondition("code", code);
        } else {
            sqlCreator.neCondition("code", code);
        }
        String sql = sqlCreator.selectData(StandardModel.TABLE_NAME);
        Query sessionQuery = getQuery(sqlCreator, sql);
        List<StandardModel> standardModelList = sessionQuery.list();
@ -321,11 +316,9 @@ public class StandardService extends SQLGeneralDAO {
        if (CollectionUtil.isEmpty(idList)) {
            idList.add(null);
        }
        String publisherHql = "FROM SystemOrganization";
        Query query = getCurrentSession().createQuery(publisherHql);
        query.setParameter("publisherCode", publisherCode);
        List<StdPublisherModel> publisherModelList = query.list();
        List<SystemOrganization> publisherModelList = query.list();
        String versionHql = "FROM StandardVersionModel WHERE standardId IN :idList";
        query = getCurrentSession().createQuery(versionHql);
        query.setParameterList("idList", idList);

+ 14 - 124
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdPublisherService.java

@ -10,7 +10,7 @@ import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StdPublisherModel;
import com.yihu.ehr.system.model.SystemOrganization;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.springframework.stereotype.Service;
@ -28,7 +28,7 @@ public class StdPublisherService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdPublisherService";
    public List<StdPublisherModel> getList(String condition, String order, Integer limit, Integer offset) {
    public List<SystemOrganization> getList(String condition, String order, Integer limit, Integer offset) {
        try{
            Map<String, String> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, String> orderMap = RequestParamTransformer.parseJsonToMap(order);
@ -40,17 +40,16 @@ public class StdPublisherService extends SQLGeneralDAO {
        throw new ApiException(ErrorCode.GetPublisherListFaield);
    }
    private List<StdPublisherModel> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdPublisherModel.class);
    private List<SystemOrganization> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(SystemOrganization.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
        }
        sqlCreator.neCondition("code", "jkzl");
        String sql = sqlCreator.selectData(StdPublisherModel.TABLE_NAME);
        String sql = sqlCreator.selectData("system_organization");
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
@ -59,145 +58,36 @@ public class StdPublisherService extends SQLGeneralDAO {
                sessionQuery.setFirstResult(offset);
            }
        }
        return (List<StdPublisherModel>) sessionQuery.list();
        return (List<SystemOrganization>) sessionQuery.list();
    }
    public StdPublisherModel add(String publisher) {
        Boolean existFlg = true;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StdPublisherModel stdPublisherModel = objectMapper.readValue(publisher, StdPublisherModel.class);
            existFlg = existPublisherValid(stdPublisherModel.getCode(), stdPublisherModel.getName());
            if (!existFlg) {
                saveEntity(stdPublisherModel);
                return stdPublisherModel;
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
        if (existFlg) {
            throw new ApiException(ErrorCode.ExistOrgForCreate);
        } else {
            throw new ApiException(ErrorCode.SavePublisherFailed);
        }
    }
    public void delete(Integer stdPublisherId) {
        Boolean existFlg = false;
    public SystemOrganization get(Integer stdPublisherId) {
        try {
            StdPublisherModel publisherModel = getEntity(StdPublisherModel.class, stdPublisherId);
            existFlg = existStandardValid(publisherModel.getCode());
            if (!existFlg) {
                String hql = "delete from StdPublisherModel where id = :id";
                Query query = getCurrentSession().createQuery(hql);
                query.setInteger("id", publisherModel.getId());
                query.executeUpdate();
                return;
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
        if (existFlg) {
            throw new ApiException(ErrorCode.ExistOrgForStandard);
        } else {
            throw new ApiException(ErrorCode.SavePublisherFailed);
        }
}
    public StdPublisherModel update(String publisher) {
        Boolean existFlg;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StdPublisherModel stdPublisherModel = objectMapper.readValue(publisher, StdPublisherModel.class);
            StdPublisherModel publisherModel = getEntity(StdPublisherModel.class, stdPublisherModel.getId());
            existFlg = existPublisherValid(stdPublisherModel.getId(), stdPublisherModel.getCode(), stdPublisherModel.getName());
            if (!existFlg) {
                String sql = "update std_info set publisher = :publisher,publisher_org_code = :stdPublisherOrgCode" +
                        " where publisher_org_code = :publisherOrgCode";
                SQLQuery sqlQuery = getCurrentSession().createSQLQuery(sql);
                sqlQuery.setParameter("publisher", stdPublisherModel.getName());
                sqlQuery.setParameter("stdPublisherOrgCode", stdPublisherModel.getCode());
                sqlQuery.setParameter("publisherOrgCode", publisherModel.getCode());
                sqlQuery.executeUpdate();
                publisherModel.setCode(stdPublisherModel.getCode());
                publisherModel.setName(stdPublisherModel.getName());
                publisherModel.setDescription(stdPublisherModel.getDescription());
                updateEntity(publisherModel);
                return stdPublisherModel;
            }
        }catch (Exception e) {
            throw new ApiException(ErrorCode.UpdatePublisherFailed);
        }
        if (existFlg) {
            throw new ApiException(ErrorCode.ExistOrgForCreate);
        } else {
            throw new ApiException(ErrorCode.SavePublisherFailed);
        }
    }
    public StdPublisherModel get(Integer stdPublisherId) {
        try {
            SqlCreator sqlCreator = new SqlCreator(StdPublisherModel.class);
            SqlCreator sqlCreator = new SqlCreator(SystemOrganization.class);
            sqlCreator.equalCondition("id", stdPublisherId);
            String sql = sqlCreator.selectData(StdPublisherModel.TABLE_NAME);
            String sql = sqlCreator.selectData("system_organization");
            Query query = getQuery(sqlCreator, sql);
            return (StdPublisherModel) query.uniqueResult();
            return (SystemOrganization) query.uniqueResult();
        } catch (Exception e) {
            throw new ApiException(ErrorCode.GetPublisherFailed);
        }
    }
    public StdPublisherModel getStandardPublisher() {
    public SystemOrganization getStandardPublisher() {
        try {
            SqlCreator sqlCreator = new SqlCreator(StdPublisherModel.class);
            SqlCreator sqlCreator = new SqlCreator(SystemOrganization.class);
            String paramSql = "select s.org_id from system_param s where s.param_key = '"+ Constants.STANDARD+"'";
            Query paramQuery = getCurrentSession().createSQLQuery(paramSql);
            List list = paramQuery.list();
            String publisherCode = StringUtil.toString(list.get(0));
            sqlCreator.equalCondition("code", publisherCode);
            String sql = sqlCreator.selectData(StdPublisherModel.TABLE_NAME);
            String sql = sqlCreator.selectData("system_organization");
            Query query = getQuery(sqlCreator, sql);
            return (StdPublisherModel) query.uniqueResult();
            return (SystemOrganization) query.uniqueResult();
        } catch (Exception e) {
            throw new ApiException(ErrorCode.GetPublisherFailed);
        }
    }
    public boolean existStandardValid(String code) {
        String hql="FROM StandardModel WHERE publisherOrgCode = :code";
        Query query = getCurrentSession().createQuery(hql);
        query.setParameter("code", code);
        List<StandardModel> standardModelList = query.list();
        if (standardModelList.size() > 0) {
           return true;
        }
        return false;
    }
    public boolean existPublisherValid(Integer publiserId, String code, String name) {
        String hql="FROM StdPublisherModel WHERE code = :code or name = :name";
        Query query = getCurrentSession().createQuery(hql);
        query.setParameter("code", code);
        query.setParameter("name", name);
        List<StdPublisherModel> list = query.list();
        if (!CollectionUtil.isEmpty(list)) {
            if (list.get(0).getId() != publiserId) {
                return true;
            }
        }
        return false;
    }
    public boolean existPublisherValid(String code, String name) {
        String hql="FROM StdPublisherModel WHERE code = :code or name = :name";
        Query query = getCurrentSession().createQuery(hql);
        query.setParameter("code", code);
        query.setParameter("name", name);
        List<StdPublisherModel> list = query.list();
        if (!CollectionUtil.isEmpty(list)) {
            return true;
        }
        return false;
    }
}