|
@@ -0,0 +1,357 @@
|
|
|
|
+package fi.fa.webService;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+import com.alibaba.druid.util.StringUtils;
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import kd.bos.coderule.api.CodeRuleInfo;
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
|
+import kd.bos.openapi.common.custom.annotation.ApiController;
|
|
|
|
+import kd.bos.openapi.common.custom.annotation.ApiMapping;
|
|
|
|
+import kd.bos.openapi.common.custom.annotation.ApiParam;
|
|
|
|
+import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
|
|
|
|
+import kd.bos.openapi.common.result.CustomApiResult;
|
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
+import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
|
|
|
|
+import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
+import java.io.Serializable;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 接收e管家资产调拨单接口
|
|
|
|
+ */
|
|
|
|
+@ApiController(value = "midDispatch", desc = "自定义API 中间表新增")
|
|
|
|
+@ApiMapping(value = "saveMidDispatchApi")
|
|
|
|
+public class DispatchMidController implements Serializable {
|
|
|
|
+ /**
|
|
|
|
+ * @description 资产调拨单中间表新增接口,资产调拨单下推接口
|
|
|
|
+ * @param info
|
|
|
|
+ * @return CustomApiResult
|
|
|
|
+ */
|
|
|
|
+ @ApiPostMapping(value = "/add", desc = "新增资产调拨单中间表")
|
|
|
|
+ public CustomApiResult<Object> AddMidDispatch (@ApiParam(value = "e管家资产调拨单") JSONObject info) {
|
|
|
|
+ StringBuilder resultString = new StringBuilder();
|
|
|
|
+ JSONArray data = info.getJSONArray("data");
|
|
|
|
+ //循环传入的数据
|
|
|
|
+ for (int i = 0; i < data.size(); i++) {
|
|
|
|
+ try{
|
|
|
|
+ JSONObject eobject = data.getJSONObject(i);
|
|
|
|
+ HashMap<String , Long> map = new HashMap<>();
|
|
|
|
+ //第一步:保存进中间表
|
|
|
|
+ SaveMidDispatch(eobject);
|
|
|
|
+ //组织,人员信息转换
|
|
|
|
+ String errorChange = Control(eobject, map);
|
|
|
|
+ //第二步:校验传入信息是否可以下推调拨单
|
|
|
|
+ String errorCode = Check(eobject, map);
|
|
|
|
+ //第三步:下推生成调拨单
|
|
|
|
+ if (StringUtils.isEmpty(errorCode) && StringUtils.isEmpty(errorChange)) {
|
|
|
|
+ //下推生成资产调拨单
|
|
|
|
+ Push(eobject, map);
|
|
|
|
+ //生单后反写中间表,防止反复生单
|
|
|
|
+ OncePush(eobject.getString("billno"));
|
|
|
|
+ }
|
|
|
|
+ // 错误拼接
|
|
|
|
+ appendErrorMessages(resultString, errorChange, errorCode);
|
|
|
|
+ } catch (Exception e){
|
|
|
|
+ resultString.append("保存过程中发生异常:").append(e.getMessage()).append("\n");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return resultString.length() == 0
|
|
|
|
+ ? CustomApiResult.success("推送调拨单成功!")
|
|
|
|
+ : CustomApiResult.fail("404", resultString.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 保存中间表
|
|
|
|
+ * @param jsonObject
|
|
|
|
+ */
|
|
|
|
+ private void SaveMidDispatch(JSONObject jsonObject) {
|
|
|
|
+ DynamicObject midDispatch;
|
|
|
|
+ //查询中间表,如果有则修改,没有则新增
|
|
|
|
+ QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
|
|
|
|
+ DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_dispatch_mid","id",new QFilter[] {filter});
|
|
|
|
+ if (mid.length > 0) {
|
|
|
|
+ midDispatch = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
|
|
|
|
+ }else {
|
|
|
|
+ midDispatch = BusinessDataServiceHelper.newDynamicObject("nckd_e_dispatch_mid");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ midDispatch.set("number", jsonObject.getString("billno"));//来源单据号
|
|
|
|
+ midDispatch.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
|
|
|
|
+ midDispatch.set("nckd_user_in", jsonObject.getString("recieveUser"));//调入负责人
|
|
|
|
+ midDispatch.set("nckd_date_out", jsonObject.getDate("sendDate"));//调出日期
|
|
|
|
+ midDispatch.set("nckd_org_out", jsonObject.getString("outOrgId"));//调出组织
|
|
|
|
+ midDispatch.set("nckd_org_in", jsonObject.getString("orgId"));//调入组织
|
|
|
|
+ midDispatch.set("nckd_reason", jsonObject.getString("reason"));//调拨原因
|
|
|
|
+ midDispatch.set("nckd_changemode", "调出");//减少方式默认调出
|
|
|
|
+ midDispatch.set("nckd_dispatch_type", jsonObject.getString("dispatchType"));//调拨类型 枚举 组织间,组织内
|
|
|
|
+ midDispatch.set("nckd_dept_in", jsonObject.getString("inDeptId"));//调入部门
|
|
|
|
+ midDispatch.set("nckd_used_user", jsonObject.getString("user"));//调入使用人
|
|
|
|
+ midDispatch.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
|
|
|
|
+ String cardNumber = "";
|
|
|
|
+ JSONArray assetArray = jsonObject.getJSONArray("asset");
|
|
|
|
+ for (int j = 0; j < assetArray.size(); j++) {
|
|
|
|
+ //判断资产的组织是否相同
|
|
|
|
+ JSONObject asset = assetArray.getJSONObject(j);
|
|
|
|
+ String number = asset.getString("number");
|
|
|
|
+ String orgId = asset.getString("orgId");
|
|
|
|
+ cardNumber = number+ ":" + orgId + ",";
|
|
|
|
+ }
|
|
|
|
+ midDispatch.set("nckd_card_number_tag", cardNumber);
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[]{midDispatch});
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description e管家推送数据校验
|
|
|
|
+ * @param jsonObject,map
|
|
|
|
+ * @return String
|
|
|
|
+ */
|
|
|
|
+ private String Check(JSONObject jsonObject, HashMap<String , Long> map) {
|
|
|
|
+ String billno = jsonObject.getString("billno");//源单编号
|
|
|
|
+ String user = jsonObject.getString("user");//使用人
|
|
|
|
+ List<String> numberList = new ArrayList<>();
|
|
|
|
+ // 校验该单据是否已经下推生成调拨单
|
|
|
|
+ if (isAlreadyDispatched(billno)) {
|
|
|
|
+ return "单据" + billno + "已经生成调拨单,请勿重复推送!";
|
|
|
|
+ }
|
|
|
|
+ // 获取资产编号数组
|
|
|
|
+ JSONArray assetArray = jsonObject.getJSONArray("asset");
|
|
|
|
+ if (assetArray.isEmpty()) {
|
|
|
|
+ return "单据" + billno + "未绑定资产信息,生成调拨单失败";
|
|
|
|
+ }
|
|
|
|
+ Boolean isSame = true;
|
|
|
|
+ //校验资产信息的组织是否相同,不相同则不进行处理
|
|
|
|
+ for (int j = 0; j < assetArray.size(); j++) {
|
|
|
|
+ //判断资产的组织是否相同
|
|
|
|
+ JSONObject asset = assetArray.getJSONObject(j);
|
|
|
|
+ if (!asset.getString("orgId").equals(assetArray.getJSONObject(0).getString("orgId"))) {
|
|
|
|
+ isSame = false;
|
|
|
|
+ }
|
|
|
|
+ numberList.add(asset.getString("number"));
|
|
|
|
+ }
|
|
|
|
+ //组织相同则处理
|
|
|
|
+ if (isSame) {
|
|
|
|
+ String e_orgId = assetArray.getJSONObject(0).getString("orgId");
|
|
|
|
+ //查询e管家实物卡片清单
|
|
|
|
+ QFilter filter = new QFilter("number", QCP.in,numberList);
|
|
|
|
+ DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
|
|
|
|
+ if (dynamicObjects.length == 0 || dynamicObjects.length != numberList.size()) {
|
|
|
|
+ return "单据"+billno+"绑定的资产有未同步至星瀚的数据,生成调拨单失败";
|
|
|
|
+ }else {
|
|
|
|
+ DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(dynamicObjects[0].getPkValue(), dynamicObjects[0].getDynamicObjectType().getName());
|
|
|
|
+ //获取星瀚资产编码,查询关联的e管家实物卡片清单数量
|
|
|
|
+ String code = cardInfo.getString("nckd_card_real_code");
|
|
|
|
+ if (StringUtils.isEmpty(code)) {
|
|
|
|
+ //星瀚未生成实物卡片,更新实物卡片清单数据-查询组织对照表
|
|
|
|
+ Long orgId = getOrg(e_orgId);
|
|
|
|
+ if (ObjectUtils.isNotEmpty(orgId)) {
|
|
|
|
+ //更新归属机构,归属部门,使用人
|
|
|
|
+ for (int a = 0; a < dynamicObjects.length ; a++) {
|
|
|
|
+ DynamicObject ecardInfoList = BusinessDataServiceHelper.loadSingle(dynamicObjects[a].getPkValue(), dynamicObjects[a].getDynamicObjectType().getName());
|
|
|
|
+ ecardInfoList.set("nckd_orgfield",orgId);
|
|
|
|
+ ecardInfoList.set("nckd_dept",map.get("inDeptId"));
|
|
|
|
+ ecardInfoList.set("nckd_use_name",user);
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[]{ecardInfoList});
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ return "资产信息的组织在组织对照表中未查询到数据,生成调拨单失败";
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ //查询e管家实物卡片清单
|
|
|
|
+ QFilter qfilter = new QFilter("nckd_card_real_code", QCP.equals,code);
|
|
|
|
+ DynamicObject[] cardObject = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {qfilter});
|
|
|
|
+ //e管家推送的清单和星瀚系统保存的清单数量不一致,返回错误信息并且不能生成调拨单
|
|
|
|
+ if (cardObject.length > 0 && assetArray.size() != cardObject.length) {
|
|
|
|
+ return "单据"+billno+"绑定的资产信息与星瀚实物卡片数量不一致,生成调拨单失败";
|
|
|
|
+ }
|
|
|
|
+ jsonObject.put("nckd_card_real_code", code);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ //资产信息组织不同
|
|
|
|
+ return "单据"+billno+"绑定的资产信息组织不相同,生成调拨单失败";
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 下推生成资产调拨单
|
|
|
|
+ * @param jsonObject,map
|
|
|
|
+ */
|
|
|
|
+ private void Push(JSONObject jsonObject, HashMap<String , Long> map) {
|
|
|
|
+ String dispatchType = jsonObject.getString("dispatchType");
|
|
|
|
+ //组织间,生成资产调出单
|
|
|
|
+ if ("0".equals(dispatchType)) {
|
|
|
|
+ DynamicObject dispatch = BusinessDataServiceHelper.newDynamicObject("fa_dispatch");
|
|
|
|
+ //获取配置编码规则生成的编码
|
|
|
|
+ CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dispatch.getDataEntityType().getName(), dispatch, null);
|
|
|
|
+ String sysCode = CodeRuleServiceHelper.getNumber(codeRule, dispatch);
|
|
|
|
+ String nckd_card_real_code = jsonObject.getString("nckd_card_real_code");
|
|
|
|
+ nckd_card_real_code = "A00100101900240800008";
|
|
|
|
+ //拼接单据编号
|
|
|
|
+ String firstTenChars = nckd_card_real_code.substring(0, 10);
|
|
|
|
+ String billno = firstTenChars + sysCode;
|
|
|
|
+ //单据头
|
|
|
|
+ dispatch.set("billno", billno);//单据编号
|
|
|
|
+ dispatch.set("outuser", map.get("sendUser"));//调出申请人
|
|
|
|
+ dispatch.set("inuser", map.get("recieveUser"));//调入负责人
|
|
|
|
+ dispatch.set("dispatchdate", jsonObject.getDate("sendDate"));//调出日期
|
|
|
|
+ dispatch.set("assetunit", map.get("outOrgId"));//调出组织
|
|
|
|
+ dispatch.set("inassetunit", map.get("orgId"));//调入组织
|
|
|
|
+ dispatch.set("org", map.get("outOrgId"));//调出核算组织
|
|
|
|
+ dispatch.set("inorg", map.get("orgId"));//调入核算组织
|
|
|
|
+ dispatch.set("reason", jsonObject.getString("reason"));//调出原因
|
|
|
|
+ dispatch.set("dispatchtype", "A");//调拨类型 A="平价调拨",B="非平价调拨"
|
|
|
|
+ dispatch.set("changemode", 14);//减少方式默认"调出"
|
|
|
|
+ dispatch.set("currency", 1);//币种
|
|
|
|
+ dispatch.set("currencyrate", 1);//结算汇率
|
|
|
|
+ //制单信息
|
|
|
|
+ dispatch.set("creator", map.get("sendUser"));//创建人
|
|
|
|
+ dispatch.set("createtime", jsonObject.getDate("sendDate"));//创建时间
|
|
|
|
+ dispatch.set("modifier", map.get("recieveUser"));//修改人
|
|
|
|
+ dispatch.set("modifytime", jsonObject.getDate("sendDate"));//修改时间
|
|
|
|
+ dispatch.set("auditor", map.get("recieveUser"));//审核人
|
|
|
|
+ dispatch.set("auditdate", jsonObject.getDate("sendDate"));//审核时间
|
|
|
|
+ dispatch.set("billstatus", "C");//默认审核
|
|
|
|
+ dispatch.set("appliant", map.get("sendUser"));//调拨申请人
|
|
|
|
+ //单据体
|
|
|
|
+ //根据资产编号查询实物卡片
|
|
|
|
+ QFilter cardFilter = new QFilter("billno", QCP.equals,nckd_card_real_code);
|
|
|
|
+ DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {cardFilter});
|
|
|
|
+ for (int c = 0; c < card.length; c++) {
|
|
|
|
+ DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(card[c].getPkValue(), card[c].getDynamicObjectType().getName());
|
|
|
|
+ //创建调出单分录
|
|
|
|
+ DynamicObjectCollection entryEntity = dispatch.getDynamicObjectCollection("dispatchentry");
|
|
|
|
+ DynamicObject entry1 = entryEntity.addNew();
|
|
|
|
+ entry1.set("realcard", cardInfo);//资产编码
|
|
|
|
+ entry1.set("measurement", cardInfo.getDynamicObject("unit").getLong("id"));//计量单位
|
|
|
|
+ entry1.set("dispatchqty", cardInfo.getInt("assetamount"));//数量
|
|
|
|
+ entry1.set("inusedept", map.get("inDeptId"));//调入使用部门
|
|
|
|
+ }
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[]{dispatch});
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //组织内,生成资产变更单
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 查询组织对照表获取组织id
|
|
|
|
+ * @param eOrgId
|
|
|
|
+ * @return Long
|
|
|
|
+ */
|
|
|
|
+ private Long getOrg(String eOrgId) {
|
|
|
|
+ QFilter orgFilter = new QFilter("nckd_e_org", QCP.equals,eOrgId);
|
|
|
|
+ DynamicObject[] orgControl = BusinessDataServiceHelper.load("nckd_base_org_ext","id",new QFilter[] {orgFilter});
|
|
|
|
+ if (orgControl.length > 0) {
|
|
|
|
+ DynamicObject orgControlInfo = BusinessDataServiceHelper.loadSingle(orgControl[0].getPkValue(), orgControl[0].getDynamicObjectType().getName());
|
|
|
|
+ Long orgId = Long.valueOf(orgControlInfo.getString("nckd_org_number"));
|
|
|
|
+ return orgId;
|
|
|
|
+ }//组织对照表查询不到,查询组织表
|
|
|
|
+ else {
|
|
|
|
+ QFilter filter = new QFilter("id", QCP.equals,Long.valueOf(eOrgId));
|
|
|
|
+ DynamicObject[] org = BusinessDataServiceHelper.load("bos_org","id",new QFilter[] {filter});
|
|
|
|
+ if (org.length > 0) {
|
|
|
|
+ DynamicObject orgInfo = BusinessDataServiceHelper.loadSingle(org[0].getPkValue(), org[0].getDynamicObjectType().getName());
|
|
|
|
+ return orgInfo.getLong("id");
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 查询用户表获取用户
|
|
|
|
+ * @param eUser
|
|
|
|
+ * @return Long
|
|
|
|
+ */
|
|
|
|
+ private Long getUser(String eUser) {
|
|
|
|
+ QFilter filter = new QFilter("number", QCP.in, eUser);
|
|
|
|
+ DynamicObject[] user = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {filter});
|
|
|
|
+ if (user.length > 0) {
|
|
|
|
+ DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(user[0].getPkValue(), user[0].getDynamicObjectType().getName());
|
|
|
|
+ Long userId = userInfo.getLong("id");
|
|
|
|
+ return userId;
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description e管家数据转换为星瀚数据
|
|
|
|
+ * @param jsonObject,map
|
|
|
|
+ * @return String
|
|
|
|
+ */
|
|
|
|
+ private String Control (JSONObject jsonObject, HashMap<String , Long> map) {
|
|
|
|
+ //查询人员
|
|
|
|
+ Long sendUser = getUser(jsonObject.getString("sendUser"));//调出申请人
|
|
|
|
+ Long recieveUser = getUser(jsonObject.getString("recieveUser"));//调入负责人
|
|
|
|
+ Long user = getUser(jsonObject.getString("user"));//调入使用人
|
|
|
|
+ if (ObjectUtils.isEmpty(sendUser) || ObjectUtils.isEmpty(recieveUser) || ObjectUtils.isEmpty(user)) {
|
|
|
|
+ return "人员信息转换失败";
|
|
|
|
+ }
|
|
|
|
+ map.put("sendUser", sendUser);
|
|
|
|
+ map.put("recieveUser", recieveUser);
|
|
|
|
+ map.put("user", user);
|
|
|
|
+
|
|
|
|
+ //查询组织
|
|
|
|
+ Long outOrgId = getOrg(jsonObject.getString("outOrgId"));//调出组织
|
|
|
|
+ Long orgId = getOrg(jsonObject.getString("orgId"));//调入组织
|
|
|
|
+ Long inDeptId = getOrg(jsonObject.getString("inDeptId"));//调入部门
|
|
|
|
+ if (ObjectUtils.isEmpty(outOrgId) || ObjectUtils.isEmpty(orgId) || ObjectUtils.isEmpty(inDeptId)) {
|
|
|
|
+ return "组织信息转换失败";
|
|
|
|
+ }
|
|
|
|
+ map.put("outOrgId", outOrgId);
|
|
|
|
+ map.put("orgId", orgId);
|
|
|
|
+ map.put("inDeptId", inDeptId);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 生单后反写中间表,防止反复生单
|
|
|
|
+ * @param billno
|
|
|
|
+ * @return String
|
|
|
|
+ */
|
|
|
|
+ private void OncePush(String billno) {
|
|
|
|
+ QFilter filter = new QFilter("number", QCP.equals, billno);
|
|
|
|
+ DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_dispatch_mid","id",new QFilter[] {filter});
|
|
|
|
+ DynamicObject midDispatch = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
|
|
|
|
+ midDispatch.set("nckd_flag", "1");
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[]{midDispatch});
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 判断是否已经下推生成调拨单
|
|
|
|
+ * @param billno
|
|
|
|
+ * @return boolean
|
|
|
|
+ */
|
|
|
|
+ private boolean isAlreadyDispatched(String billno) {
|
|
|
|
+ QFilter flagFilter = new QFilter("number", QCP.equals, billno);
|
|
|
|
+ DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_dispatch_mid", "id", new QFilter[]{flagFilter});
|
|
|
|
+ if (mid.length > 0) {
|
|
|
|
+ DynamicObject midDispatch = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
|
|
|
|
+ String flag = midDispatch.getString("nckd_flag");
|
|
|
|
+ return "1".equals(flag);
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @description 拼接错误信息
|
|
|
|
+ * @param resultString,errorChange,errorCode
|
|
|
|
+ */
|
|
|
|
+ private void appendErrorMessages(StringBuilder resultString, String errorChange, String errorCode) {
|
|
|
|
+ if (!StringUtils.isEmpty(errorChange)) {
|
|
|
|
+ resultString.append(errorChange).append("\n");
|
|
|
|
+ }
|
|
|
|
+ if (!StringUtils.isEmpty(errorCode)) {
|
|
|
|
+ resultString.append(errorCode).append("\n");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|