| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | @Slf4j |
| | |
| | | @Value("${erp.switch.LoginAuthenticationSwitch}") |
| | | private boolean LoginAuthenticationSwitch; |
| | | |
| | | //@Scheduled(cron = "0/3 * * * * ? ") |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | void login(){ |
| | | if(!LoginAuthenticationSwitch){ |
| | | return; |
| | |
| | | @Value("${erp.switch.ReviewOrderSwitch}") |
| | | private boolean ReviewOrderSwitch; |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | | public void completeAndReport(){ |
| | | if(!ReviewOrderSwitch){ |
| | |
| | | @Value("${erp.switch.ReviewOrderSwitch}") |
| | | private boolean ReviewOrderSwitch; |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | | public void completeAndReport(){ |
| | | if(!ReviewOrderSwitch){ |
| | |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.service.impl.ErpSecretServiceImpl; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import com.zy.erp.kingdee.entity.param.InFormIdParam; |
| | | import com.zy.erp.kingdee.entity.param.MatLoadParam; |
| | | import com.zy.erp.kingdee.enums.KingDeeUtilType; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.erp.kingdee.utils.KingDeeUtil; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | |
| | | @Autowired |
| | | private LocOwnerService locOwnerService; |
| | | |
| | | @Autowired |
| | | private ErpSecretServiceImpl erpSecretService; |
| | | @Value("${erp.login.accountId}") |
| | | private String accountId; |
| | | @Value("${erp.login.xAcfwIdentity}") |
| | | private String xAcfwIdentity; |
| | | @Transactional |
| | | public synchronized ReturnT<String> start() { |
| | | SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | //登录金蝶 |
| | | ReturnT<String> start = loginAuthenticationHandler.start(); |
| | | SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd"); |
| | | //读取token |
| | | ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId)); |
| | | |
| | | |
| | | for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) { |
| | | InFormIdParam inFormIdParam = new InFormIdParam(); |
| | | MatLoadParam matLoadParam = new MatLoadParam(); |
| | | DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc)); |
| | | if (Cools.isEmpty(docType) && !kingDeeUtilType.formId.equals("BD_MATERIAL")){ |
| | | docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1)); |
| | | } |
| | | inFormIdParam.setFormId(kingDeeUtilType.formId); |
| | | inFormIdParam.setLimit(100); |
| | | inFormIdParam.setStartRow("0"); |
| | | String FDocumentStatus=null; |
| | | |
| | | //条件和需要获得的结果拼接 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("FormId", inFormIdParam.getFormId()); |
| | | jsonObject.put("Limit", inFormIdParam.getLimit()); |
| | | jsonObject.put("StartRow", inFormIdParam.getStartRow()); |
| | | //物料档案查询 |
| | | if(kingDeeUtilType.formId.equals("BD_MATERIAL")){ |
| | | Tag tag = tagService.selectByName("全部", 1); |
| | | //物料状态 FUseOrgId .FNumber |
| | | FDocumentStatus="C"; |
| | | jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='100'"); |
| | | jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus"); |
| | | // FName : 物料名称 ; |
| | | // FNumber :物料编号; |
| | | // FCreateDate :物料创建时间; |
| | | // FSpecification :物料规格; |
| | | // FDocumentStatus :物料状态 |
| | | jsonObject.put("id", null);//id |
| | | jsonObject.put("number", null);//编码 |
| | | jsonObject.put("createorg_number", null);//创建组织 |
| | | jsonObject.put("start_createtime", "2025-01-01 00:00:00");//创建起始 |
| | | jsonObject.put("end_createtime", sdf1.format(new Date()));//创建截止 |
| | | jsonObject.put("start_modifytime", "2025-01-01 00:00:00");//更新起始 |
| | | jsonObject.put("end_modifytime", sdf1.format(new Date()));//更新截止 |
| | | jsonObject.put("start_approvedate", "2025-01-01");//审核起始 |
| | | jsonObject.put("end_approvedate", sdf2.format(new Date()));//审核截止 |
| | | jsonObject.put("status", Arrays.asList("B", "C"));//数据状态 [A:暂存, B:已提交, C:已审核] |
| | | |
| | | }else{ |
| | | //获取最新时间 |
| | | //单据状态 |
| | | FDocumentStatus="B"; |
| | | jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"'"+" and FStockId.Fname='立库'"+" and FDocumentStatus='"+FDocumentStatus+"'"); |
| | | jsonObject.put("FilterString", "FCreateDate>'"+sdf1.format(docType.getCreateTime())+"'"+" and FStockId.Fname='立库'"+" and FDocumentStatus='"+FDocumentStatus+"'"); |
| | | jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+kingDeeUtilType.anfme+",FDocumentStatus"); |
| | | // FBillNo :单据编号; |
| | | // FCreateDate :单据创建时间; |
| | |
| | | } |
| | | JSONObject jsonObject1 = new JSONObject(); |
| | | jsonObject1.put("data", jsonObject); |
| | | jsonObject1.put("pageSize", 10); |
| | | jsonObject1.put("pageNo", 1); |
| | | String add = jsonObject1.toJSONString(); |
| | | |
| | | //上报 |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | //获取Cookie值 |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Cookie", start.getContent()); |
| | | headers.put("accesstoken", erpSecret.getAccessToken()); |
| | | headers.put("x-acgw-identity", xAcfwIdentity); // 自定义请求头 |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(headers) |
| | | .setUri(URL) |
| | |
| | | .setJson(add) |
| | | .build() |
| | | .doPost(); |
| | | JSONArray data = JSON.parseArray(response); |
| | | JSONObject jsonResponse = JSON.parseObject(response); |
| | | if(jsonResponse.getString("errorCode").equals("401")){ |
| | | log.error("检索失败错误信息:{}", jsonResponse.getString("message")); |
| | | loginAuthenticationHandler.start(); |
| | | continue; |
| | | } |
| | | JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows"); |
| | | if(data.size()<=0) continue; |
| | | if (data.getJSONArray(0).get(0).toString().length()>=20) continue; |
| | | if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {//物料档案 |
| | | //商品档案同步 |
| | | if (kingDeeUtilType.formId.equals("BD_MATERIAL")) { |
| | | Tag tag = tagService.selectByName("全部", 1); |
| | | for (int j = 0; j < data.size(); j++) { |
| | | JSONArray jsonArray = data.getJSONArray(j); |
| | | //对美国时间进行转换 |
| | | Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString()); |
| | | //生成商品档案 |
| | | //商品编号 |
| | | Mat mat = matService.selectByMatnr(jsonArray.get(1).toString()); |
| | | if (mat == null) { |
| | | mat = new Mat(); |
| | | mat.setMatnr(jsonArray.get(1).toString()); |
| | | mat.setMaktx(jsonArray.get(0).toString()); |
| | | mat.setSpecs(jsonArray.get(3).toString());//规格 |
| | | mat.setTagId(tag.getId()); |
| | | mat.setCreateTime(jsonDate);//商品创建时间 |
| | | mat.setUpdateTime(new Date()); |
| | | mat.setStatus(1); |
| | | //最新抓取商品时间 |
| | | if (!matService.insert(mat)) { |
| | | // throw new CoolException("服务器内部错误,请联系管理员"); |
| | | callApiLogSaveMat(mat,kingDeeUtilType, "同步新物料出错!!!"+mat, false); |
| | | log.info("同步新物料出错!!!参数:[{}]、[{}]",mat,jsonArray); |
| | | |
| | | // 处理分页:根据返回的totalCount和pageSize计算页数 |
| | | int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize"); |
| | | int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount"); |
| | | int totalPages = (int) Math.ceil((double) totalCount / pageSize); |
| | | |
| | | for (int page = 1; page <= totalPages; page++) { |
| | | jsonObject1.put("pageNo", page); |
| | | add = jsonObject1.toJSONString(); |
| | | // 重新发起请求以获取该页的数据 |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(headers) |
| | | .setUri(URL) |
| | | .setPath(inaddress) |
| | | .setJson(add) |
| | | .build() |
| | | .doPost(); |
| | | |
| | | jsonResponse = JSON.parseObject(response); |
| | | data = jsonResponse.getJSONObject("data").getJSONArray("rows"); |
| | | for (int j = 0; j < data.size(); j++) { |
| | | JSONObject jsonObjectNew = data.getJSONObject(j); |
| | | Date modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString()); |
| | | String matnr = jsonObjectNew.get("number").toString(); |
| | | String name = jsonObjectNew.get("name").toString(); |
| | | String createtime = jsonObjectNew.get("createtime").toString(); |
| | | Double grossweight = jsonObjectNew.get("grossweight") != null ? new BigDecimal(jsonObjectNew.get("grossweight").toString()).doubleValue() : 0.0; |
| | | Double height = jsonObjectNew.get("height") != null ? new BigDecimal(jsonObjectNew.get("height").toString()).doubleValue() : 0.0; |
| | | Double width = jsonObjectNew.get("width") != null ? new BigDecimal(jsonObjectNew.get("width").toString()).doubleValue() : 0.0; |
| | | Double length = jsonObjectNew.get("length") != null ? new BigDecimal(jsonObjectNew.get("length").toString()).doubleValue() : 0.0; |
| | | |
| | | // 生成商品档案 |
| | | Mat mat = matService.selectByMatnr(matnr); |
| | | if (mat == null) { |
| | | mat = new Mat(); |
| | | mat.setMatnr(matnr); |
| | | mat.setMaktx(name); |
| | | mat.setTagId(tag.getId()); |
| | | mat.setWeight(grossweight); |
| | | mat.setManLength(length); |
| | | mat.setHeight(height); |
| | | mat.setWidth(width); |
| | | mat.setCreateTime(sdf1.parse(createtime)); |
| | | mat.setUpdateTime(modifyTime); |
| | | mat.setStatus(1); |
| | | if (!matService.insert(mat)) { |
| | | callApiLogSaveMat(mat, kingDeeUtilType, "同步新物料出错!" + mat, false); |
| | | log.info("同步新物料出错!参数:[{}]、[{}]", mat, jsonObjectNew); |
| | | } else { |
| | | callApiLogSaveMat(mat, kingDeeUtilType, "同步新物料成功!", true); |
| | | } |
| | | } else { |
| | | callApiLogSaveMat(mat,kingDeeUtilType, "同步新物料!", true); |
| | | // log.info("同步新物料[商品编号:{}]", mat.getMatnr()); |
| | | } |
| | | }else { |
| | | if (!jsonDate.equals(tag.getUpdateTime())){ |
| | | callApiLogSaveMat(mat,kingDeeUtilType, "商品编号重复:"+mat.getMatnr(), false); |
| | | log.info("同步新物料[商品编号:{}],商品编号重复!!!", mat.getMatnr()); |
| | | boolean isUpdated = false; |
| | | if (mat.getUpdateTime().compareTo(modifyTime) != 0) { |
| | | // 更新字段 |
| | | if (!mat.getMaktx().equals(name)) mat.setMaktx(name); |
| | | if (mat.getWeight().compareTo(grossweight) != 0) mat.setWeight(grossweight); |
| | | if (mat.getManLength().compareTo(length) != 0) mat.setManLength(length); |
| | | if (mat.getHeight().compareTo(height) != 0) mat.setHeight(height); |
| | | if (mat.getWidth().compareTo(width) != 0) mat.setWidth(width); |
| | | if (mat.getCreateTime().compareTo(sdf1.parse(createtime)) != 0) |
| | | mat.setCreateTime(sdf1.parse(createtime)); |
| | | mat.setUpdateTime(modifyTime); |
| | | isUpdated = true; |
| | | } |
| | | // 执行更新操作 |
| | | if (isUpdated) { |
| | | mat.setUpdateTime(new Date()); |
| | | if (!matService.updateById(mat)) { |
| | | callApiLogSaveMat(mat, kingDeeUtilType, "更新物料出错!" + mat, false); |
| | | log.info("更新物料[商品编号:{}], 更新失败!", mat.getMatnr()); |
| | | } else { |
| | | callApiLogSaveMat(mat, kingDeeUtilType, "更新物料成功!", true); |
| | | log.info("更新物料[商品编号:{}]", mat.getMatnr()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | tag.setUpdateTime(jsonDate); |
| | | } |
| | | tagService.updateById(tag); |
| | | }else if(kingDeeUtilType.formId.equals("BD_RRGANIZATION")){ |
| | | |
| | | } else { |
| | | for (int j = 0; j < data.size(); j++) { |
| | | JSONArray jsonArray = data.getJSONArray(j); |
| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.ErpSecret; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.impl.ErpSecretServiceImpl; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.utils.HttpHandler; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | @Service |
| | |
| | | //登录地址 |
| | | private String loginaddress; |
| | | |
| | | @Value("${erp.login.acctID}") |
| | | //账号ID |
| | | private String acctID; |
| | | @Value("${erp.login.clientId}") |
| | | //WMS端ID |
| | | private String clientId; |
| | | |
| | | @Value("${erp.login.clientSecret}") |
| | | //账号密钥 |
| | | private String clientSecret; |
| | | |
| | | @Value("${erp.login.username}") |
| | | //账号 |
| | | private String username; |
| | | |
| | | @Value("${erp.login.password}") |
| | | //密码 |
| | | private String password; |
| | | @Value("${erp.login.accountId}") |
| | | private String accountId; |
| | | |
| | | @Value("${erp.login.lcid}") |
| | | // |
| | | private Integer lcid; |
| | | @Value("${erp.login.xAcfwIdentity}") |
| | | private String xAcfwIdentity; |
| | | |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private ErpSecretServiceImpl erpSecretService; |
| | | |
| | | /** |
| | | * 45分钟登录一次金蝶系统 |
| | |
| | | */ |
| | | @Transactional |
| | | public synchronized ReturnT<String> start() { |
| | | ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId)); |
| | | String time = String.valueOf(System.currentTimeMillis()); |
| | | // 创建请求参数 |
| | | JSONObject requestPayload = new JSONObject(); |
| | | requestPayload.put("client_id", clientId); |
| | | requestPayload.put("client_secret", clientSecret); |
| | | requestPayload.put("username", username); |
| | | requestPayload.put("accountId", accountId); |
| | | requestPayload.put("nonce", erpSecret.getRefreshToken());//刷新token |
| | | requestPayload.put("timestamp", time); |
| | | requestPayload.put("language", "zh_CN"); |
| | | |
| | | LoginParam loginParam =new LoginParam(); |
| | | loginParam.setAcctID(acctID); |
| | | loginParam.setUsername(username); |
| | | loginParam.setPassword(password); |
| | | loginParam.setLcid(lcid); |
| | | //上报 |
| | | // 创建请求头 |
| | | Map<String, Object> headers = new HashMap<>(); |
| | | headers.put("x-acgw-identity", xAcfwIdentity); // 自定义请求头 |
| | | headers.put("Content-Type", "application/json;charset=UTF-8"); |
| | | String response = ""; |
| | | String cookie = ""; |
| | | boolean success = false; |
| | | String accessToken = ""; |
| | | try { |
| | | // 使用 HttpHandler 发起请求 |
| | | response = new HttpHandler.Builder() |
| | | .setUri(URL) |
| | | .setPath(loginaddress) |
| | | .setJson(JSON.toJSONString(loginParam)) |
| | | .setPath(loginaddress) // 登录接口路径 |
| | | .setJson(requestPayload.toJSONString()) // 请求体 |
| | | .setHeaders(headers) // 设置请求头 |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | Object sessionId = findValueByKey(JSON.parseObject(response), "SessionId"); |
| | | cookie="ASP.NET_SessionId="+sessionId+";"+"kdservice-sessionid="+jsonObject.getString("KDSVCSessionId"); |
| | | if (Cools.isEmpty(jsonObject.getString("Message"))) { |
| | | .doPost(); // 执行POST请求 |
| | | // 解析返回结果 |
| | | JSONObject jsonResponse = JSON.parseObject(response); |
| | | // 判断请求是否成功 |
| | | if (jsonResponse.getBooleanValue("status")) { |
| | | accessToken = jsonResponse.getJSONObject("data").getString("access_token"); |
| | | String refreshToken = jsonResponse.getJSONObject("data").getString("refresh_token"); |
| | | success = true; |
| | | erpSecret.setRefreshToken(refreshToken); |
| | | erpSecret.setAccessToken(accessToken); |
| | | if(erpSecretService.saveErpSecret(erpSecret)){ |
| | | log.info("获取更新Token成功: {}", accessToken); |
| | | } |
| | | } else { |
| | | callApiLogSaveLog(JSON.toJSONString(loginParam),false); |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", URL+loginaddress, JSON.toJSONString(loginParam), response); |
| | | // throw new CoolException("登录金蝶失败"); |
| | | log.error("获取Token失败,错误信息:{}", jsonResponse.getString("message")); |
| | | callApiLogSaveLog(requestPayload.toJSONString(), false); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | | callApiLogSaveLog(JSON.toJSONString(loginParam),false); |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", URL+loginaddress, JSON.toJSONString(loginParam), response); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | log.error("获取Token失败,异常信息:", e); |
| | | callApiLogSaveLog(requestPayload.toJSONString(), false); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | // try { |
| | | // // 保存接口日志 |
| | | // apiLogService.save( |
| | | // "登录金蝶", |
| | | // URL + loginaddress, |
| | | // null, |
| | | // "127.0.0.1", |
| | | // JSON.toJSONString(loginParam), |
| | | // response, |
| | | // success |
| | | // ); |
| | | // } catch (Exception e) { log.error("", e); } |
| | | } |
| | | return SUCCESS.setContent(cookie); |
| | | |
| | | if (!success) { |
| | | return FAIL.setMsg("Token获取失败"); |
| | | } |
| | | |
| | | return SUCCESS.setContent(accessToken); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 递归查找JSON中的指定字段 |
| | | */ |
| | | public static Object findValueByKey(JSONObject json, String key) { |
| | | Set<String> keySet = json.keySet(); |
| | | for (String k : keySet) { |
| | |
| | | return v; |
| | | } else if (v instanceof JSONArray) { |
| | | int size = ((JSONArray) v).size(); |
| | | for (int i = 0; i <= size - 1; i++) { |
| | | for (int i = 0; i < size; i++) { |
| | | Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key); |
| | | if (result != null){ |
| | | return result; |
| | | } |
| | | } |
| | | } else if (v instanceof JSONObject){ |
| | | } else if (v instanceof JSONObject) { |
| | | Object result = findValueByKey((JSONObject) v, key); |
| | | if (result != null){ |
| | | if (result != null) { |
| | | return result; |
| | | } |
| | | } |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 保存API日志 |
| | | */ |
| | | public void callApiLogSaveLog(String response, Boolean bool) { |
| | | apiLogService.save("登录金蝶失败", URL, "null", loginaddress, |
| | | "套账ID:"+acctID+"、账号:"+username+"、密码:"+password, |
| | | apiLogService.save("登录金蝶失败", URL, "端口", loginaddress, |
| | | "账号Id:"+accountId+"、用户端Id:"+clientId+"、用户密钥:"+clientSecret+"、username:"+username+"、refresh_token:", |
| | | response, bool); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | generator.url="10.10.10.235:1433;databasename=jshdasrs"; |
| | | generator.username="sa"; |
| | | generator.password="sa@123"; |
| | | generator.table="asr_bas_rgv_error_log"; |
| | | generator.table="sys_erp_secret"; |
| | | generator.packagePath="com.zy.asrs"; |
| | | generator.build(); |
| | | } |
| | |
| | | int[] params = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber); |
| | | curRow = params[1]; |
| | | int crnNo = params[2]; |
| | | if (!basCrnpService.checkSiteError(crnNo, true)) { |
| | | attempt++; |
| | | continue; |
| | | } |
| | | // if (!basCrnpService.checkSiteError(crnNo, true)) { |
| | | // attempt++; |
| | | // continue; |
| | | // } |
| | | int rowCount = params[0]; |
| | | int nearRow = params[3]; |
| | | |
| | |
| | | |
| | | @Data |
| | | public class LoginParam { |
| | | //账号ID |
| | | private String acctID; |
| | | //服务端 |
| | | private String appId; |
| | | |
| | | //账号 |
| | | private String username; |
| | | //账号密钥 |
| | | private String appSecret; |
| | | |
| | | //密码 |
| | | private String password; |
| | | //账户id |
| | | private String accountId; |
| | | |
| | | // |
| | | private Integer lcid; |
| | | private String tenantid; |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.erp.kingdee.entity.param; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class MatLoadParam { |
| | | |
| | | // id 字段,包含多个 id |
| | | private ArrayList<String> id; |
| | | |
| | | // 编码字段,包含多个编码 |
| | | private ArrayList<String> number; |
| | | |
| | | // 创建组织编码,包含多个组织编码 |
| | | private ArrayList<String> createorgNumber; |
| | | |
| | | // 创建起始日期 |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date startCreatetime; |
| | | |
| | | // 创建截止日期 |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date endCreatetime; |
| | | |
| | | // 修改起始日期 |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date startModifytime; |
| | | |
| | | // 修改截止日期 |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date endModifytime; |
| | | |
| | | // 审核起始日期 |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | private Date startApprovedate; |
| | | |
| | | // 审核截止日期 |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | private Date endApprovedate; |
| | | |
| | | // 数据状态 [A:暂存, B:已提交, C:已审核],包含多个状态 |
| | | private ArrayList<String> status; |
| | | |
| | | // 分页参数,分页数量 |
| | | private Integer pageSize; |
| | | |
| | | // 分页参数,查询页码 |
| | | private Integer pageNo; |
| | | |
| | | public MatLoadParam() { |
| | | this.pageSize = 10; // 默认分页数量 |
| | | this.pageNo = 1; // 默认查询页码 |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | public enum KingDeeUtilType { |
| | | BD_MATERIAL(0, "物料档案","BD_MATERIAL","","","",1), |
| | | // STK_InStock(1, "采购入库单","STK_InStock","FRealQty","","",1), |
| | | // BD_RRGANIZATION(1, "货主","BD_MATERIAL","","","",1), |
| | | |
| | | // STK_InStock(1, "采购入库单","STK_InStock","FRealQty","","",1), |
| | | // PUR_MRB(2, "采购退料单","PUR_MRB","FRMREALQTY","","",1), |
| | | // PRD_PickMtrl(3, "生产领料单","PRD_PickMtrl","FActualQty","","",1), |
| | | // PRD_ReturnMtrl(4, "生产退料单","PRD_ReturnMtrl","FQty","","",1), |
| | |
| | | // SP_ReturnMtrl(11, "简单生产退料单","SP_ReturnMtrl","FQty","","",1), |
| | | // SAL_OUTSTOCK(12, "销售出库单","SAL_OUTSTOCK","FRealQty","","",1), |
| | | // SAL_RETURNSTOCK(13, "销售退货单","SAL_RETURNSTOCK","FRealQty","","",1), |
| | | SAL_DELIVERYNOTICE(14, "发货通知单","SAL_DELIVERYNOTICE","FQty","销售出库单","SAL_OUTSTOCK",0), |
| | | STK_MISCELLANEOUS(15, "其他入库单","STK_MISCELLANEOUS","FQty","其他入库单","STK_MISCELLANEOUS",1), |
| | | // SAL_DELIVERYNOTICE(14, "发货通知单","SAL_DELIVERYNOTICE","FQty","销售出库单","SAL_OUTSTOCK",0), |
| | | // STK_MISCELLANEOUS(15, "其他入库单","STK_MISCELLANEOUS","FQty","其他入库单","STK_MISCELLANEOUS",1), |
| | | // BD_Supplier(16, "供应商","BD_Supplier","","","",1), |
| | | PUR_ReceiveBill(17, "收料通知单","PUR_ReceiveBill","FPOQTY","采购入库单","STK_InStock",1), |
| | | PRD_MORPT(18, "生产汇报单","PRD_MORPT","FFinishQty","生产入库单","PRD_INSTOCK",1), |
| | | // PUR_ReceiveBill(17, "收料通知单","PUR_ReceiveBill","FPOQTY","采购入库单","STK_InStock",1), |
| | | // PRD_MORPT(18, "生产汇报单","PRD_MORPT","FFinishQty","生产入库单","PRD_INSTOCK",1), |
| | | // PRD_INSTOCK(19, "生产入库单","PRD_INSTOCK","","","",1), |
| | | SAL_RETURNNOTICE(20, "退货通知单","SAL_RETURNNOTICE","FBaseJunkedQty","销售退货单","SAL_RETURNSTOCK",1), |
| | | STK_OutStockApply(21, "出库申请单","STK_OutStockApply","FTotalSecQty","其他出库单","STK_MisDelivery",0), |
| | | // SAL_RETURNNOTICE(20, "退货通知单","SAL_RETURNNOTICE","FBaseJunkedQty","销售退货单","SAL_RETURNSTOCK",1), |
| | | // STK_OutStockApply(21, "出库申请单","STK_OutStockApply","FTotalSecQty","其他出库单","STK_MisDelivery",0), |
| | | ; |
| | | public Integer id; |
| | | public String desc; |
| | |
| | | enabled: false |
| | | datasource: |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | # url: jdbc:sqlserver://127.0.0.1:49847;databasename=jshdasrs |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs |
| | | # url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs |
| | | url: jdbc:sqlserver://10.10.10.235;databasename=jshdasrs |
| | | # url: jdbc:sqlserver://192.168.4.191:50948;databasename=jshdasrs |
| | | username: sa |
| | | password: sa@123 |
| | |
| | | # 开关 |
| | | switch: |
| | | #计时器上报开关 |
| | | ErpReportOld: true |
| | | ErpReportOld: false |
| | | #获取单据开关 |
| | | InboundOrderSwitch: false |
| | | InboundOrderSwitch: true |
| | | #登录接口开关 |
| | | LoginAuthenticationSwitch: false |
| | | LoginAuthenticationSwitch: true |
| | | #上报、审核单据开关 |
| | | ReviewOrderSwitch: false |
| | | # 地址 |
| | | address: |
| | | URL: http://58.210.10.90:28090 |
| | | URL: https://shyucheng.test.kdgalaxy.com/ |
| | | #登录地址 |
| | | loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc |
| | | #单据,商品档案地址 |
| | | inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc |
| | | loginaddress: /kapi/oauth2/getToken |
| | | #商品档案地址 |
| | | inaddress: /kapi/v2/basedata/bd_material/batchQuery |
| | | #结果上报(保存)单地址 |
| | | outaddressSave: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc |
| | | #结果上报(提交)单地址 |
| | |
| | | outaddressAudit: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc |
| | | # 登录账号管理 |
| | | login : |
| | | acctID: "647e849ab6fa0f" |
| | | username: "llw" |
| | | password: "666666" |
| | | lcid: 2052 |
| | | xAcfwIdentity: "djF8MTlhNTNhZjJhOWEwMWRlODhlMDF8NDkxNTk0MDU4MTQxNXwus9WaEHKRh0daJe1TWmVoMkv3zQY2knNTZRzaOhRgwnw" |
| | | clientId: "WMS" |
| | | clientSecret: "123456789Asd!@123456789" |
| | | accountId: "2182793143735298048" |
| | | username: "admin" |