| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- package com.jeesite.modules.mes.erp;
- import com.jeesite.common.lang.StringUtils;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- @Component
- public class KingdeeErpProperties {
- @Value("${erp.k3cloud.base-url:https://erp.anhuidayang.com:8800/k3cloud}")
- private String baseUrl;
- @Value("${erp.k3cloud.acct-id:672630265043d5}")
- private String acctId;
- @Value("${erp.k3cloud.username:}")
- private String username;
- @Value("${erp.k3cloud.password:}")
- private String password;
- @Value("${erp.k3cloud.org-number:100}")
- private String orgNumber;
- @Value("${erp.k3cloud.filter-current-org:false}")
- private boolean filterCurrentOrg;
- @Value("${erp.k3cloud.inventory-category-filter-enabled:false}")
- private boolean inventoryCategoryFilterEnabled;
- @Value("${erp.k3cloud.inventory-category-field:}")
- private String inventoryCategoryField;
- /** 生产订单可见物料编码(逗号分隔,替代存货类别过滤) */
- @Value("${erp.k3cloud.production-order.material-numbers:}")
- private String productionOrderMaterialNumbers;
- @Value("${erp.k3cloud.lcid:2052}")
- private int lcid;
- /** 生产领料单单据类型编码,Apifox 验证后配置 */
- @Value("${erp.k3cloud.pick-mtrl.bill-type:SCLLD01_SYS}")
- private String pickMtrlBillType;
- /** 库存状态编码(如「可用」) */
- @Value("${erp.k3cloud.pick-mtrl.stock-status:KCZT01_SYS}")
- private String pickMtrlStockStatus;
- @Value("${erp.k3cloud.pick-mtrl.owner-type:BD_OwnerOrg}")
- private String pickMtrlOwnerType;
- @Value("${erp.k3cloud.pick-mtrl.keeper-type:BD_KeeperOrg}")
- private String pickMtrlKeeperType;
- @Value("${erp.k3cloud.pick-mtrl.link-rule:PRD_PPBOM2PICKMTRL_NORMAL}")
- private String pickMtrlLinkRule;
- @Value("${erp.k3cloud.pick-mtrl.link-table:T_PRD_PPBOMENTRY}")
- private String pickMtrlLinkTable;
- /** MES 线边库位 ID(优先);未配置则按 mes-kw-title 查找或自动创建 */
- @Value("${erp.k3cloud.pick-mtrl.mes-kw-id:}")
- private String pickMtrlMesKwId;
- @Value("${erp.k3cloud.pick-mtrl.mes-kw-title:ERP线边库}")
- private String pickMtrlMesKwTitle;
- @Value("${erp.k3cloud.pick-mtrl.mes-ck-name:ERP线边仓}")
- private String pickMtrlMesCkName;
- /** 标准采购订单单据类型编码 */
- @Value("${erp.k3cloud.purchase-order.bill-type:CGDD01_SYS}")
- private String purchaseOrderBillType;
- /** 标准采购入库单单据类型编码 */
- @Value("${erp.k3cloud.in-stock.bill-type:RKD01_SYS}")
- private String inStockBillType;
- @Value("${erp.k3cloud.in-stock.business-type:CG}")
- private String inStockBusinessType;
- @Value("${erp.k3cloud.in-stock.stock-number:1100105}")
- private String inStockStockNumber;
- @Value("${erp.k3cloud.in-stock.stock-status:KCZT01_SYS}")
- private String inStockStockStatus;
- @Value("${erp.k3cloud.in-stock.owner-type:BD_OwnerOrg}")
- private String inStockOwnerType;
- @Value("${erp.k3cloud.in-stock.keeper-type:BD_KeeperOrg}")
- private String inStockKeeperType;
- @Value("${erp.k3cloud.in-stock.link-rule:PUR_PurchaseOrder-STK_InStock}")
- private String inStockLinkRule;
- @Value("${erp.k3cloud.in-stock.link-table:t_PUR_POOrderEntry}")
- private String inStockLinkTable;
- @Value("${erp.k3cloud.in-stock.settle-currency:PRE001}")
- private String inStockSettleCurrency;
- @Value("${erp.k3cloud.in-stock.price-time-point:1}")
- private String inStockPriceTimePoint;
- /** 五金库仓位:FStockLocId.F100004 */
- @Value("${erp.k3cloud.in-stock.stock-loc-key:F100004}")
- private String inStockStockLocKey;
- @Value("${erp.k3cloud.in-stock.stock-loc-number:}")
- private String inStockStockLocNumber;
- /** 直接调拨单 STK_TransferDirect 单据类型 */
- @Value("${erp.k3cloud.transfer-direct.bill-type:ZJDB01_SYS}")
- private String transferDirectBillType;
- /** 直接调拨单固定物料范围(HEV / 115) */
- @Value("${erp.k3cloud.transfer-direct.material-numbers:8.10.HEV.10.047696,8.35.115.10.5003146600021}")
- private String transferDirectMaterialNumbers;
- @Value("${erp.k3cloud.transfer-direct.transfer-biz-type:InnerOrgTransfer}")
- private String transferDirectBizType;
- @Value("${erp.k3cloud.transfer-direct.transfer-direct-type:GENERAL}")
- private String transferDirectDirection;
- /** 调拨类别:3=外发调拨 */
- @Value("${erp.k3cloud.transfer-direct.transfer-category:3}")
- private String transferDirectCategory;
- @Value("${erp.k3cloud.transfer-direct.bill-sign-status:A}")
- private String transferDirectBillSignStatus;
- @Value("${erp.k3cloud.transfer-direct.stock-status:KCZT01_SYS}")
- private String transferDirectStockStatus;
- @Value("${erp.k3cloud.transfer-direct.owner-type:BD_OwnerOrg}")
- private String transferDirectOwnerType;
- @Value("${erp.k3cloud.transfer-direct.keeper-type:BD_KeeperOrg}")
- private String transferDirectKeeperType;
- @Value("${erp.k3cloud.transfer-direct.default-src-stock-number:}")
- private String transferDirectDefaultSrcStockNumber;
- @Value("${erp.k3cloud.transfer-direct.default-dest-stock-number:}")
- private String transferDirectDefaultDestStockNumber;
- /** 生产入库单 PRD_INSTOCK 固定物料范围(HEV / 115,与直接调拨单一致) */
- @Value("${erp.k3cloud.prd-in-stock.material-numbers:8.10.HEV.10.047696,8.35.115.10.5003146600021}")
- private String prdInStockMaterialNumbers;
- @Value("${erp.k3cloud.prd-in-stock.bill-type:SCRKD01_SYS}")
- private String prdInStockBillType;
- @Value("${erp.k3cloud.prd-in-stock.in-stock-type:1}")
- private String prdInStockInStockType;
- @Value("${erp.k3cloud.prd-in-stock.stock-status:KCZT01_SYS}")
- private String prdInStockStockStatus;
- @Value("${erp.k3cloud.prd-in-stock.owner-type:BD_OwnerOrg}")
- private String prdInStockOwnerType;
- @Value("${erp.k3cloud.prd-in-stock.keeper-type:BD_KeeperOrg}")
- private String prdInStockKeeperType;
- @Value("${erp.k3cloud.prd-in-stock.default-stock-number:}")
- private String prdInStockDefaultStockNumber;
- public String getBaseUrl() {
- if (baseUrl.endsWith("/")) {
- return baseUrl.substring(0, baseUrl.length() - 1);
- }
- return baseUrl;
- }
- public String getAcctId() {
- return acctId;
- }
- public String getUsername() {
- return username;
- }
- public String getPassword() {
- return password;
- }
- public String getOrgNumber() {
- return orgNumber;
- }
- public boolean isFilterCurrentOrg() {
- return filterCurrentOrg;
- }
- public boolean isInventoryCategoryFilterEnabled() {
- return inventoryCategoryFilterEnabled;
- }
- public String getInventoryCategoryField() {
- return inventoryCategoryField;
- }
- /**
- * 生产订单列表/选单可见物料编码;未配置时与生产入库物料范围一致。
- */
- public java.util.List<String> getProductionOrderMaterialNumbers() {
- java.util.List<String> configured = parseMaterialNumbers(productionOrderMaterialNumbers);
- if (!configured.isEmpty()) {
- return configured;
- }
- return getPrdInStockMaterialNumbers();
- }
- public boolean isAllowedProductionOrderMaterial(String materialNumber) {
- if (StringUtils.isBlank(materialNumber)) {
- return false;
- }
- String trimmed = materialNumber.trim();
- for (String allowed : getProductionOrderMaterialNumbers()) {
- if (trimmed.equals(allowed)) {
- return true;
- }
- }
- return false;
- }
- public boolean isProductionOrderMaterialFilterEnabled() {
- return !getProductionOrderMaterialNumbers().isEmpty();
- }
- public int getLcid() {
- return lcid;
- }
- public String getPickMtrlBillType() {
- return pickMtrlBillType;
- }
- public String getPickMtrlStockStatus() {
- return pickMtrlStockStatus;
- }
- public String getPickMtrlOwnerType() {
- return pickMtrlOwnerType;
- }
- public String getPickMtrlKeeperType() {
- return pickMtrlKeeperType;
- }
- public String getPickMtrlLinkRule() {
- return pickMtrlLinkRule;
- }
- public String getPickMtrlLinkTable() {
- return pickMtrlLinkTable;
- }
- public String getPickMtrlMesKwId() {
- return pickMtrlMesKwId;
- }
- public String getPickMtrlMesKwTitle() {
- return pickMtrlMesKwTitle;
- }
- public String getPickMtrlMesCkName() {
- return pickMtrlMesCkName;
- }
- public String getPurchaseOrderBillType() {
- return purchaseOrderBillType;
- }
- public String getInStockBillType() {
- return inStockBillType;
- }
- public String getInStockBusinessType() {
- return inStockBusinessType;
- }
- public String getInStockStockNumber() {
- return inStockStockNumber;
- }
- public String getInStockStockStatus() {
- return inStockStockStatus;
- }
- public String getInStockOwnerType() {
- return inStockOwnerType;
- }
- public String getInStockKeeperType() {
- return inStockKeeperType;
- }
- public String getInStockLinkRule() {
- return inStockLinkRule;
- }
- public String getInStockLinkTable() {
- return inStockLinkTable;
- }
- public String getInStockSettleCurrency() {
- return inStockSettleCurrency;
- }
- public String getInStockPriceTimePoint() {
- return inStockPriceTimePoint;
- }
- public String getInStockStockLocKey() {
- return inStockStockLocKey;
- }
- public String getInStockStockLocNumber() {
- return inStockStockLocNumber;
- }
- public String getTransferDirectBillType() {
- return transferDirectBillType;
- }
- public java.util.List<String> getTransferDirectMaterialNumbers() {
- return parseMaterialNumbers(transferDirectMaterialNumbers);
- }
- public boolean isAllowedTransferDirectMaterial(String materialNumber) {
- if (StringUtils.isBlank(materialNumber)) {
- return false;
- }
- String trimmed = materialNumber.trim();
- for (String allowed : getTransferDirectMaterialNumbers()) {
- if (trimmed.equals(allowed)) {
- return true;
- }
- }
- return false;
- }
- public String getTransferDirectBizType() {
- return transferDirectBizType;
- }
- public String getTransferDirectDirection() {
- return transferDirectDirection;
- }
- public String getTransferDirectCategory() {
- return transferDirectCategory;
- }
- public String getTransferDirectBillSignStatus() {
- return transferDirectBillSignStatus;
- }
- public String getTransferDirectStockStatus() {
- return transferDirectStockStatus;
- }
- public String getTransferDirectOwnerType() {
- return transferDirectOwnerType;
- }
- public String getTransferDirectKeeperType() {
- return transferDirectKeeperType;
- }
- public String getTransferDirectDefaultSrcStockNumber() {
- return transferDirectDefaultSrcStockNumber;
- }
- public String getTransferDirectDefaultDestStockNumber() {
- return transferDirectDefaultDestStockNumber;
- }
- public java.util.List<String> getPrdInStockMaterialNumbers() {
- return parseMaterialNumbers(prdInStockMaterialNumbers);
- }
- public boolean isAllowedPrdInStockMaterial(String materialNumber) {
- if (StringUtils.isBlank(materialNumber)) {
- return false;
- }
- String trimmed = materialNumber.trim();
- for (String allowed : getPrdInStockMaterialNumbers()) {
- if (trimmed.equals(allowed)) {
- return true;
- }
- }
- return false;
- }
- public String getPrdInStockBillType() {
- return prdInStockBillType;
- }
- public String getPrdInStockInStockType() {
- return prdInStockInStockType;
- }
- public String getPrdInStockStockStatus() {
- return prdInStockStockStatus;
- }
- public String getPrdInStockOwnerType() {
- return prdInStockOwnerType;
- }
- public String getPrdInStockKeeperType() {
- return prdInStockKeeperType;
- }
- public String getPrdInStockDefaultStockNumber() {
- return prdInStockDefaultStockNumber;
- }
- private java.util.List<String> parseMaterialNumbers(String materialNumbers) {
- java.util.List<String> list = new java.util.ArrayList<>();
- if (StringUtils.isBlank(materialNumbers)) {
- return list;
- }
- for (String part : materialNumbers.split(",")) {
- if (StringUtils.isNotBlank(part)) {
- list.add(part.trim());
- }
- }
- return list;
- }
- /**
- * 判断所选仓库是否需要填写仓位(当前按配置仓库 + 仓位维度键判断)。
- */
- public boolean requiresStockLocation(String stockNumber) {
- if (StringUtils.isBlank(stockNumber) || StringUtils.isBlank(inStockStockLocKey)) {
- return false;
- }
- return StringUtils.isNotBlank(inStockStockNumber) && inStockStockNumber.trim().equals(stockNumber.trim());
- }
- /**
- * 仓位维度在 Save 接口中的字段名(F100004 → FSTOCKLOCID__FF100004)。
- */
- public String toStockLocSaveKey(String locKey) {
- String key = StringUtils.isBlank(locKey) ? inStockStockLocKey : locKey.trim();
- if (StringUtils.isBlank(key)) {
- return "FSTOCKLOCID__FF100004";
- }
- if (key.startsWith("FSTOCKLOCID__")) {
- return key;
- }
- if (key.startsWith("F")) {
- return "FSTOCKLOCID__F" + key;
- }
- return "FSTOCKLOCID__FF" + key;
- }
- }
|