package com.fzzy.otherview.whhpjl.pr; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.fzzy.api.Constant; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.SyncProtocol; import com.fzzy.api.dto.ResponseDto; import com.fzzy.api.entity.ApiConfs; import com.fzzy.api.entity.ApiInfoData; import com.fzzy.api.service.ApiCommonService; import com.fzzy.api.service.ApiPushManager; import com.fzzy.api.service.ApiRemoteService; import com.fzzy.api.view.repository.ApiInfoDataRep; import com.fzzy.otherview.whhpjl.WhjlConstant; import com.fzzy.otherview.whhpjl.dto.ShareApi2003Xs; import com.fzzy.otherview.whhpjl.dto.ShareApi2011Xm; import com.fzzy.otherview.whhpjl.dto.WhjlShareApi2003; import com.fzzy.otherview.whhpjl.dto.WhjlShareApi2011; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 共享接口-计量单位 * * @author czt */ @Component public class WhjlShareApi2011PR { @Autowired private ApiCommonService apiCommonService; @Autowired private ApiPushManager apiPushManager; @Autowired private ApiInfoDataRep apiInfoDataRep; /** * 获取列表信息 * whjlShareApi2011PR#listData * * @return */ @DataProvider public List listData() { List result = apiInfoDataRep.getDataByInteId(WhjlConstant.API_CODE_2011); if (null == result || result.isEmpty()) { return null; } List list = new ArrayList<>(); WhjlShareApi2011 whjlShareApiData; for (ApiInfoData infoData : result) { whjlShareApiData = JSONObject.parseObject(infoData.getData(), WhjlShareApi2011.class); whjlShareApiData.setKqdm(infoData.getKqdm()); whjlShareApiData.setCzbz(infoData.getCzbz()); whjlShareApiData.setUpdateTime(infoData.getUpdateTime()); list.add(whjlShareApiData); } return list; } /** * 获取质检标准适用的品种 * whjlShareApi2011PR#listItemShareApi2011Xm * * @return */ @DataProvider public List listItemShareApi2011Xm(String code) { return JSON.parseArray(code, ShareApi2011Xm.class); } /** * 更新或修改 * whjlShareApi2011PR#saveData * * @param data * @return */ @DataResolver public void saveData(WhjlShareApi2011 data) { ApiInfoData infoData = new ApiInfoData(); infoData.setId(data.getZjxmbh()); infoData.setKqdm(data.getKqdm()); infoData.setInteType(WhjlConstant.API_CATEGORY_20); infoData.setInteId(WhjlConstant.API_CODE_2011); infoData.setUpdateTime(new Date()); infoData.setDataId(data.getZjxmbh()); infoData.setData(JSON.toJSONString(data)); infoData.setCzbz(data.getCzbz()); infoData.setRemarks("备注信息"); apiInfoDataRep.save(infoData); } /** * 删除 * whjlShareApi2011PR#delData * * @param data * @return */ @Expose public String delData(WhjlShareApi2011 data) { apiInfoDataRep.deleteById(data.getZjxmbh()); return null; } /** * 更新数据 * whjlShareApi2011PR#pullData * * @param items * @return */ @Expose public String pullData(List items) { //获取配置信息 List apiConfs = apiCommonService.listCacheConf(); if (null == apiConfs || apiConfs.isEmpty()) { return "系统没有获取到库区配置信息,执行失败"; } ApiRemoteService apiService; ApiParam param; ResponseDto responseDto; ApiInfoData infoData; String result = ""; List list; for (ApiConfs apiConf : apiConfs) { if(!apiConf.getSyncProtocol().equals(SyncProtocol.FZZY_V40_WHJL.getCode())){ continue; } apiService = apiPushManager.getApiRemoteService(apiConf.getPushProtocol()); if (null == apiService) { continue; } //封装参数 param = new ApiParam(apiConf, WhjlConstant.API_CATEGORY_20, WhjlConstant.API_CODE_2011); responseDto = apiService.pullData(param, apiConf); if (responseDto.getSuccess() == 0) { list = JSONObject.parseArray(responseDto.getData(), WhjlShareApi2011.class); if(null != list && list.size() > 0){ for (WhjlShareApi2011 shareData : list) { shareData.setCzbz(Constant.CZBZ_U); shareData.setZjymqxList(JSON.toJSONString(shareData.getZjymqx())); shareData.setCzbz(Constant.CZBZ_U); infoData = new ApiInfoData(); infoData.setId(shareData.getZjxmbh()); infoData.setKqdm(apiConf.getKqdm()); infoData.setInteType(WhjlConstant.API_CATEGORY_20); infoData.setInteId(WhjlConstant.API_CODE_2011); infoData.setUpdateTime(new Date()); infoData.setDataId(shareData.getZjxmbh()); infoData.setData(JSON.toJSONString(shareData)); infoData.setCzbz(Constant.CZBZ_U); apiInfoDataRep.save(infoData); } } } result += responseDto.toString(); return result; } return null; } }