| | |
| | | import com.core.common.SnowflakeIdWorker; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.kingdee.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.erp.kingdee.entity.param.InFormIdParam; |
| | | import com.zy.erp.kingdee.enums.KingDeeUtilType; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | //登录金蝶 |
| | | ReturnT<String> start = loginAuthenticationHandler.start(); |
| | | for(int i=0;i<14;i++) { |
| | | for(int i=0;i<docTypeService.selectCount(new EntityWrapper<>())+2;i++) { |
| | | InFormIdParam inFormIdParam = new InFormIdParam(); |
| | | //对应订单类型ID |
| | | int docName=0; |
| | | //数量字段 |
| | | String anfme =null; |
| | | switch (i){ |
| | | //物料档案 |
| | | case 0 : inFormIdParam.setFormId("BD_MATERIAL"); break; |
| | | //采购入库 |
| | | case 1 : inFormIdParam.setFormId("STK_InStock");docName=13;anfme ="FRealQty"; break; |
| | | //采购退料 |
| | | case 2 : inFormIdParam.setFormId("PUR_MRB");docName=21;anfme ="FRMREALQTY"; break; |
| | | //生产领料 |
| | | case 3 : inFormIdParam.setFormId("PRD_PickMtrl");docName=22;anfme ="FActualQty"; break; |
| | | //生产退料 |
| | | case 4 : inFormIdParam.setFormId("PRD_ReturnMtrl");docName=24;anfme ="FQty"; break; |
| | | //生产补料 |
| | | case 5 : inFormIdParam.setFormId("PRD_FeedMtrl");docName=25;anfme ="FActualQty"; break; |
| | | //直接调拨单 |
| | | case 6 : inFormIdParam.setFormId("STK_TransferDirect");docName=26;anfme ="FQty"; break; |
| | | //盘盈单 |
| | | case 7 : inFormIdParam.setFormId("STK_StockCountGain");docName=28;anfme ="FGainQty"; break; |
| | | //盘亏单 |
| | | case 8 : inFormIdParam.setFormId("STK_StockCountLoss");docName=29;anfme ="FLossQty"; break; |
| | | //其他出库 |
| | | case 9 : inFormIdParam.setFormId("STK_MisDelivery");docName=30;anfme ="FQty"; break; |
| | | //简单生产领料 |
| | | case 10 : inFormIdParam.setFormId("SP_PickMtrl");docName=31;anfme ="FActualQty"; break; |
| | | //简单生产退料 |
| | | case 11 : inFormIdParam.setFormId("SP_ReturnMtrl");docName=32;anfme ="FQty"; break; |
| | | //销售出库 |
| | | case 12 : inFormIdParam.setFormId("SAL_OUTSTOCK");docName=14;anfme ="FRealQty"; break; |
| | | //销售退货 |
| | | case 13 : inFormIdParam.setFormId("SAL_RETURNSTOCK");docName=33;anfme ="FRealQty"; break; |
| | | KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get((short)i); |
| | | if (Cools.isEmpty(kingDeeUtilType)){ |
| | | continue; |
| | | } |
| | | DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc)); |
| | | inFormIdParam.setFormId(kingDeeUtilType.formId); |
| | | inFormIdParam.setLimit(100); |
| | | inFormIdParam.setStartRow("0"); |
| | | Date time=new Date(); |
| | |
| | | jsonObject.put("Limit", inFormIdParam.getLimit()); |
| | | jsonObject.put("StartRow", inFormIdParam.getStartRow()); |
| | | //物料档案查询 |
| | | if(i==0){ |
| | | if(inFormIdParam.getFormId().equals("BD_MATERIAL")){ |
| | | Tag tag = tagService.selectById(20); |
| | | //最新时间 |
| | | time=tag.getCreateTime(); |
| | |
| | | // FDocumentStatus :物料状态 |
| | | }else{ |
| | | //获取最新时间 |
| | | DocType docType= docTypeService.selectById(docName); |
| | | //单据状态 |
| | | FDocumentStatus="B"; |
| | | jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"' and FStockId.Fname='立库'"+" and FDocumentStatus='"+FDocumentStatus+"'"); |
| | | jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+anfme+",FDocumentStatus"); |
| | | jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+kingDeeUtilType.anfme+",FDocumentStatus"); |
| | | // FBillNo :单据编号; |
| | | // FCreateDate :单据创建时间; |
| | | // FMaterialId.FNumber : 物料编码; |
| | |
| | | .build() |
| | | .doPost(); |
| | | JSONArray data = JSON.parseArray(response); |
| | | if(data.size()>0) { |
| | | if (data.getJSONArray(0).get(0).toString().length()<20) { |
| | | if(data.size()<=0) continue; |
| | | if (data.getJSONArray(0).get(0).toString().length()>=20) continue; |
| | | if (i == 0) { |
| | | for (int j = 0; j < data.size(); j++) { |
| | | JSONArray jsonArray = data.getJSONArray(j); |
| | |
| | | JSONArray jsonArray = data.getJSONArray(j); |
| | | Order order = orderService.selectByNo(jsonArray.get(0).toString()); |
| | | if (Cools.isEmpty(order)) { |
| | | DocType docType = docTypeService.selectById(docName); |
| | | Date now = new Date(); |
| | | // 单据主档 |
| | | order = new Order( |
| | |
| | | Date date = sdf.parse(format); |
| | | //最新抓取时间 |
| | | docType.setCreateTime(date); |
| | | docTypeService.update(docType, new EntityWrapper<DocType>().eq("doc_id", docName)); |
| | | docTypeService.updateById(docType); |
| | | if (!orderService.insert(order)) { |
| | | throw new CoolException("生成单据主档失败,请联系管理员"); |
| | | } |
| | |
| | | if (!Cools.isEmpty(orderDetl1)) { |
| | | continue; |
| | | } |
| | | DocType docType = docTypeService.selectById(docName); |
| | | OrderDetl orderDetl = new OrderDetl(); |
| | | orderDetl.sync(mat); |
| | | orderDetl.setBatch(null); |
| | |
| | | throw new CoolException("生成单据明细失败,请联系管理员"); |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | } |
| | | }else { |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.kingdee.*; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.erp.kingdee.entity.param.LoginParam; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.zy.asrs.entity.DocType; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.kingdee.*; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.DocTypeService; |
| | | import com.zy.asrs.service.OrderDetlService; |
| | |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.erp.kingdee.enums.KingDeeUtilType; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | if (null == docType) { |
| | | return SUCCESS; |
| | | } |
| | | InFormIdParam inFormIdParam = new InFormIdParam(); |
| | | int docId = Long.valueOf(docType.getDocId()).intValue(); |
| | | switch (docId) { |
| | | //采购入库 |
| | | case 13: |
| | | inFormIdParam.setFormId("STK_InStock"); |
| | | break; |
| | | //采购退料 |
| | | case 21: |
| | | inFormIdParam.setFormId("PUR_MRB"); |
| | | break; |
| | | //生产领料 |
| | | case 22: |
| | | inFormIdParam.setFormId("PRD_PickMtrl"); |
| | | break; |
| | | //生产退料 |
| | | case 24: |
| | | inFormIdParam.setFormId("PRD_ReturnMtrl"); |
| | | break; |
| | | //生产补料 |
| | | case 25: |
| | | inFormIdParam.setFormId("PRD_FeedMtrl"); |
| | | break; |
| | | //直接调拨单 |
| | | case 26: |
| | | inFormIdParam.setFormId("STK_TransferDirect"); |
| | | break; |
| | | //盘盈单 |
| | | case 28: |
| | | inFormIdParam.setFormId("STK_StockCountGain"); |
| | | break; |
| | | //盘亏单 |
| | | case 29: |
| | | inFormIdParam.setFormId("STK_StockCountLoss"); |
| | | break; |
| | | //其他出库 |
| | | case 30: |
| | | inFormIdParam.setFormId("STK_MisDelivery"); |
| | | break; |
| | | //简单生产领料 |
| | | case 31: |
| | | inFormIdParam.setFormId("SP_PickMtrl"); |
| | | break; |
| | | //简单生产退料 |
| | | case 32: |
| | | inFormIdParam.setFormId("SP_ReturnMtrl"); |
| | | break; |
| | | //销售出库 |
| | | case 14: |
| | | inFormIdParam.setFormId("SAL_OUTSTOCK"); |
| | | break; |
| | | //销售退货 |
| | | case 33: |
| | | inFormIdParam.setFormId("SAL_RETURNSTOCK"); |
| | | break; |
| | | } |
| | | KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName()); |
| | | |
| | | //条件拼接 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("Numbers",order.getOrderNo()); |
| | | JSONObject jsonObject1 = new JSONObject(); |
| | | jsonObject1.put("data", jsonObject); |
| | | jsonObject1.put("FormId",inFormIdParam.getFormId()); |
| | | jsonObject1.put("FormId",kingDeeUtilType.formId); |
| | | String add = jsonObject1.toJSONString(); |
| | | //上报 |
| | | String response = ""; |
File was renamed from src/main/java/com/zy/asrs/entity/kingdee/InFormIdParam.java |
| | |
| | | package com.zy.asrs.entity.kingdee; |
| | | package com.zy.erp.kingdee.entity.param; |
| | | |
| | | import lombok.Data; |
| | | |
File was renamed from src/main/java/com/zy/asrs/entity/kingdee/LoginParam.java |
| | |
| | | package com.zy.asrs.entity.kingdee; |
| | | package com.zy.erp.kingdee.entity.param; |
| | | |
| | | import lombok.Data; |
| | | |
New file |
| | |
| | | package com.zy.erp.kingdee.enums; |
| | | |
| | | public enum KingDeeUtilType { |
| | | BD_MATERIAL(0, "物料档案","BD_MATERIAL",""), |
| | | STK_InStock(1, "采购入库","STK_InStock","FRealQty"), |
| | | PUR_MRB(2, "采购退料","PUR_MRB","FRMREALQTY"), |
| | | PRD_PickMtrl(3, "生产领料","PRD_PickMtrl","FActualQty"), |
| | | PRD_ReturnMtrl(4, "生产退料","PRD_ReturnMtrl","FQty"), |
| | | PRD_FeedMtrl(5, "生产补料","PRD_FeedMtrl","FActualQty"), |
| | | STK_TransferDirect(6, "直接调拨单","STK_TransferDirect","FQty"), |
| | | STK_StockCountGain(7, "盘盈单","STK_StockCountGain","FGainQty"), |
| | | STK_StockCountLoss(8, "盘亏单","STK_StockCountLoss","FLossQty"), |
| | | STK_MisDelivery(9, "其他出库","STK_MisDelivery","FQty"), |
| | | SP_PickMtrl(10, "简单生产领料","SP_PickMtrl","FActualQty"), |
| | | SP_ReturnMtrl(11, "简单生产退料","SP_ReturnMtrl","FQty"), |
| | | SAL_OUTSTOCK(12, "销售出库","SAL_OUTSTOCK","FRealQty"), |
| | | SAL_RETURNSTOCK(13, "销售退货","SAL_RETURNSTOCK","FRealQty"), |
| | | SAL_DELIVERYNOTICE(14, "发货通知单","SAL_DELIVERYNOTICE",""), |
| | | STK_MISCELLANEOUS(15, "其他入库单","STK_MISCELLANEOUS",""), |
| | | BD_Supplier(16, "供应商","BD_Supplier",""), |
| | | ; |
| | | public Integer id; |
| | | public String desc; |
| | | public String formId; |
| | | public String anfme; |
| | | |
| | | KingDeeUtilType(Integer id, String desc,String formId,String anfme){ |
| | | this.id = id; |
| | | this.desc = desc; |
| | | this.formId = formId; |
| | | this.anfme = anfme; |
| | | } |
| | | |
| | | public static KingDeeUtilType get(Short id) { |
| | | if (null == id) { |
| | | return null; |
| | | } |
| | | for (KingDeeUtilType type : KingDeeUtilType.values()) { |
| | | if (type.id.equals(id.intValue())) { |
| | | return type; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static KingDeeUtilType get(String desc) { |
| | | if (null == desc) { |
| | | return null; |
| | | } |
| | | for (KingDeeUtilType type : KingDeeUtilType.values()) { |
| | | if (type.desc.equals(desc)) { |
| | | return type; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static KingDeeUtilType get(KingDeeUtilType type) { |
| | | if (null == type) { |
| | | return null; |
| | | } |
| | | for (KingDeeUtilType crnLiftPosType : KingDeeUtilType.values()) { |
| | | if (crnLiftPosType == type) { |
| | | return crnLiftPosType; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
New file |
| | |
| | | package com.zy.erp.kingdee.utils; |
| | | |
| | | public class KingDeeUtil { |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.zy.erp.kingdee.utils; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.core.common.SpringUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.util.Map; |
| | | |
| | | @Slf4j |
| | | public class PostMesDataUtils extends AbstractHandler<String> { |
| | | |
| | | public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam){ |
| | | // if (true){ |
| | | // System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam); |
| | | // return SUCCESS; |
| | | // } |
| | | if(combParam != null){ |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | // Map<String, Object> map = new HashMap<>() |
| | | // map.put("appkey","ea1f0459efc02a79f046f982767939ae"); |
| | | response = new HttpHandler.Builder() |
| | | // .setHeaders(map) |
| | | .setUri(URL) |
| | | .setPath(mesPath) |
| | | .setJson(JSON.toJSONString(combParam)) |
| | | .build() |
| | | .doPost(); |
| | | System.out.println("response:"+response); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | success = true; |
| | | } else { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response); |
| | | throw new CoolException("上报"+name); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class); |
| | | apiLogService.save( |
| | | "上报"+name, |
| | | URL +"/"+ mesPath, |
| | | null, |
| | | "127.0.0.1", |
| | | JSON.toJSONString(combParam), |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { |
| | | log.error("", e); } |
| | | } |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam,Map<String, Object> map){ |
| | | // if (true){ |
| | | // System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam); |
| | | // return SUCCESS; |
| | | // } |
| | | if(combParam != null){ |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | // Map<String, Object> map = new HashMap<>(); |
| | | // map.put("appkey","ea1f0459efc02a79f046f982767939ae"); |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(map) |
| | | .setUri(URL) |
| | | .setPath(mesPath) |
| | | .setJson(JSON.toJSONString(combParam)) |
| | | .build() |
| | | .doPost(); |
| | | System.out.println("response:"+response); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | success = true; |
| | | } else { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response); |
| | | throw new CoolException("上报"+name); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class); |
| | | apiLogService.save( |
| | | "上报"+name, |
| | | URL +"/"+ mesPath, |
| | | null, |
| | | "127.0.0.1", |
| | | JSON.toJSONString(combParam), |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { |
| | | log.error("", e); } |
| | | } |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | } |
| | |
| | | erp: |
| | | # 开关 |
| | | switch: |
| | | InboundOrderSwitch: true |
| | | LoginAuthenticationSwitch: true |
| | | ReviewOrderSwitch: true |
| | | InboundOrderSwitch: false |
| | | LoginAuthenticationSwitch: false |
| | | ReviewOrderSwitch: false |
| | | # 地址 |
| | | address: |
| | | URL: http://ht01.wlgear.com:16001 |