package com.malk.zhiwei.service.impl; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.malk.server.aliwork.YDConf; import com.malk.server.aliwork.YDParam; import com.malk.service.aliwork.YDClient; import com.malk.service.aliwork.YDService; import com.malk.utils.PublicUtil; import com.malk.utils.UtilMap; import com.malk.zhiwei.service.ZwService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.rmi.CORBA.Util; import java.util.*; @Service @Slf4j public class ZwServiceImpl implements ZwService { private static String ERP_URL="http://10.0.0.208:80"; private static String ERP_NAME="064"; private static String ERP_PASSWORD=""; private static String ERP_PILOT="PILOT2001"; // http://10.0.0.208:30104/MobileService.asmx?op=GETPILOTLIST // {"PILOTLIST":[ // {"NAME":"PILOT2001","ZTNAME":"2001测试"}, // {"NAME":"PILOT2002","ZTNAME":"2002CS-BYD"}, // {"NAME":"PILOT2023","ZTNAME":"20232023"}, // {"NAME":"PILOT2024","ZTNAME":"20242024"}]} private static String ERP_LOGIN_KEY="2025062710430311152101098"; private static String ERP_OP_PRODUCT="Anyv_View_PRODUCT"; private static String ERP_OP_PRODCLAS="Anyv_View_PRODCLAS"; private static String ERP_OP_CUSTOMER="Anyv_View_CUSTOMER"; public static void main(String[] args) { // {"CODE":"CP000201","clasName":"成品","CNAME":"MPP-20P","SPEC":"600*500*1.8±0.3"},{"CODE":"CP000809","clasName":"成品","CNAME":"阻燃MPP-25P-灰色","SPEC":"1400*1100*3+1-0.5"},{"CODE":"CP001362","clasName":"成品","CNAME":"阻燃MPP-15P","SPEC":"2480*222*3.5±0.2"},{"CODE":"TCP000023","clasName":"成品","CNAME":"POE05灰(李宁)","SPEC":"1850*800*6"} JSONObject jsonObject = queryData(ERP_OP_PRODUCT,"clasName = '成品'",ERP_PILOT); // {"CODE":"KH0681","CNAME":"耐玛体育","ABBR":"耐玛体育"},{"CODE":"KH0022","CNAME":"上海浩魁材料科技有限公司","ABBR":"浩魁"} // JSONObject jsonObject = queryData(ERP_OP_CUSTOMER,""); // saveSaleOrder("{\"CODE\":\"KH0681\",\"SUPP\":\"KH0681\",\"STAFFCODE\":\"admin\",\"VERIFICATION\":\"False\",\"PRODLIST\":[{\"ERI\":\"0GZ29ZUKV401HCBI\",\"CODE\":\"O220902002\",\"CODE1\":\"\",\"PROD\":\"CP000201\",\"GWN\":\"WXYL\",\"VPNO\":\"X220703\",\"QTY\":1,\"confirm\":0}]}"); // saveDeliveryOrder("{\"CODE\":\"KH0681\",\"STAFFCODE\":\"admin\",\"VERIFICATION\":\"False\",\"PRODLIST\":[{\"ERI\":\"\",\"CODE\":\"O250627010\",\"PROD\":\"CP000201\",\"GWN\":\"WXYL\",\"VPNO\":\"X220703\",\"QTY\":1,\"confirm\":0}]}"); } private static String erpLogin(String erpPilot){ String xmlResponse=HttpUtil.get(ERP_URL+"/MobileService.asmx/login?name="+ERP_NAME+"&password="+ERP_PASSWORD+"&pilot="+erpPilot); int jsonStart = xmlResponse.indexOf("{"); int jsonEnd = xmlResponse.lastIndexOf("}"); String jsonStr = xmlResponse.substring(jsonStart, jsonEnd + 1); JSONObject jsonObject = JSONObject.parseObject(jsonStr); log.info("登录结果:{}",jsonObject); return jsonObject.getJSONObject("USER").getString("Key"); } private static JSONObject queryData(String op,String where,String erpPilot){ String xmlResponse=HttpUtil.get(ERP_URL+"/MobileService.asmx/"+op+"?KEY="+erpLogin(erpPilot)+"&field=&userid="+ERP_NAME+"&where="+where+"&pilot="+erpPilot); int jsonStart = xmlResponse.indexOf("{"); int jsonEnd = xmlResponse.lastIndexOf("}"); String jsonStr = xmlResponse.substring(jsonStart, jsonEnd + 1); JSONObject jsonObject = JSONObject.parseObject(jsonStr); log.info("查询结果:{}",jsonObject); return jsonObject; } private static JSONObject saveSaleOrder(String data,String erpPilot){ String xmlResponse=HttpUtil.get(ERP_URL+"/MobileService.asmx/Anyv_GenForm_ORDCORD1?KEY="+erpLogin(erpPilot)+"&userid="+ERP_NAME+"&Data="+data+"&pilot="+erpPilot); System.out.println(xmlResponse); int jsonStart = xmlResponse.indexOf("{"); int jsonEnd = xmlResponse.lastIndexOf("}"); String jsonStr = xmlResponse.substring(jsonStart, jsonEnd + 1); JSONObject jsonObject = JSONObject.parseObject(jsonStr); log.info("保存结果:{}",jsonObject); return jsonObject; } @Override public JSONObject saveSaleOrder(Map formData) { // 数据转换 JSONObject dataObj = new JSONObject(); dataObj.put("CODE", UtilMap.getString(formData,"textField_mcefftni"));// 单号 dataObj.put("SUPP",UtilMap.getString(formData,"textField_mcefftni"));// 客户代码 dataObj.put("STAFFCODE",UtilMap.getString(formData,"textField_mcefftnj")); dataObj.put("VERIFICATION","False"); List list=UtilMap.getList(formData,"tableField_mcefftnk"); List dataList=new ArrayList<>(); for (Map map : list) { Map tempMap=new HashMap(); tempMap.put("ERI",""); // 销售订单副档ERI或出货通知单副档ERI tempMap.put("CODE", UtilMap.getString(map,"textField_mcefftnl")); // 销售订单编号 tempMap.put("CODE1", "");// 出货通知单编号 tempMap.put("PROD", UtilMap.getString(map,"textField_mcefftnn"));// 产品代码 tempMap.put("GWN", UtilMap.getString(map,"textField_mcefftno"));// 仓库代码 tempMap.put("VPNO", UtilMap.getString(map,"textField_mcefftnp"));// 产品批号 tempMap.put("QTY", UtilMap.getString(map,"numberField_mcefftnr"));// 产品数量 tempMap.put("confirm", "0"); dataList.add(tempMap); } dataObj.put("PRODLIST",dataList); String data=JSONObject.toJSONString(dataObj); log.info("入参:{}",data); // 调用接口 JSONObject result=saveSaleOrder(UtilMap.getString(formData,"textField_mcefftni"),UtilMap.getString(formData,"textField_mdr1v1di")); JSONArray codes=result.getJSONArray("page"); for (int i = 0; i < list.size(); i++) { Map tempMap=new HashMap(); tempMap.put("textField_mdqsatd4",UtilMap.getString(list.get(i),"textField_mdqs9oqa")); if(codes.size() >= i){ tempMap.put("textField_mdqsatd5",codes.getJSONObject(i).getString("CODE")); } ydClient.operateData(YDParam.builder().formUuid("FORM-E999482BC03547D89A435F5441A46F1ANR0R").formDataJson(JSONObject.toJSONString(tempMap)).build(), YDConf.FORM_OPERATION.create); } return result; } private static JSONObject saveDeliveryOrder(String data,String erpPilot){ String xmlResponse=HttpUtil.get(ERP_URL+"/MobileService.asmx/Anyv_GenForm_STKSHIPNOTE1?KEY="+erpLogin(erpPilot)+"&userid="+ERP_NAME+"&Data="+data+"&pilot="+erpPilot); System.out.println(xmlResponse); int jsonStart = xmlResponse.indexOf("{"); int jsonEnd = xmlResponse.lastIndexOf("}"); String jsonStr = xmlResponse.substring(jsonStart, jsonEnd + 1); JSONObject jsonObject = JSONObject.parseObject(jsonStr); log.info("保存结果:{}",jsonObject); return jsonObject; } @Override public JSONObject saveDeliveryOrder(Map formData) { // 数据转换 JSONObject dataObj = new JSONObject(); dataObj.put("CODE", UtilMap.getString(formData,"textField_mcefftni"));// 客户代码 dataObj.put("STAFFCODE",UtilMap.getString(formData,"textField_mcefftnj")); dataObj.put("VERIFICATION","False"); List list=UtilMap.getList(formData,"tableField_mcefftnk"); List dataList=new ArrayList<>(); for (Map map : list) { Map tempMap=new HashMap(); tempMap.put("ERI",""); // 销售订单副档ERI或出货通知单副档ERI tempMap.put("CODE", UtilMap.getString(map,"textField_mcefftnl")); // 销售订单编号 tempMap.put("PROD", UtilMap.getString(map,"textField_mcefftnn"));// 产品代码 tempMap.put("GWN", UtilMap.getString(map,"textField_mcefftno"));// 仓库代码 tempMap.put("VPNO", UtilMap.getString(map,"textField_mcefftnp"));// 产品批号 tempMap.put("QTY", UtilMap.getString(map,"numberField_mcefftnr"));// 产品数量 tempMap.put("confirm", "0"); dataList.add(tempMap); } dataObj.put("PRODLIST",dataList); String data=JSONObject.toJSONString(dataObj); log.info("入参:{}",data); // 调用接口 return saveDeliveryOrder(data,UtilMap.getString(formData,"textField_mdr1v1di")); } @Autowired private YDClient ydClient; @Override public void syncProduct(String id,String erpPilot) { JSONObject jsonObject = queryData(ERP_OP_PRODUCT,"clasName = '成品'"+ (PublicUtil.isNull(id)?"":("and CODE = '"+id+"'")),erpPilot); JSONArray data = jsonObject.getJSONArray("data"); log.info("data.size():{}",data.size()); for (int i = 0; i < data.size(); i++) { JSONObject dataObj = data.getJSONObject(i); String productId=UtilMap.getString(dataObj,"CODE"); Map saveMap=UtilMap.map("textField_mcijetil, textField_l43jpnsf, textField_l43jpnsh",productId,dataObj.getString("CNAME"),dataObj.getString("SPEC")); ydClient.operateData(YDParam.builder().formUuid("FORM-4A7B1A62CCFC4D758AB98ADE3F97D40COYO2") .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_mcijetil", productId))) .formDataJson(JSONObject.toJSONString(saveMap)).build(), YDConf.FORM_OPERATION.upsert); } } }