PatientCardsController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. package com.yihu.ehr.patient.controller;
  2. import com.yihu.ehr.adapter.utils.ExtendController;
  3. import com.yihu.ehr.agModel.patient.MedicalCardsModel;
  4. import com.yihu.ehr.agModel.patient.UserCardsModel;
  5. import com.yihu.ehr.constants.ApiVersion;
  6. import com.yihu.ehr.constants.ServiceApi;
  7. import com.yihu.ehr.model.common.ListResult;
  8. import com.yihu.ehr.model.common.ObjectResult;
  9. import com.yihu.ehr.model.common.Result;
  10. import com.yihu.ehr.model.dict.MConventionalDict;
  11. import com.yihu.ehr.model.dict.MDictionaryEntry;
  12. import com.yihu.ehr.entity.patient.MedicalCards;
  13. import com.yihu.ehr.entity.patient.UserCards;
  14. import com.yihu.ehr.model.user.MUser;
  15. import com.yihu.ehr.patient.service.PatientCardsClient;
  16. import com.yihu.ehr.systemdict.service.ConventionalDictEntryClient;
  17. import com.yihu.ehr.systemdict.service.SystemDictClient;
  18. import com.yihu.ehr.users.service.UserClient;
  19. import com.yihu.ehr.util.datetime.DateTimeUtil;
  20. import com.yihu.ehr.util.rest.Envelop;
  21. import io.swagger.annotations.Api;
  22. import io.swagger.annotations.ApiOperation;
  23. import io.swagger.annotations.ApiParam;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.http.ResponseEntity;
  26. import org.springframework.util.StringUtils;
  27. import org.springframework.web.bind.annotation.*;
  28. import java.util.ArrayList;
  29. import java.util.HashMap;
  30. import java.util.List;
  31. import java.util.Map;
  32. /**
  33. * Created by AndyCai on 2016/1/21.
  34. */
  35. @RequestMapping(ApiVersion.Version1_0 + "/admin")
  36. @RestController
  37. @Api(value = "card", description = "就诊卡管理及卡认领接口", tags = {"人口管理-就诊卡管理及卡认领接口"})
  38. public class PatientCardsController extends ExtendController<UserCards> {
  39. @Autowired
  40. PatientCardsClient patientCardsClient;
  41. @Autowired
  42. SystemDictClient systemDictClient;
  43. @Autowired
  44. private ConventionalDictEntryClient conventionalDictClient;
  45. @Autowired
  46. UserClient userClient;
  47. @RequestMapping(value = ServiceApi.Patients.GetUserCards, method = RequestMethod.GET)
  48. @ApiOperation(value = "获取用户关联卡列表", notes = "根据查询条件获取用户关联卡列表在前端表格展示")
  49. public Envelop searchPatientUserCards(
  50. @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,ownerName,cardNo,createDate")
  51. @RequestParam(value = "fields", required = false) String fields,
  52. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  53. @RequestParam(value = "filters", required = false) String filters,
  54. @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
  55. @RequestParam(value = "sorts", required = false) String sorts,
  56. @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
  57. @RequestParam(value = "size", required = false) int size,
  58. @ApiParam(name = "page", value = "页码", defaultValue = "1")
  59. @RequestParam(value = "page", required = false) int page) {
  60. List<UserCardsModel> userCardsModelList = new ArrayList<>();
  61. ResponseEntity<List<UserCards>> responseEntity = patientCardsClient.getUserCardList(fields, filters, sorts, size, page);
  62. List<UserCards> userCardss = responseEntity.getBody();
  63. for (UserCards userCard : userCardss) {
  64. UserCardsModel userCardsModel = convertToModel(userCard, UserCardsModel.class);
  65. userCardsModel.setCreateDate(userCard.getCreateDate() == null?"": DateTimeUtil.simpleDateTimeFormat(userCard.getCreateDate()).substring(0, 10) );
  66. userCardsModel.setReleaseDate(userCard.getReleaseDate() == null?"": DateTimeUtil.simpleDateTimeFormat(userCard.getReleaseDate()).substring(0,10) );
  67. userCardsModel.setValidityDateBegin(userCard.getValidityDateBegin() == null ? "" : DateTimeUtil.simpleDateTimeFormat(userCard.getValidityDateBegin()).substring(0, 10) );
  68. userCardsModel.setValidityDateEnd(userCard.getValidityDateEnd() == null ? "" : DateTimeUtil.simpleDateTimeFormat(userCard.getValidityDateEnd()).substring(0, 10) );
  69. MConventionalDict dict = conventionalDictClient.getMedicalCardTypeList(String.valueOf(userCard.getCardType()));
  70. userCardsModel.setCardTypeName(dict == null ? "" : dict.getValue());
  71. userCardsModelList.add(userCardsModel);
  72. }
  73. Envelop envelop =new Envelop();
  74. Integer totalCount = getTotalCount(responseEntity);
  75. if(totalCount > 0){
  76. envelop = getResult(userCardsModelList, totalCount, page, size);
  77. }
  78. return envelop;
  79. }
  80. @RequestMapping(value = ServiceApi.Patients.CardList,method = RequestMethod.GET)
  81. @ApiOperation(value = "获取个人卡列表")
  82. public Envelop cardList(
  83. @ApiParam(name = "userId", value = "用户ID", defaultValue = "")
  84. @RequestParam(value = "userId",required = false) String userId,
  85. @ApiParam(name = "cardType", value = "卡类别", defaultValue = "")
  86. @RequestParam(value = "cardType",required = false) String cardType,
  87. @ApiParam(name = "page", value = "当前页(从0开始)", defaultValue = "")
  88. @RequestParam(value = "page",required = false) Integer page,
  89. @ApiParam(name = "rows", value = "行数", defaultValue = "")
  90. @RequestParam(value = "rows",required = false) Integer rows) throws Exception{
  91. ListResult result = patientCardsClient.cardList(userId, cardType, page, rows);
  92. List<Map<String,Object>> list = result.getDetailModelList();
  93. list = convertCardModels(list);
  94. return getResult(list, result.getTotalCount(), result.getCurrPage(), result.getPageSize());
  95. }
  96. @RequestMapping(value = ServiceApi.Patients.CardApply,method = RequestMethod.GET)
  97. @ApiOperation(value = "卡认证详情")
  98. public Envelop getCardApply(
  99. @ApiParam(name = "id", value = "id", defaultValue = "")
  100. @RequestParam(value = "id",required = false) Long id) throws Exception{
  101. ObjectResult objectResult = patientCardsClient.getCardApply(id);
  102. if(objectResult.getData() != null){
  103. Map<String,Object> info = (HashMap)objectResult.getData();
  104. info = convertCardModel(info);
  105. return successObj(info);
  106. }
  107. return null;
  108. }
  109. @RequestMapping(value = ServiceApi.Patients.CardApply,method = RequestMethod.POST)
  110. @ApiOperation(value = "卡认证申请新增/修改")
  111. public Envelop cardApply(
  112. @ApiParam(name = "data", value = "json数据", defaultValue = "")
  113. @RequestParam String data,
  114. @ApiParam(name = "operator", value = "操作者", defaultValue = "")
  115. @RequestParam(value = "operator",required = false) String operator) throws Exception{
  116. ObjectResult objectResult = patientCardsClient.cardApply(data,operator);
  117. if(objectResult.getCode() == 200){
  118. return successObj(objectResult.getData());
  119. }else{
  120. return null;
  121. }
  122. }
  123. @RequestMapping(value = ServiceApi.Patients.CardApply,method = RequestMethod.DELETE)
  124. @ApiOperation(value = "卡认证申请删除")
  125. public Envelop cardApplyDelete(
  126. @ApiParam(name = "id", value = "id", defaultValue = "")
  127. @RequestParam(value = "id",required = false) Long id) throws Exception{
  128. Result result = patientCardsClient.cardApplyDelete(id);
  129. if(result.getCode() == 200){
  130. return successMsg(result.getMessage());
  131. }else{
  132. return failed("档案认领申请删除失败!");
  133. }
  134. }
  135. @RequestMapping(value = ServiceApi.Patients.CardApplyListManager,method = RequestMethod.GET)
  136. @ApiOperation(value = "管理员--卡认证列表")
  137. public Envelop cardApplyListManager(
  138. @ApiParam(name = "status", value = "卡状态 -1审核不通过 0待审核 1审核通过", defaultValue = "0")
  139. @RequestParam(value = "status",required = false) String status,
  140. @ApiParam(name = "cardType", value = "卡类别", defaultValue = "")
  141. @RequestParam(value = "cardType",required = false) String cardType,
  142. @ApiParam(name = "page", value = "当前页(从0开始)", defaultValue = "")
  143. @RequestParam(value = "page",required = false) Integer page,
  144. @ApiParam(name = "rows", value = "行数", defaultValue = "")
  145. @RequestParam(value = "rows",required = false) Integer rows) throws Exception{
  146. ListResult result = patientCardsClient.cardApplyListManager(status, cardType, page, rows);
  147. List<Map<String,Object>> list = result.getDetailModelList();
  148. list = convertCardModels(list);
  149. return getResult(list, result.getTotalCount(), result.getCurrPage(), result.getPageSize());
  150. }
  151. @RequestMapping(value = ServiceApi.Patients.CardVerifyManager,method = RequestMethod.POST)
  152. @ApiOperation(value = "管理员--卡认证审核操作")
  153. public Envelop cardVerifyManager(
  154. @ApiParam(name = "id", value = "id", defaultValue = "")
  155. @RequestParam(value = "id",required = false) Long id,
  156. @ApiParam(name = "status", value = "status", defaultValue = "")
  157. @RequestParam(value = "status",required = false) String status,
  158. @ApiParam(name = "auditor", value = "审核者", defaultValue = "")
  159. @RequestParam(value = "auditor",required = false) String auditor,
  160. @ApiParam(name = "auditReason", value = "审核不通过原因", defaultValue = "")
  161. @RequestParam(value = "auditReason",required = false) String auditReason) throws Exception{
  162. Result result = patientCardsClient.cardVerifyManager(id, status, auditor, auditReason);
  163. if (result.getCode() == 200){
  164. return successMsg(result.getMessage());
  165. }else{
  166. return failed(result.getMessage());
  167. }
  168. }
  169. @RequestMapping(value = ServiceApi.Patients.ArchiveRelationManager,method = RequestMethod.GET)
  170. @ApiOperation(value = "管理员--卡关联档案审核操作")
  171. public Envelop archiveRelationManager(
  172. @ApiParam(name = "cardId", value = "cardId", defaultValue = "")
  173. @RequestParam(value = "cardId",required = false) Long cardId,
  174. @ApiParam(name = "archiveRelationIds", value = "档案关联ID,多条用逗号分隔", defaultValue = "")
  175. @RequestParam(value = "archiveRelationIds", required = false) String archiveRelationIds) throws Exception{
  176. Result result = patientCardsClient.archiveRelationManager(cardId,archiveRelationIds);
  177. if(result.getCode() == 200){
  178. return successMsg(result.getMessage());
  179. }else{
  180. return failed(result.getMessage());
  181. }
  182. }
  183. @RequestMapping(value = ServiceApi.Patients.CardBindManager,method = RequestMethod.POST)
  184. @ApiOperation(value = "管理员--后台绑卡操作")
  185. public Envelop cardBindManager(
  186. @ApiParam(name = "data", value = "json数据", defaultValue = "")
  187. @RequestBody String data,
  188. @ApiParam(name = "operator", value = "操作者", defaultValue = "")
  189. @RequestParam(value = "operator",required = false) String operator) throws Exception{
  190. ObjectResult objectResult = patientCardsClient.cardBindManager(data,operator);
  191. if(objectResult.getCode() == 200){
  192. Map<String,Object> info = (HashMap)objectResult.getData();
  193. info = convertCardModel(info);
  194. return successObj(info);
  195. }else{
  196. return failed(objectResult.getMessage());
  197. }
  198. }
  199. // ------------------------------ 就诊卡基础信息管理 --------------------------------------
  200. @RequestMapping(value = ServiceApi.Patients.GetMCards, method = RequestMethod.GET)
  201. @ApiOperation(value = "获取就诊卡列表信息")
  202. public Envelop getMCards(
  203. @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "")
  204. @RequestParam(value = "fields", required = false) String fields,
  205. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
  206. @RequestParam(value = "filters", required = false) String filters,
  207. @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
  208. @RequestParam(value = "sorts", required = false) String sorts,
  209. @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
  210. @RequestParam(value = "size", required = false) int size,
  211. @ApiParam(name = "page", value = "页码", defaultValue = "1")
  212. @RequestParam(value = "page", required = false) int page) throws Exception {
  213. List<MedicalCardsModel> medicalCardsModelList = new ArrayList<>();
  214. ResponseEntity<List<MedicalCards>> responseEntity = patientCardsClient.getMCards(fields, filters, sorts, size, page);
  215. List<MedicalCards> medicalCardss = responseEntity.getBody();
  216. for (MedicalCards medicalCards : medicalCardss) {
  217. MedicalCardsModel medicalCardsModel = convertToModel(medicalCards, MedicalCardsModel.class);
  218. medicalCardsModel.setCreateDate(medicalCards.getCreateDate() == null?"": DateTimeUtil.simpleDateTimeFormat(medicalCards.getCreateDate()).substring(0, 10) );
  219. medicalCardsModel.setReleaseDate(medicalCards.getReleaseDate() == null?"": DateTimeUtil.simpleDateTimeFormat(medicalCards.getReleaseDate()).substring(0,10) );
  220. medicalCardsModel.setValidityDateBegin(medicalCards.getValidityDateBegin() == null ? "" : DateTimeUtil.simpleDateTimeFormat(medicalCards.getValidityDateBegin()).substring(0, 10) );
  221. medicalCardsModel.setValidityDateEnd(medicalCards.getValidityDateEnd() == null ? "" : DateTimeUtil.simpleDateTimeFormat(medicalCards.getValidityDateEnd()).substring(0, 10) );
  222. MConventionalDict dict = conventionalDictClient.getMedicalCardTypeList(String.valueOf(medicalCards.getCardType()));
  223. medicalCardsModel.setCardTypeName(dict == null ? "" : dict.getValue());
  224. medicalCardsModelList.add(medicalCardsModel);
  225. }
  226. Integer totalCount = getTotalCount(responseEntity);
  227. Envelop envelop = new Envelop();
  228. if(totalCount > 0){
  229. envelop = getResult(medicalCardsModelList, totalCount, page, size);
  230. }
  231. return envelop;
  232. }
  233. @RequestMapping(value = ServiceApi.Patients.GetMCard,method = RequestMethod.GET)
  234. @ApiOperation(value = "就诊卡详情")
  235. public Envelop getMCard(
  236. @ApiParam(name = "id", value = "id", defaultValue = "")
  237. @RequestParam(value = "id",required = false) Long id) throws Exception{
  238. ObjectResult objectResult = patientCardsClient.getMCard(id);
  239. if(objectResult.getData() != null){
  240. Map<String,Object> info = (HashMap)objectResult.getData();
  241. info = convertCardModel(info);
  242. return successObj(info);
  243. }
  244. return null;
  245. }
  246. @RequestMapping(value = ServiceApi.Patients.MCardSave,method = RequestMethod.POST)
  247. @ApiOperation(value = "就诊卡新增/修改")
  248. public Envelop mCardSave(
  249. @ApiParam(name = "data", value = "json数据", defaultValue = "")
  250. @RequestParam(value = "data") String data,
  251. @ApiParam(name = "operator", value = "操作者", defaultValue = "")
  252. @RequestParam(value = "operator",required = false) String operator) throws Exception{
  253. ObjectResult objectResult = patientCardsClient.mCardSave(data,operator);
  254. if(objectResult.getCode() == 200){
  255. return successObj(objectResult.getData());
  256. }else{
  257. return null;
  258. }
  259. }
  260. @RequestMapping(value = ServiceApi.Patients.MCardDel,method = RequestMethod.DELETE)
  261. @ApiOperation(value = "就诊卡删除")
  262. public Envelop mCardDel(
  263. @ApiParam(name = "id", value = "id", defaultValue = "")
  264. @RequestParam(value = "id",required = false) Long id) throws Exception{
  265. Result result = patientCardsClient.mCardDelete(id);
  266. if(result.getCode() == 200){
  267. return successMsg(result.getMessage());
  268. }else{
  269. return failed("就诊卡删除失败!");
  270. }
  271. }
  272. @RequestMapping(value = ServiceApi.Patients.MCardCheckCardNo , method = RequestMethod.PUT)
  273. @ApiOperation(value = "校验卡是否唯一")
  274. public Envelop checkCard(
  275. @ApiParam(name = "cardNo", value = "卡号")
  276. @RequestParam(value = "cardNo", required = true) String cardNo
  277. ){
  278. try {
  279. Envelop envelop = new Envelop();
  280. String errorMsg = "";
  281. if (cardNo == null) {
  282. errorMsg+="卡号不能为空!";
  283. envelop.setErrorMsg(errorMsg);
  284. }
  285. int num = patientCardsClient.getCountByCardNo(cardNo);
  286. if (num > 0) {
  287. envelop.setSuccessFlg(true);
  288. envelop.setErrorMsg("卡号已存在!");
  289. }else{
  290. envelop.setSuccessFlg(false);
  291. }
  292. return envelop;
  293. } catch (Exception ex)
  294. {
  295. ex.printStackTrace();
  296. return failedSystem();
  297. }
  298. }
  299. @RequestMapping(value = ServiceApi.Patients.MCardGetMutiCardNo , method = RequestMethod.PUT)
  300. @ApiOperation(value = "查询导入时重复卡列表")
  301. public Envelop getMutiCard(
  302. @ApiParam(name = "cardNoStr", value = "卡号字符串")
  303. @RequestParam(value = "cardNoStr", required = true) String cardNoStr
  304. ){
  305. try {
  306. List<MedicalCardsModel> medicalCardsModelList = new ArrayList<>();
  307. Envelop envelop = new Envelop();
  308. String errorMsg = "";
  309. if (cardNoStr == null) {
  310. errorMsg+="卡号不能为空!";
  311. envelop.setErrorMsg(errorMsg);
  312. }
  313. List<MedicalCards> medicalCardss = patientCardsClient.getBycardNoStr(cardNoStr);
  314. for (MedicalCards medicalCards : medicalCardss) {
  315. MedicalCardsModel medicalCardsModel = convertToModel(medicalCards, MedicalCardsModel.class);
  316. medicalCardsModelList.add(medicalCardsModel);
  317. }
  318. envelop.setSuccessFlg(true);
  319. envelop.setDetailModelList(medicalCardsModelList);
  320. return envelop;
  321. } catch (Exception ex)
  322. {
  323. ex.printStackTrace();
  324. return failedSystem();
  325. }
  326. }
  327. @RequestMapping(value = ServiceApi.Patients.MCarddataBatch, method = RequestMethod.POST)
  328. @ApiOperation("批量创建就诊卡")
  329. public Envelop createPatientCardsPatch(
  330. @ApiParam(name = "medicalCars", value = "就诊卡JSON", defaultValue = "")
  331. @RequestParam(value = "medicalCars") String medicalCars,
  332. @ApiParam(name = "operator", value = "操作者", defaultValue = "")
  333. @RequestParam(value = "operator",required = false) String operator) throws Exception {
  334. Envelop envelop = new Envelop();
  335. envelop.setSuccessFlg(true);
  336. try{
  337. patientCardsClient.createPatientCardsPatch(medicalCars,operator);
  338. }catch (Exception e){
  339. e.printStackTrace();
  340. envelop.setSuccessFlg(false);
  341. envelop.setErrorMsg("系统出错!");
  342. }
  343. return envelop;
  344. }
  345. private Map<String,Object> convertCardModel(Map<String,Object> userCard){
  346. List<MDictionaryEntry> statusDicts = systemDictClient.getDictEntries("", "dictId=43", "", 10, 1).getBody();
  347. List<MDictionaryEntry> typeDicts = systemDictClient.getDictEntries("", "dictId=66", "", 10, 1).getBody();
  348. if(!StringUtils.isEmpty(userCard.get("auditor"))){
  349. MUser user = userClient.getUser(userCard.get("auditor").toString());
  350. if(user!=null){
  351. userCard.put("auditor",user.getRealName());
  352. } else {
  353. userCard.put("auditor", "");
  354. }
  355. }
  356. Map<String, String> statusMap = new HashMap<>();
  357. for(MDictionaryEntry entry : statusDicts){
  358. statusMap.put(entry.getCode(), entry.getValue());
  359. }
  360. for(MDictionaryEntry entry : typeDicts){
  361. statusMap.put(entry.getCode(), entry.getValue());
  362. }
  363. userCard.put("statusName",statusMap.get(userCard.get("status")));
  364. userCard.put("cardTypeName",statusMap.get(userCard.get("cardType")));
  365. return userCard;
  366. }
  367. private List convertCardModels(List<Map<String,Object>> userCards){
  368. List<MDictionaryEntry> statusDicts = systemDictClient.getDictEntries("", "dictId=43", "", 10, 1).getBody();
  369. Map<String, String> statusMap = new HashMap<>();
  370. for(MDictionaryEntry entry : statusDicts){
  371. statusMap.put(entry.getCode(), entry.getValue());
  372. }
  373. for(Map<String,Object> info : userCards){
  374. info.put("statusName",statusMap.get(info.get("status")));
  375. }
  376. return userCards;
  377. }
  378. @RequestMapping(value = ServiceApi.Patients.FindArchiveRelation,method = RequestMethod.POST)
  379. @ApiOperation(value = "档案关联详情")
  380. public Envelop findArchiveRelation(
  381. @ApiParam(name = "id", value = "档案关联ID", defaultValue = "")
  382. @RequestParam(value = "id",required = false) Long id) throws Exception{
  383. ObjectResult objectResult = patientCardsClient.findArchiveRelation(id);
  384. if(objectResult.getData() != null){
  385. Map<String,Object> info = (HashMap)objectResult.getData();
  386. info = convertCardModel(info);
  387. return successObj(info);
  388. }
  389. return null;
  390. }
  391. @RequestMapping(value = ServiceApi.Patients.UpdateArchiveRelation,method = RequestMethod.POST)
  392. @ApiOperation(value = "档案关联新增/修改")
  393. public Envelop updateArchiveRelation(
  394. @ApiParam(name = "data", value = "json数据", defaultValue = "")
  395. @RequestParam String data){
  396. ObjectResult objectResult = patientCardsClient.updateArchiveRelation(data);
  397. if(objectResult.getCode() == 200){
  398. return successObj(objectResult.getData());
  399. }else{
  400. return null;
  401. }
  402. }
  403. @RequestMapping(value = ServiceApi.Patients.DelArchiveRelation, method = RequestMethod.DELETE)
  404. @ApiOperation(value = "删除档案关联", notes = "根据档案关联id")
  405. public Envelop delArchiveRelation(
  406. @ApiParam(name = "id", value = "档案关联ID", defaultValue = "")
  407. @RequestParam(value = "id") Long id) {
  408. Result result = patientCardsClient.delArchiveRelation(id);
  409. if(result.getCode() == 200){
  410. return successMsg(result.getMessage());
  411. }else{
  412. return failed("档案关联删除失败!");
  413. }
  414. }
  415. }