src/main/java/com/zy/asrs/controller/MatController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MatController.java
@@ -19,7 +19,6 @@ import com.zy.asrs.service.MatService; import com.zy.asrs.service.TagService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler; import com.zy.asrs.utils.MatExcelListener; import com.zy.common.CodeRes; import com.zy.common.config.AdminInterceptor; @@ -69,8 +68,6 @@ private LocDetlService locDetlService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private LoginAuthenticationHandler loginAuthenticationHandler; @RequestMapping(value = "/mat/auto/matnr/auth") public R autoMatnr() { @@ -159,154 +156,6 @@ mat.setStatus(1); if (!matService.insert(mat)) { throw new CoolException("添加失败,请联系管理员"); } return R.ok(); } @RequestMapping(value = "/mat/KingDeeadd/auth") @ManagerAuth public R KingDeeadd() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //登录金蝶 ReturnT<String> start = loginAuthenticationHandler.start(); InFormIdParam inFormIdParam = new InFormIdParam(); inFormIdParam.setFormId("BD_MATERIAL"); inFormIdParam.setLimit(10000000); inFormIdParam.setStartRow("0"); String FDocumentStatus = "C"; // 获取当前日期 LocalDate currentDate = LocalDate.now(); // 获取前一个月的同一天 LocalDate previousMonthDate = currentDate.minusMonths(1); // 格式化日期为 "yyyyMMdd" 格式 DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formattedDate2 = previousMonthDate.format(formatter1); //条件和需要获得的结果拼接 JSONObject jsonObject = new JSONObject(); jsonObject.put("FormId", inFormIdParam.getFormId()); jsonObject.put("Limit", inFormIdParam.getLimit()); jsonObject.put("StartRow", inFormIdParam.getStartRow()); jsonObject.put("FilterString", "FCreateDate>'" + formattedDate2 + "' and FDocumentStatus='" + FDocumentStatus + "' and FUseOrgId .FNumber='201'"); jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus,FTuhao"); // FName : 物料名称 ; // FNumber :物料编号; // FCreateDate :物料创建时间; // FSpecification :物料规格; // FDocumentStatus :物料状态 JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("data", jsonObject); String add = jsonObject1.toJSONString(); //上报 String response = ""; boolean success = false; try { //获取Cookie值 HashMap<String, Object> headers = new HashMap<>(); headers.put("Cookie", start.getContent()); response = new HttpHandler.Builder() .setHeaders(headers) .setUri(URL) .setPath(inaddress) .setJson(add) .build() .doPost(); JSONArray data = JSON.parseArray(response); int i = 0; if (data.size() > 0) { if (data.getJSONArray(0).get(0).toString().length() < 20) { if (i == 0) { for (int j = 0; j < data.size(); j++) { JSONArray jsonArray = data.getJSONArray(j); //生成商品档案 //商品编号 Mat mat = matService.selectByMatnr(jsonArray.get(1).toString()); if (mat == null) { mat = new Mat(); Tag tag = new Tag(); mat.setMatnr(jsonArray.get(1).toString()); mat.setMaktx(jsonArray.get(0).toString()); mat.setSpecs(jsonArray.get(3).toString());//规格 mat.setModel(jsonArray.get(5).toString());//图号 mat.setTagId(20L); //对美国时间进行转换 DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(2).toString(), formatter); String format = dateFormat.format(dateTime); Date date = sdf.parse(format); mat.setCreateTime(date);//商品创建时间 mat.setUpdateTime(new Date()); mat.setStatus(1); //最新抓取商品时间 tag.setCreateTime(date); tagService.update(tag, new EntityWrapper<Tag>().eq("id", 20)); if (!matService.insert(mat)) { throw new CoolException("服务器内部错误,请联系管理员"); } else { log.info("同步新物料[商品编号:{}]", mat.getMatnr()); } } } } } } // if (data.getJSONArray(0).get(0).toString().length() < 20) { // success = true; // JSONArray jsonArray = data.getJSONArray(0); // //生成商品档案 // //商品编号 // mat = matService.selectByMatnr(jsonArray.get(1).toString()); // if (mat == null) { // mat = new Mat(); // Tag tag = new Tag(); // mat.setMatnr(jsonArray.get(1).toString()); // mat.setMaktx(jsonArray.get(0).toString()); // mat.setSpecs(jsonArray.get(3).toString());//规格 // mat.setTagId(20L); // //对美国时间进行转换 // DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); // DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; // LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(2).toString(), formatter); // String format = dateFormat.format(dateTime); // Date date = sdf.parse(format); // mat.setCreateTime(date);//商品创建时间 // mat.setUpdateTime(new Date()); // mat.setStatus(1); // //最新抓取商品时间 // tag.setCreateTime(date); // tagService.update(tag, new EntityWrapper<Tag>().eq("id", 20)); // if (!matService.insert(mat)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } else { // log.info("同步新物料[商品编号:{}]", mat.getMatnr()); // } // } // } else { // throw new CoolException("没有找到指定物料档案,请联系管理员"); // } } catch (Exception e) { log.error("fail", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } finally { try { // 保存接口日志 apiLogService.save( "轮询数据", URL + inaddress, null, "127.0.0.1", add, response, success ); } catch (Exception e) { log.error("", e); } } return R.ok(); } src/main/java/com/zy/asrs/controller/OrderController.java
@@ -10,13 +10,9 @@ import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.InFormIdParam; import com.zy.asrs.entity.param.OrderDomainParam; import com.zy.asrs.service.*; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler; import com.zy.common.model.DetlDto; import com.zy.common.utils.HttpHandler; import com.zy.common.web.BaseController; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -56,9 +52,6 @@ @Autowired private ApiLogService apiLogService; @Autowired private LoginAuthenticationHandler loginAuthenticationHandler; @Autowired private MatService matService; @@ -456,204 +449,4 @@ } return R.ok("订单添加成功"); } @RequestMapping(value = "/order/form/KingDeeadd/authtest") @ManagerAuth(memo = "根据订单类型和订单码添加") @Transactional public R KingDeeformAddTest(@RequestBody OrderDomainParam param){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //登录金蝶 ReturnT<String> start = loginAuthenticationHandler.start(); InFormIdParam inFormIdParam = new InFormIdParam(); //数量字段ncompatible types. Found: 'java.lang.Long', required: 'char, byte, short, int, Character, Byte, Short, Integer, String, or an enum' String anfme =null; int i=Long.valueOf(param.getDocType()).intValue(); switch (i){ //采购入库 case 13 : inFormIdParam.setFormId("STK_InStock");anfme ="FRealQty"; break; //采购退料 case 21 : inFormIdParam.setFormId("PUR_MRB");anfme ="FRMREALQTY"; break; //生产领料 case 22 : inFormIdParam.setFormId("PRD_PickMtrl");anfme ="FActualQty"; break; //生产退料 case 24 : inFormIdParam.setFormId("PRD_ReturnMtrl");anfme ="FQty"; break; //生产补料 case 25 : inFormIdParam.setFormId("PRD_FeedMtrl");anfme ="FActualQty"; break; //直接调拨单 case 26 : inFormIdParam.setFormId("STK_TransferDirect");anfme ="FQty"; break; //盘盈单 case 28 : inFormIdParam.setFormId("STK_StockCountGain");anfme ="FGainQty"; break; //盘亏单 case 29 : inFormIdParam.setFormId("STK_StockCountLoss");anfme ="FLossQty"; break; //其他出库 case 30 : inFormIdParam.setFormId("STK_MisDelivery");anfme ="FQty"; break; //简单生产领料 case 31 : inFormIdParam.setFormId("SP_PickMtrl");anfme ="FActualQty"; break; //简单生产退料 case 32 : inFormIdParam.setFormId("SP_ReturnMtrl");anfme ="FQty"; break; //销售出库 case 14 : inFormIdParam.setFormId("SAL_OUTSTOCK");anfme ="FRealQty"; break; //销售退货 case 33 : inFormIdParam.setFormId("SAL_RETURNSTOCK");anfme ="FRealQty"; break; } inFormIdParam.setLimit(100); inFormIdParam.setStartRow("0"); String FDocumentStatus = "B"; //条件和需要获得的结果拼接 JSONObject jsonObject = new JSONObject(); jsonObject.put("FormId", inFormIdParam.getFormId()); jsonObject.put("Limit", inFormIdParam.getLimit()); jsonObject.put("StartRow", inFormIdParam.getStartRow()); //单据状态 FDocumentStatus="B"; //订单码 String orderNo= param.getOrderNo(); jsonObject.put("FilterString", "FBillNo='"+orderNo+"'and FStockId.Fname='立库'"+" and FDocumentStatus='"+FDocumentStatus+"'"); jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+anfme+",FDocumentStatus"); // FBillNo :单据编号; // FCreateDate :单据创建时间; // FMaterialId.FNumber : 物料编码; // FMaterialName :物料名称; // FMaterialId.FSpecification:物料规格 // anfme : 物料数量 // FDocumentStatus :单据状态; JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("data", jsonObject); String add = jsonObject1.toJSONString(); //上报 String response = ""; boolean success = false; try { //获取Cookie值 HashMap<String, Object> headers = new HashMap<>(); headers.put("Cookie", start.getContent()); response = new HttpHandler.Builder() .setHeaders(headers) .setUri(URL) .setPath(inaddress) .setJson(add) .build() .doPost(); JSONArray data = JSON.parseArray(response); if(data.getJSONArray(0).get(0).toString().length()<20){ success = true; for (int j = 0; j < data.size(); j++) { JSONArray jsonArray = data.getJSONArray(j); Order order = orderService.selectByNo(jsonArray.get(0).toString()); if (Cools.isEmpty(order)) { DocType docType = docTypeService.selectById(param.getDocType()); Date now = new Date(); // 单据主档 order = new Order( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] jsonArray.get(0).toString(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 null, // null, // 调拨项目编号 null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 null, // 联系方式 null, // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 null, // 销售或采购费用合计 null, // 实付金额 null, // 付款类型 null, // 业务员 null, // 结算天数 null, // 邮费支付类型 null, // 邮费 null, // 付款时间 null, // 发货时间 null, // 物流名称 null, // 物流单号 1L, // 订单状态 1, // 状态 9527L, // 添加人员 now, // 添加时间 9527L, // 修改人员 now, // 修改时间 null // 备注 ); //对美国时间进行转换 DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter); String format = dateFormat.format(dateTime); Date date = sdf.parse(format); //最新抓取时间 docType.setCreateTime(date); docTypeService.update(docType, new EntityWrapper<DocType>().eq("doc_id", param.getDocType())); if (!orderService.insert(order)) { throw new CoolException("生成单据主档失败,请联系管理员"); } } //物料编码 Mat mat = matService.selectByMatnr(jsonArray.get(2).toString()); if (Cools.isEmpty(mat)) { throw new CoolException(jsonArray.get(2).toString() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString())); if (!Cools.isEmpty(orderDetl1)) { continue; } DocType docType = docTypeService.selectById(param.getDocType()); OrderDetl orderDetl = new OrderDetl(); orderDetl.sync(mat); orderDetl.setBatch(null); orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString())); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setCreateBy(9527L); orderDetl.setCreateTime(new Date()); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateTime(new Date()); orderDetl.setStatus(1); orderDetl.setQty(0.0D); DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter); String format = dateFormat.format(dateTime); Date date = sdf.parse(format); //最新抓取时间 docType.setCreateTime(date); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } }else{ throw new CoolException("没有找到指定订单,请联系管理员"); } } catch (Exception e) { log.error("fail", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } finally { try { // 保存接口日志 apiLogService.save( "轮询数据", URL + inaddress, null, "127.0.0.1", add, response, success ); } catch (Exception e) { log.error("", e); } } return R.ok("订单添加成功"); } } src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
File was deleted src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
File was deleted src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
File was deleted src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
File was deleted src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
File was deleted src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
File was deleted src/main/resources/application.yml
@@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://127.0.0.1:1433;databasename=tzhtasrs url: jdbc:sqlserver://127.0.0.1:1433;databasename=lfdasrs-sxc username: sa password: sa@123 mvc: