From 9e25fc503655e95857ab4540b67113306d3e7c2c Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 25 Apr 2023 21:23:49 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 8 +- .../inout/IoOrderReviewController.java | 44 ++- .../api/entity/basic/BasicCorpEntity.java | 4 +- .../glxp/api/entity/inout/IoOrderEntity.java | 7 + .../api/res/inout/AcceptOrderResponse.java | 2 +- .../api/service/inout/IoAddInoutService.java | 4 +- .../service/inout/IoCheckInoutService.java | 8 +- .../inv/InvPreinProductDetailService.java | 2 + .../InvPreInProductDetailServiceImpl.java | 21 +- .../glxp/api/service/sync/HeartService.java | 24 +- .../java/com/glxp/api/util/SnowflakeUtil.java | 34 ++ .../mybatis/mapper/basic/BasicCorpDao.xml | 366 ++++++++++-------- .../mybatis/mapper/basic/BasicHospTypeDao.xml | 77 ++-- .../mapper/inv/InvPreInProductDetailDao.xml | 45 +++ src/main/resources/schemas/schema_v2.1.sql | 1 + 15 files changed, 414 insertions(+), 233 deletions(-) create mode 100644 src/main/java/com/glxp/api/util/SnowflakeUtil.java diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index dfb35fe15..4ef41b507 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -529,8 +529,8 @@ public class IoCodeTempController extends BaseController { if (preInCount <= 0) { return ResultVOUtils.error(500, "预验收库存数量不足!"); } else { - if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo()) - && !invPreinDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) { + if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(udiEntity.getBatchNo()) + && !invPreinDetailEntity.getBatchNo().equals(udiEntity.getBatchNo())) { return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); } if (StrUtil.isNotEmpty(orderId)) {//非首次添加 @@ -560,8 +560,8 @@ public class IoCodeTempController extends BaseController { if (preInCount <= 0) { return ResultVOUtils.error(500, "寄售库存数量不足!"); } else { - if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo()) - && !invPreinDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) { + if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(udiEntity.getBatchNo()) + && !invPreinDetailEntity.getBatchNo().equals(udiEntity.getBatchNo())) { return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); } if (StrUtil.isNotEmpty(orderId)) {//非首次添加 diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index 735211777..c4288e722 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -131,6 +131,12 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.error(500, "未找到该业务单据"); } if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) { + if (updateExportStatusRequest.isEntrust()) { + EntrustReceEntity entrustReceEntity = entrustReceService.findByUnique(orderEntity.getAction(), getUserId()); + if (entrustReceEntity != null && StrUtil.isNotEmpty(entrustReceEntity.getEntrustAction())) { + transferOrder(orderEntity, entrustReceEntity); + } + } return updateReview(getUser(), orderEntity); } else if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { return thirdUpdateReview(getUser(), orderEntity); @@ -286,17 +292,18 @@ public class IoOrderReviewController extends BaseController { supplementOrder.setOriginUllageSupNo(orderEntity.getBillNo()); supplementOrder.setBillNo(supplementOrderNo); - SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); - if ("1".equals(systemParamConfigEntity.getParamValue())) { - supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); //设置状态为补录单据 - } else { - supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); //设置状态为补录单据 - } +// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); +// if ("1".equals(systemParamConfigEntity.getParamValue())) { +// supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); //设置状态为补录单据 +// } else { +// supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); //设置状态为补录单据 +// } - supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); //设置导出状态为未导出 + supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); //设置导出状态为未导出 supplementOrder.setCorpOrderId(CustomUtil.getId() + "x"); //修改往来单位及当前库存号 + supplementOrder.setFromCorp(null); supplementOrder.setFromDeptCode(orderEntity.getDeptCode()); supplementOrder.setFromInvCode(orderEntity.getInvCode()); supplementOrder.setDeptCode(entrustReceEntity.getEntrustDept()); @@ -404,6 +411,8 @@ public class IoOrderReviewController extends BaseController { redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo()); //验收完成->进入流程 ioCheckInoutService.checkSecond(orderEntity); + + return ResultVOUtils.success("更新成功"); } @@ -434,15 +443,27 @@ public class IoOrderReviewController extends BaseController { public BaseResponse reviewSpms(@RequestBody ReviewSpmsRequest reviewSpmsRequest) { String billNo = reviewSpmsRequest.getBillNo(); + if (StrUtil.isEmpty(reviewSpmsRequest.getBillNo())) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } + AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); Long userId = getUserId(); String errMsg = checkReviewAuth(billNo, userId + ""); + EntrustReceEntity entrustReceEntity; if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); + + if (errMsg.equals("委托验收")) { + IoOrderEntity orderEntity = orderService.findByBillNo(billNo); + entrustReceEntity = entrustReceService.findByUnique(orderEntity.getAction(), userId); + if (entrustReceEntity != null) { + acceptOrderEntity.setEntrust(true); + } else + return ResultVOUtils.error(500, "无权限验收!"); + } else + return ResultVOUtils.error(500, errMsg); } - AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); + acceptOrderEntity.setBillNo(billNo); List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); IoOrderResponse orderResponse; @@ -503,20 +524,21 @@ public class IoOrderReviewController extends BaseController { //校验用户是否验收权限 private String checkReviewAuth(String orderId, String userId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); - if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { return "单据非未验收状态,无法审核!"; } if (!invBusUserService.exitBus(userId, orderEntity.getAction())) { EntrustReceEntity entrustReceEntity = entrustReceService.findByUnique(orderEntity.getAction(), Long.parseLong(userId)); if (entrustReceEntity == null) { return "无验收权限!"; + } else { + return "委托验收"; } } else { return null; } - return null; } } diff --git a/src/main/java/com/glxp/api/entity/basic/BasicCorpEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicCorpEntity.java index 79b2bc5e7..53db4b077 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicCorpEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicCorpEntity.java @@ -11,7 +11,7 @@ import java.util.Date; @Data @TableName(value = "basic_corp") public class BasicCorpEntity { - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Integer id; /** @@ -141,4 +141,4 @@ public class BasicCorpEntity { private String remark; -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java index a4762c8df..d52c9d87c 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -241,7 +241,14 @@ public class IoOrderEntity { @TableField(value = "checkStatus") private Integer checkStatus; //确认状态 + + // 预验收按单出库,退货 @TableField(value = "checkPreInOrders") private String checkPreInOrders; + // 预验收按货位出库,退货 + @TableField(value = "checkPreInSpaceCode") + private String checkPreInSpaceCode; + + } diff --git a/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java b/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java index 64d0c7b82..a4f431da3 100644 --- a/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java @@ -19,7 +19,7 @@ public class AcceptOrderResponse { private boolean finishAccept; IoOrderResponse orderEntity; - + private boolean entrust; private List orderDetailEntities; } diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 75d3dff28..c2ba29277 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -117,12 +117,12 @@ public class IoAddInoutService { basicCorpEntity.setCorpType(ConstantStatus.CORP_SICK); basicCorpEntity.setOutType(ConstantStatus.CORP_SICK_SICK); basicCorpEntity.setName(orderEntity.getFromCorp()); - + basicCorpService.insertBasicUnitMaintain(basicCorpEntity); } orderEntity.setFromCorp(basicCorpEntity.getErpId()); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); - basicCorpService.insertBasicUnitMaintain(basicCorpEntity); + } } diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 5f603f53f..b99350f71 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -439,7 +439,7 @@ public class IoCheckInoutService { //业务单正向校验 - public String bizNoPiCheck(List orderDetailBizEntities,IoOrderEntity orderEntity) { + public String bizNoPiCheck(List orderDetailBizEntities, IoOrderEntity orderEntity) { String errMsg = ""; for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { @@ -855,14 +855,16 @@ public class IoCheckInoutService { List backCodeList = new ArrayList<>(); List codeList = codeService.findByOrderId(orderEntity.getBillNo()); for (IoCodeEntity codeEntity : codeList) { - int count = invPreinProductDetailService.findCountByCode(codeEntity.getCode()); + int count = invPreinProductDetailService.findCountBySpaceCode(codeEntity.getCode(), orderEntity.getCheckPreInSpaceCode()); if (count > 0) { codeEntity.setCount(count); codeEntity.setReCount(udiCalCountUtil.getActCount(codeEntity.getNameCode())); + codeEntity.setWarehouseCode(orderEntity.getCheckPreInSpaceCode()); backCodeList.add(codeEntity); - genBackOrder(orderEntity, backCodeList); + } } + genBackOrder(orderEntity, backCodeList); } } // }); diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java index ecf3dc25f..ca8e83e48 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java @@ -54,5 +54,7 @@ public interface InvPreinProductDetailService { int findCountByCode(String code); + int findCountBySpaceCode(String spaceCode, String code); + InvPreInProductDetailEntity findUseOneByCode(String code); } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java index 7dbf9ab9f..27f12a809 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java @@ -168,10 +168,29 @@ public class InvPreInProductDetailServiceImpl implements InvPreinProductDetailSe return count; } + @Override + public int findCountBySpaceCode(String spaceCode, String code) { + + + List invPreinDetailEntities = invPreInProductDetailDao.selectList(new QueryWrapper().eq("code", code).eq("invSpaceCode", spaceCode)); + int count = 0; + if (CollUtil.isNotEmpty(invPreinDetailEntities)) { + for (InvPreInProductDetailEntity invProductDetailEntity : invPreinDetailEntities) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) + count = count + invProductDetailEntity.getReCount(); + else { + count = count - invProductDetailEntity.getReCount(); + } + } + } + return count; + + } + @Override public InvPreInProductDetailEntity findUseOneByCode(String code) { List invPreinDetailEntities = invPreInProductDetailDao.selectList(new QueryWrapper().eq("code", code) - .eq("status", ConstantStatus.INVIN_IN).last("limit 1")); + .last("limit 1")); if (CollUtil.isNotEmpty(invPreinDetailEntities)) { return invPreinDetailEntities.get(0); } diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index 26ecd52e1..3205845c5 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -237,7 +237,7 @@ public class HeartService { } break; case THIRD_DATA: - if (needExec(info.getBasicThirdDept(), info.getBasicThirdInv(), info.getBasicThirdProducts(),info.getBasicThirdCorp())) { + if (needExec(info.getBasicThirdDept(), info.getBasicThirdInv(), info.getBasicThirdProducts(), info.getBasicThirdCorp())) { uploadData(exportType, taskId, x -> x.getThirdData(info, taskId, now, syncTime)); } break; @@ -732,7 +732,7 @@ public class HeartService { } //确认有开启第三方仓库信息同步 - if(needExec(info.getBasicThirdInv())){ + if (needExec(info.getBasicThirdInv())) { Map map; if (syncTime == null) { map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.THR_WAREHOUSE); @@ -1272,7 +1272,8 @@ public class HeartService { relevanceDao.insertOrUpdateBatch(relevanceList); } if (CollectionUtil.isNotEmpty(corpList)) { - corpDao.insertOrUpdateBatch(corpList); + for (BasicCorpEntity basicCorpEntity : corpList) + corpDao.importBasicUnitMaintain(basicCorpEntity); } if (CollectionUtil.isNotEmpty(supCertList)) { supCertDao.insertOrUpdateBatch(supCertList); @@ -1317,6 +1318,7 @@ public class HeartService { private final BasicBussinessTypeDao bussinessTypeDao; private final BasicBusTypeChangeDao busTypeChangeDao; private final ThrBusTypeOriginDao thrBusTypeOriginDao; + /** * 设置嵌套事物 * @@ -1642,14 +1644,14 @@ public class HeartService { list.add(systemPDFTemplateEntity.getPath()); }); - BaseResponse response = spGetHttp.postTemplateFile(list); - if (response.getCode() == 20000) { - log.info("模板文件列表上传成功"); - uploadFileLog = "\n模板文件列表上传成功"; - } else { - log.info("模板文件上传失败,响应信息:{}", response.getMessage()); - uploadFileLog = "\n模板文件列表上传失败,错误信息:" + response.getMessage(); - } +// BaseResponse response = spGetHttp.postTemplateFile(list); +// if (response.getCode() == 20000) { +// log.info("模板文件列表上传成功"); +// uploadFileLog = "\n模板文件列表上传成功"; +// } else { +// log.info("模板文件上传失败,响应信息:{}", response.getMessage()); +// uploadFileLog = "\n模板文件列表上传失败,错误信息:" + response.getMessage(); +// } } if (baseResponse.getCode() == 20000) { basicExportStatusEntity1.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS); diff --git a/src/main/java/com/glxp/api/util/SnowflakeUtil.java b/src/main/java/com/glxp/api/util/SnowflakeUtil.java new file mode 100644 index 000000000..174c05b2d --- /dev/null +++ b/src/main/java/com/glxp/api/util/SnowflakeUtil.java @@ -0,0 +1,34 @@ +package com.glxp.api.util; + + +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.net.NetUtil; +import cn.hutool.core.util.IdUtil; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @Author tan + * @Date 2021/10/16 16:23 + */ +@Component +public class SnowflakeUtil { + @JsonFormat(shape = JsonFormat.Shape.STRING) + private long workerId = 0;//为终端ID + private long dataCenterId = 1;//数据中心ID + private Snowflake snowflake = IdUtil.createSnowflake(workerId,dataCenterId); + @PostConstruct + public void init(){ + workerId = NetUtil.ipv4ToLong(NetUtil.getLocalhostStr()); + } + public synchronized String snowflakeId(){ + return String.valueOf(snowflake.nextId()); + } + public synchronized long snowflakeId(long workerId,long dataCenterId){ + Snowflake snowflake = IdUtil.createSnowflake(workerId, dataCenterId); + return snowflake.nextId(); + } +} + diff --git a/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml b/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml index e8e61b424..8d3efa011 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml @@ -2,24 +2,24 @@ - REPLACE - INTO basic_corp - ( thirdId, erpId, `name`, spell, + INTO basic_corp + (thirdId, erpId, `name`, spell, addr, status, `type`, creditNo, contact, mobile, thirdId1, thirdId2, thirdId3, thirdId4, - thirdName, thirdName1, thirdName2, thirdName3, thirdName4, updateTime, corpType,outType,createUser,createTime,updateUser,remark) - values ( - #{thirdId}, - #{erpId}, - #{name}, - #{spell}, - #{addr}, - #{status}, - #{type}, - #{creditNo}, - #{contact}, - #{mobile}, - #{thirdId1}, - #{thirdId2}, - #{thirdId3}, - #{thirdId4}, - #{thirdName}, - #{thirdName1}, - #{thirdName2}, - #{thirdName3}, - #{thirdName4}, - #{updateTime}, - #{corpType}, - #{outType}, - #{createUser}, - #{createTime}, - #{updateUser}, - #{remark} - ) + thirdName, thirdName1, thirdName2, thirdName3, thirdName4, updateTime, corpType, outType, createUser, + createTime, updateUser, remark) + values (#{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{creditNo}, + #{contact}, + #{mobile}, + #{thirdId1}, + #{thirdId2}, + #{thirdId3}, + #{thirdId4}, + #{thirdName}, + #{thirdName1}, + #{thirdName2}, + #{thirdName3}, + #{thirdName4}, + #{updateTime}, + #{corpType}, + #{outType}, + #{createUser}, + #{createTime}, + #{updateUser}, + #{remark}) diff --git a/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml index 630e2944d..4f0eeaae4 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml @@ -1,48 +1,43 @@ - - - - - - - - - - - - - - - - id, code, parentCode, `name`, remark, createTime, updateTime, `createUser`, updateUser - + + + + + + + + + + + + + + + + id, code, parentCode, `name`, remark, createTime, updateTime, `createUser`, updateUser + - - - - + + diff --git a/src/main/resources/mybatis/mapper/inv/InvPreInProductDetailDao.xml b/src/main/resources/mybatis/mapper/inv/InvPreInProductDetailDao.xml index 7cdf1c38d..b62e16827 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPreInProductDetailDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPreInProductDetailDao.xml @@ -74,4 +74,49 @@ + + + diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index cc444dafc..ecc5871b6 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -217,6 +217,7 @@ CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'sortNum', 'int', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'preInBackAction', 'varchar(255) ', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'backPreinType', 'tinyint', 1); CALL Pro_Temp_ColumnWork('io_order', 'checkPreInOrders', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('io_order', 'checkPreInSpaceCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('sys_hosp_config', 'thirdSys', 'varchar(255)', 1);