diff --git a/src/main/java/com/nbport/zgwl/controller/AdminOrgController.java b/src/main/java/com/nbport/zgwl/controller/AdminOrgController.java index 77f40aa..40470c0 100644 --- a/src/main/java/com/nbport/zgwl/controller/AdminOrgController.java +++ b/src/main/java/com/nbport/zgwl/controller/AdminOrgController.java @@ -1,29 +1,73 @@ package com.nbport.zgwl.controller; import com.nbport.zgwl.common.R; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; /** * 组织架构树 Controller * - * 当前为 mock 数据,对应内网 /admin/org/getOrgTree 接口的真实返回。 + * 当前为 mock 数据,对应内网正式接口。 * 后续接入统一认证后可直接替换为真实接口调用。 */ @RestController @RequestMapping("/admin/org") public class AdminOrgController { - @GetMapping("/getOrgTree") - public R> getOrgTree() { + /** + * 获取组织树(完整层级) + * GET /admin/org/getOrgTree + */ + @RequestMapping("/getOrgTree") + public R> getOrgTree(String status, String tenantName) { return R.success(buildOrgTree()); } + /** + * 按类型查询组织列表(扁平) + * POST /admin/org/listAllOrgNameByTypeWithId + * 传参 {"orgCode": "AGENT"} + */ + @PostMapping("/listAllOrgNameByTypeWithId") + public R> listAllOrgNameByTypeWithId(@RequestBody(required = false) Map body) { + return R.success(buildAgentOrgList()); + } + + // ========== 货代公司(AGENT)列表 ========== + + private List buildAgentOrgList() { + return List.of( + new OrgNameIdItem("江苏远洋新世纪2供应链有限公司", 384L), + new OrgNameIdItem("嘉兴兴港", 15L), + new OrgNameIdItem("货代测试", 79L), + new OrgNameIdItem("堆场测试", 139L), + new OrgNameIdItem("堆场测试-中通", 150L), + new OrgNameIdItem("堆场测试-汇海通", 151L), + new OrgNameIdItem("堆场测试-顺丰", 152L), + new OrgNameIdItem("堆场测试-圆通", 153L), + new OrgNameIdItem("堆场测试-京东", 154L), + new OrgNameIdItem("堆场测试-申通", 155L), + new OrgNameIdItem("宁波众兴物流有限公司", 385L), + new OrgNameIdItem("公司入驻测试", 241L), + new OrgNameIdItem("宁波港东南物流集团有限公司", 80L), + new OrgNameIdItem("绍兴彬亮纺织品有限集团", 402L), + new OrgNameIdItem("深圳市益禾国际货运代理有限公司", 361L), + new OrgNameIdItem("四港物流", 16L), + new OrgNameIdItem("宁波泰利物流有限公司", 17L), + new OrgNameIdItem("二级货代测试公司", 134L), + new OrgNameIdItem("东南货代测试", 135L), + new OrgNameIdItem("义乌市万全进出口有限公司", 401L) + ); + } + + // ========== 组织树(与 getOrgTree 返回一致) ========== + private List buildOrgTree() { - // 根节点:浙江海港物流集团有限公司X (id=1) OrgTreeNode root = new OrgTreeNode(); root.setId(1L); root.setOrgName("浙江海港物流集团有限公司X"); @@ -34,52 +78,29 @@ public class AdminOrgController { root.setStatus("1"); root.setTenantId(1L); - // ========== 二级节点 ========== - - // 永康陆港国际物流有限公司 (id=47) OrgTreeNode yongkang = createNode(47L, "永康陆港国际物流有限公司", 1L, "2", null, "YongKangLuGangGuoJiWuLiuYouXianGongSi", "1", 1L); - yongkang.setChildren(List.of( - createNode(138L, "永康物流分公司", 47L, "2", null, "c85c9da591e04d55b3d01dd0f5ae35aa", "1", 1L) - )); + yongkang.setChildren(List.of(createNode(138L, "永康物流分公司", 47L, "2", null, "c85c9da591e04d55b3d01dd0f5ae35aa", "1", 1L))); - // 宁波港国际物流有限公司诸暨业务点 (id=48) OrgTreeNode zhuji = createNode(48L, "宁波港国际物流有限公司诸暨业务点", 1L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiZhuJiYeWuDian", "1", 1L); - zhuji.setChildren(List.of( - createNode(49L, "宁波港国际物流有限公司兰溪业务点", 48L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiLanXiYeWuDian", "1", 1L) - )); + zhuji.setChildren(List.of(createNode(49L, "宁波港国际物流有限公司兰溪业务点", 48L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiLanXiYeWuDian", "1", 1L))); - OrgTreeNode lishui = createNode(51L, "丽水陆港国际物流有限责任公司", 1L, "2", null, "LiShuiLuGangGuoJiWuLiuYouXianZeRenGongSi", "1", 1L); - OrgTreeNode quzhou = createNode(52L, "衢州通港国际物流有限公司", 1L, "2", null, "QuZhouTongGangGuoJiWuLiuYouXianGongSi", "1", 1L); - - // 浙港物流浙中北大区 (id=58) OrgTreeNode zhongbei = createNode(58L, "浙港物流浙中北大区", 1L, "2", null, "ZheGangWuLiuZheZhongBeiDaQu", "1", 1L); zhongbei.setChildren(List.of( createNode(59L, "浙江兴港国际货运代理有限公司嘉兴分公司", 58L, "2", null, "ZheJiangXingGangGuoJiHuoYunDaiLiYouXianGongSiJiaXingFenGongSi", "1", 1L), createNode(60L, "宁波港铁路有限公司绍兴分公司", 58L, "2", null, "NingBoGangTieLuYouXianGongSiShaoXingFenGongSi", "1", 1L) )); - // 浙港物流江苏大区 (id=68) OrgTreeNode jiangsu = createNode(68L, "浙港物流江苏大区", 1L, "2", null, "ZheGangWuLiuJiangSuDaQu", "1", 1L); OrgTreeNode jiangsuChild = createNode(69L, "浙港(江苏)国际供应链管理有限公司", 68L, "2", null, "ZheGang(JiangSu)GuoJiGongYingLianGuanLiYouXianGongSi", "1", 1L); - jiangsuChild.setChildren(List.of( - createNode(71L, "盐城海铁", 69L, "2", null, "YanChengHaiTie", "1", 1L) - )); - jiangsu.setChildren(List.of( - jiangsuChild, - createNode(72L, "浙港物流江苏其他", 68L, "2", null, "ZheGangWuLiuJiangSuQiTa", "1", 1L) - )); + jiangsuChild.setChildren(List.of(createNode(71L, "盐城海铁", 69L, "2", null, "YanChengHaiTie", "1", 1L))); + jiangsu.setChildren(List.of(jiangsuChild, createNode(72L, "浙港物流江苏其他", 68L, "2", null, "ZheGangWuLiuJiangSuQiTa", "1", 1L))); - OrgTreeNode haian = createNode(70L, "海安海铁", 1L, "2", null, "HaiAnHaiTie", "1", 1L); - OrgTreeNode xuzhou = createNode(75L, "宁波港国际物流有限公司徐州分公司", 1L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiXuZhouFenGongSi", "1", 1L); - - // 浙港物流湘赣大区 (id=76) OrgTreeNode xianggan = createNode(76L, "浙港物流湘赣大区", 1L, "2", null, "ZheGangWuLiuXiangGanDaQu", "1", 1L); xianggan.setChildren(List.of( createNode(77L, "宁波港铁路有限公司--向塘/贵溪/赣州/宜春西/鹰潭南/萍乡/景德镇东/新余/樟树/湘潭/株洲北/长沙北/岳阳", 76L, "2", null, "NingBoGangTieLuYouXianGongSi--XiangTang/GuiXi/GanZhou/YiChunXi/YingTanNan/PingXiang/JingDeZhenDong/XinYu/ZhangShu/XiangTan/ZhuZhouBei/ChangShaBei/YueYang", "1", 1L), createNode(78L, "江西上饶海港物流有限公司", 76L, "2", null, "JiangXiShangRaoHaiGangWuLiuYouXianGongSi", "1", 1L) )); - // 浙港物流安徽大区2 (id=23) OrgTreeNode anhui = createNode(23L, "浙港物流安徽大区2", 1L, "2", null, "ErJiGongSi2", "1", 1L); anhui.setChildren(List.of( createNode(43L, "宁波港铁路有限公司---蚌埠/洛阳/青龙山/萧山", 23L, "2", null, "NingBoGangTieLuYouXianGongSi---BengBu/LuoYang/QingLongShan/XiaoShan", "1", 1L), @@ -87,55 +108,44 @@ public class AdminOrgController { createNode(45L, "宣城市浙皖国际陆港供应链管理有限公司", 23L, "2", null, "XuanChengShiZheWanGuoJiLuGangGongYingLianGuanLiYouXianGongSi", "1", 1L) )); - OrgTreeNode huahaitong = createNode(321L, "汇海通-华峙", 1L, "2", "共享堆场测试", "21c350f7d5e54d0091ece7a47703bff8", "1", 1L); - OrgTreeNode test11 = createNode(382L, "11", 1L, "2", "sss", "e53d1047b5bc4415a98719a0f6911d83", "1", 1L); - OrgTreeNode test2 = createNode(383L, "测试2", 1L, "2", null, "86d33726220c452d9dfd266c01214803", "1", 1L); - OrgTreeNode donghua = createNode(181L, "东华", 1L, "2", "共享堆场测试", "ad3fc4e7e6644b78a245dbef5c70a0f1", "1", 1L); - OrgTreeNode ganglianjie = createNode(182L, "港联捷", 1L, "2", "共享堆场测试", "edd2fd12073a42bca05c7682ef507b95", "1", 1L); - OrgTreeNode yiwu = createNode(46L, "浙江义乌国际公铁联运有限公司", 1L, "2", null, "ZheJiangYiWuGuoJiGongTieLianYunYouXianGongSi", "1", 1L); - OrgTreeNode xinanjiang = createNode(50L, "新安江业务点", 1L, "2", null, "XinAnJiangYeWuDian", "1", 1L); - - // 浙港物流华中大区 (id=53) OrgTreeNode huazhong = createNode(53L, "浙港物流华中大区", 1L, "2", null, "ZheGangWuLiuHuaZhongDaQu", "1", 1L); OrgTreeNode xiangyang = createNode(56L, "宁波港国际物流有限公司襄阳分公司", 53L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiXiangYangFenGongSi", "1", 1L); - xiangyang.setChildren(List.of( - createNode(57L, "襄阳业务点", 56L, "2", null, "XiangYangYeWuDian", "1", 1L) - )); - huazhong.setChildren(List.of( - xiangyang, + xiangyang.setChildren(List.of(createNode(57L, "襄阳业务点", 56L, "2", null, "XiangYangYeWuDian", "1", 1L))); + huazhong.setChildren(List.of(xiangyang, createNode(54L, "湖北浙港供应链管理有限公司", 53L, "2", null, "HuBeiZheGangGongYingLianGuanLiYouXianGongSi", "1", 1L), createNode(55L, "武铁浙港多式联运(河南)有限公司", 53L, "2", null, "WuTieZheGangDuoShiLianYun(HeNan)YouXianGongSi", "1", 1L) )); - // 浙港物流浙西南大区 (id=61) OrgTreeNode zhexi = createNode(61L, "浙港物流浙西南大区", 1L, "2", null, "ZheGangWuLiuZheXiNanDaQu", "1", 1L); - OrgTreeNode jinhuanan = createNode(62L, "浙港物流金华南", 61L, "2", null, "ZheGangWuLiuJinHuaNan", "1", 1L); OrgTreeNode taizhounan = createNode(63L, "浙港物流台州南", 61L, "2", null, "ZheGangWuLiuTaiZhouNan", "1", 1L); - taizhounan.setChildren(List.of( - createNode(64L, "宁波佰菲特国际货运代理有限公司", 63L, "2", null, "NingBoBaiFeiTeGuoJiHuoYunDaiLiYouXianGongSi", "1", 1L) - )); - zhexi.setChildren(List.of(jinhuanan, taizhounan)); + taizhounan.setChildren(List.of(createNode(64L, "宁波佰菲特国际货运代理有限公司", 63L, "2", null, "NingBoBaiFeiTeGuoJiHuoYunDaiLiYouXianGongSi", "1", 1L))); + zhexi.setChildren(List.of(createNode(62L, "浙港物流金华南", 61L, "2", null, "ZheGangWuLiuJinHuaNan", "1", 1L), taizhounan)); - // 宁波港国际物流有限公司合肥分公司 (id=65) OrgTreeNode hefei = createNode(65L, "宁波港国际物流有限公司合肥分公司", 1L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiHeFeiFenGongSi", "1", 1L); - hefei.setChildren(List.of( - createNode(66L, "六安安庆北业务点", 65L, "2", null, "LuAnAnQingBeiYeWuDian", "1", 1L) - )); + hefei.setChildren(List.of(createNode(66L, "六安安庆北业务点", 65L, "2", null, "LuAnAnQingBeiYeWuDian", "1", 1L))); - OrgTreeNode jiangshan = createNode(67L, "江山无水港国际物流有限公司", 1L, "2", null, "JiangShanWuShuiGangGuoJiWuLiuYouXianGongSi", "1", 1L); - - // 浙港物流西部大区 (id=73) OrgTreeNode xibu = createNode(73L, "浙港物流西部大区", 1L, "2", null, "ZheGangWuLiuXiBuDaQu", "1", 1L); - xibu.setChildren(List.of( - createNode(74L, "宁波港铁路有限公司---重庆/城厢/白银市/西安/宜兴", 73L, "2", null, "NingBoGangTieLuYouXianGongSi---ChongQing/ChengXiang/BaiYinShi/XiAn/YiXing", "1", 1L) - )); + xibu.setChildren(List.of(createNode(74L, "宁波港铁路有限公司---重庆/城厢/白银市/西安/宜兴", 73L, "2", null, "NingBoGangTieLuYouXianGongSi---ChongQing/ChengXiang/BaiYinShi/XiAn/YiXing", "1", 1L))); root.setChildren(List.of( - yongkang, zhuji, lishui, quzhou, zhongbei, jiangsu, haian, xuzhou, - xianggan, anhui, huahaitong, test11, test2, donghua, ganglianjie, - yiwu, xinanjiang, huazhong, zhexi, hefei, jiangshan, xibu + yongkang, zhuji, + createNode(51L, "丽水陆港国际物流有限责任公司", 1L, "2", null, "LiShuiLuGangGuoJiWuLiuYouXianZeRenGongSi", "1", 1L), + createNode(52L, "衢州通港国际物流有限公司", 1L, "2", null, "QuZhouTongGangGuoJiWuLiuYouXianGongSi", "1", 1L), + zhongbei, jiangsu, + createNode(70L, "海安海铁", 1L, "2", null, "HaiAnHaiTie", "1", 1L), + createNode(75L, "宁波港国际物流有限公司徐州分公司", 1L, "2", null, "NingBoGangGuoJiWuLiuYouXianGongSiXuZhouFenGongSi", "1", 1L), + xianggan, anhui, + createNode(321L, "汇海通-华峙", 1L, "2", "共享堆场测试", "21c350f7d5e54d0091ece7a47703bff8", "1", 1L), + createNode(382L, "11", 1L, "2", "sss", "e53d1047b5bc4415a98719a0f6911d83", "1", 1L), + createNode(383L, "测试2", 1L, "2", null, "86d33726220c452d9dfd266c01214803", "1", 1L), + createNode(181L, "东华", 1L, "2", "共享堆场测试", "ad3fc4e7e6644b78a245dbef5c70a0f1", "1", 1L), + createNode(182L, "港联捷", 1L, "2", "共享堆场测试", "edd2fd12073a42bca05c7682ef507b95", "1", 1L), + createNode(46L, "浙江义乌国际公铁联运有限公司", 1L, "2", null, "ZheJiangYiWuGuoJiGongTieLianYunYouXianGongSi", "1", 1L), + createNode(50L, "新安江业务点", 1L, "2", null, "XinAnJiangYeWuDian", "1", 1L), + huazhong, zhexi, hefei, + createNode(67L, "江山无水港国际物流有限公司", 1L, "2", null, "JiangShanWuShuiGangGuoJiWuLiuYouXianGongSi", "1", 1L), + xibu )); - return List.of(root); } @@ -153,9 +163,8 @@ public class AdminOrgController { return node; } - /** - * 组织树节点 DTO - */ + // ========== DTOs ========== + public static class OrgTreeNode { private Long id; private String orgName; @@ -167,7 +176,6 @@ public class AdminOrgController { private Long tenantId; private List children; - // getters / setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getOrgName() { return orgName; } @@ -187,4 +195,17 @@ public class AdminOrgController { public List getChildren() { return children; } public void setChildren(List children) { this.children = children; } } + + public static class OrgNameIdItem { + private String name; + private Long id; + + public OrgNameIdItem() {} + public OrgNameIdItem(String name, Long id) { this.name = name; this.id = id; } + + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + } } diff --git a/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java b/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java index e4f7163..0351304 100644 --- a/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java +++ b/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java @@ -291,4 +291,12 @@ public class IldmFeeCustomerInfo implements Serializable { /** 同步说明 */ @TableField("SYNC_MESSAGE") private String syncMessage; + + /** 关联内部组织ID(集团内货代公司对应组织树节点ID) */ + @TableField("LINKED_ORG_ID") + private Long linkedOrgId; + + /** 关联用户账号/手机号(内部货代公司对应的业务端登录账号) */ + @TableField("LINKED_USER_ACCOUNT") + private String linkedUserAccount; } diff --git a/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java b/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java index 71e035c..df9b583 100644 --- a/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java +++ b/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java @@ -235,6 +235,14 @@ public class PartnerManageDto implements Serializable { /** 同步说明 */ private String syncMessage; + // ============== 新增字段:关联内部组织 ============== + + /** 关联内部组织ID(集团内货代公司对应组织树节点ID) */ + private Long linkedOrgId; + + /** 关联用户账号/手机号(内部货代公司对应的业务端登录账号) */ + private String linkedUserAccount; + // ============== 非数据库字段 ============== /** 联系人列表 */ diff --git a/src/main/resources/mapper/partner/PartnerManageMapper.xml b/src/main/resources/mapper/partner/PartnerManageMapper.xml index 2fa6e54..a9d6733 100644 --- a/src/main/resources/mapper/partner/PartnerManageMapper.xml +++ b/src/main/resources/mapper/partner/PartnerManageMapper.xml @@ -52,6 +52,8 @@ + + @@ -75,7 +77,8 @@ OPPOSITE_CODE, OPPOSITE_STATUS, IS_SGAT, IS_JTN, NATURE_OF_ENTERPRISE_ORG, NATURE_OF_ENTERPRISE_ORG_LEV, RELATIVE_TYPE, IS_DELETED, COMMENTS, REMARK, CREATE_BY, CREATE_TIME, - UPDATE_BY, UPDATE_TIME, sync_status, sync_time, sync_message + UPDATE_BY, UPDATE_TIME, sync_status, sync_time, sync_message, + LINKED_ORG_ID, LINKED_USER_ACCOUNT from ILDM_FEE_CUSTOMER_INFO @@ -118,7 +121,8 @@ OPPOSITE_STATUS, IS_SGAT, IS_JTN, NATURE_OF_ENTERPRISE_ORG, NATURE_OF_ENTERPRISE_ORG_LEV, RELATIVE_TYPE, IS_DELETED, COMMENTS, REMARK, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, - sync_status, sync_time, sync_message, ORG_ID + sync_status, sync_time, sync_message, ORG_ID, + LINKED_ORG_ID, LINKED_USER_ACCOUNT ) values ( @@ -129,7 +133,8 @@ #{oppositeStatus}, #{isSgat}, #{isJtn}, #{natureOfEnterpriseOrg}, #{natureOfEnterpriseOrgLev}, #{relativeType}, #{isDeleted}, #{comments}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, - #{syncStatus}, #{syncTime}, #{syncMessage}, #{orgId} + #{syncStatus}, #{syncTime}, #{syncMessage}, #{orgId}, + #{linkedOrgId}, #{linkedUserAccount} ) @@ -165,6 +170,8 @@ sync_status = #{syncStatus}, sync_time = #{syncTime}, sync_message = #{syncMessage}, + LINKED_ORG_ID = #{linkedOrgId}, + LINKED_USER_ACCOUNT = #{linkedUserAccount}, where CUSTOMER_SYSID = #{customerSysid} and IS_DELETED = 'N' diff --git a/zgwl_contract_launch_oracle.sql b/zgwl_contract_launch_oracle.sql index 4c13014..1d2a754 100644 --- a/zgwl_contract_launch_oracle.sql +++ b/zgwl_contract_launch_oracle.sql @@ -579,3 +579,32 @@ CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_LOG NOCYCLE CACHE 20 NOORDER; + +-- ============================================= +-- ILDM_FEE_CUSTOMER_INFO 新增字段 +-- 用于相对方关联内部货代公司组织节点 +-- ============================================= + +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM ALL_TAB_COLUMNS + WHERE TABLE_NAME = 'ILDM_FEE_CUSTOMER_INFO' AND COLUMN_NAME = 'LINKED_ORG_ID'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'ALTER TABLE ILDM_FEE_CUSTOMER_INFO ADD LINKED_ORG_ID NUMBER(19)'; + EXECUTE IMMEDIATE 'COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.LINKED_ORG_ID IS ''关联内部组织ID(集团内货代公司对应组织树节点ID)'''; + END IF; +END; +/ + +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM ALL_TAB_COLUMNS + WHERE TABLE_NAME = 'ILDM_FEE_CUSTOMER_INFO' AND COLUMN_NAME = 'LINKED_USER_ACCOUNT'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'ALTER TABLE ILDM_FEE_CUSTOMER_INFO ADD LINKED_USER_ACCOUNT VARCHAR2(64)'; + EXECUTE IMMEDIATE 'COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.LINKED_USER_ACCOUNT IS ''关联用户账号/手机号(内部货代公司对应的业务端登录账号)'''; + END IF; +END; +/ diff --git a/zgwl_contract_linked_org_patch.sql b/zgwl_contract_linked_org_patch.sql new file mode 100644 index 0000000..fa8f947 --- /dev/null +++ b/zgwl_contract_linked_org_patch.sql @@ -0,0 +1,37 @@ +-- ============================================= +-- 补充 ILDM_FEE_CUSTOMER_INFO 关联组织字段 +-- 用于相对方关联内部货代公司组织节点 +-- 幂等执行:如已存在则跳过 +-- ============================================= + +-- 关联组织ID(内部货代公司对应组织树节点ID) +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM ALL_TAB_COLUMNS + WHERE OWNER = 'DEVELOPER' AND TABLE_NAME = 'ILDM_FEE_CUSTOMER_INFO' AND COLUMN_NAME = 'LINKED_ORG_ID'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'ALTER TABLE ILDM_FEE_CUSTOMER_INFO ADD LINKED_ORG_ID NUMBER(19)'; + EXECUTE IMMEDIATE 'COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.LINKED_ORG_ID IS ''关联内部组织ID(集团内货代公司对应组织树节点ID)'''; + DBMS_OUTPUT.PUT_LINE('LINKED_ORG_ID column added.'); + ELSE + DBMS_OUTPUT.PUT_LINE('LINKED_ORG_ID already exists, skipped.'); + END IF; +END; +/ + +-- 关联用户账号/手机号(内部货代公司对应的业务端用户) +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM ALL_TAB_COLUMNS + WHERE OWNER = 'DEVELOPER' AND TABLE_NAME = 'ILDM_FEE_CUSTOMER_INFO' AND COLUMN_NAME = 'LINKED_USER_ACCOUNT'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'ALTER TABLE ILDM_FEE_CUSTOMER_INFO ADD LINKED_USER_ACCOUNT VARCHAR2(64)'; + EXECUTE IMMEDIATE 'COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.LINKED_USER_ACCOUNT IS ''关联用户账号/手机号(内部货代公司对应的业务端登录账号)'''; + DBMS_OUTPUT.PUT_LINE('LINKED_USER_ACCOUNT column added.'); + ELSE + DBMS_OUTPUT.PUT_LINE('LINKED_USER_ACCOUNT already exists, skipped.'); + END IF; +END; +/