提交 7e54489b authored 作者: 李炎's avatar 李炎

推送销售订单手动同步

上级 bc32e91e
...@@ -187,6 +187,25 @@ public class CategoryDao { ...@@ -187,6 +187,25 @@ public class CategoryDao {
* @return * @return
* @throws * @throws
*/ */
public Map<String,List<List<Object>>> selectTodayAndReturnNew(String sFormId, Map<String,String> key){
List<List<Object>> list = null;
String contentTody= TodayContent();
Map<String, List<List<Object>>> stringListHashMap = new HashMap<>();
try {
Boolean result = client.login(dbId, uid, pwd, lang);
String content;
if(result){
content="{\"FormId\":\""+sFormId+"\","+Stringkey(key)+contentTody+"}";
list = client.executeBillQuery(content);
stringListHashMap.put(content,list);
}
} catch (Exception e) {
e.printStackTrace();
}
return stringListHashMap;
}
public List<Object> selectTodayAndReturn(String sFormId, Map<String,String> key){ public List<Object> selectTodayAndReturn(String sFormId, Map<String,String> key){
List<List<Object>> list = null; List<List<Object>> list = null;
List<Object> lists=new ArrayList<>(); List<Object> lists=new ArrayList<>();
...@@ -206,7 +225,6 @@ public class CategoryDao { ...@@ -206,7 +225,6 @@ public class CategoryDao {
} }
return lists; return lists;
} }
private String StringkeyByList(List<String> list) { private String StringkeyByList(List<String> list) {
String Keys = null; String Keys = null;
......
...@@ -25,8 +25,8 @@ public class SalesOrderTimed { ...@@ -25,8 +25,8 @@ public class SalesOrderTimed {
ISalesOrderService salesOrderService; ISalesOrderService salesOrderService;
// @Scheduled(cron = "0 0 1 * * ?")//cron表达式每天凌晨一点 // @Scheduled(cron = "0 0 1 * * ?")//cron表达式每天凌晨一点
@Scheduled(fixedDelay = 1000*60) @Scheduled(fixedDelay = 1000*60)
public void job(){ public void job() throws ParseException {
salesOrderService.synchronization(); salesOrderService.synchronization(null);
} }
} }
...@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.text.ParseException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -57,8 +58,8 @@ public class SalesOrderController { ...@@ -57,8 +58,8 @@ public class SalesOrderController {
@AutoLog(value = "销售API-同步至国网") @AutoLog(value = "销售API-同步至国网")
@ApiOperation(value="销售API-同步至国网", notes="销售API-同步至国网") @ApiOperation(value="销售API-同步至国网", notes="销售API-同步至国网")
@PostMapping(value = "/synchronization") @PostMapping(value = "/synchronization")
public Result<?> synchronization(){ public Result<?> synchronization() throws ParseException {
salesOrderService.synchronization(); salesOrderService.synchronization(null);
/*return Result.OK( salesOrderService.synchronization(null));*/ /*return Result.OK( salesOrderService.synchronization(null));*/
return Result.OK("同步成功"); return Result.OK("同步成功");
} }
......
...@@ -14,6 +14,7 @@ import org.jeecg.common.system.query.QueryGenerator; ...@@ -14,6 +14,7 @@ import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournal; import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournal;
import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournalSalesOrder; import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournalSalesOrder;
import org.jeecg.modules.iost.API.service.IPhysicalIDerrorService; import org.jeecg.modules.iost.API.service.IPhysicalIDerrorService;
import org.jeecg.modules.iost.API.service.ISalesOrderService;
import org.jeecg.modules.iost.API.service.ISupplyListIService; import org.jeecg.modules.iost.API.service.ISupplyListIService;
import org.jeecg.modules.iost.API.service.KingdeeJournalService; import org.jeecg.modules.iost.API.service.KingdeeJournalService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -36,6 +37,9 @@ public class KingdeeJournalController { ...@@ -36,6 +37,9 @@ public class KingdeeJournalController {
private IPhysicalIDerrorService physicalIDerrorService; private IPhysicalIDerrorService physicalIDerrorService;
@Autowired @Autowired
private ISupplyListIService supplyListIService; private ISupplyListIService supplyListIService;
@Autowired
ISalesOrderService salesOrderService;
/** /**
* 分页列表查询 * 分页列表查询
* *
...@@ -88,7 +92,13 @@ public class KingdeeJournalController { ...@@ -88,7 +92,13 @@ public class KingdeeJournalController {
}}); }});
ok = Result.OK(success); ok = Result.OK(success);
break; break;
case "推送销售订单":
lists = kingdeeJournalService.synchronizationSelect(name, king);
success = salesOrderService.synchronization(new HashMap<String, List<List<Object>>>() {{
put(king, lists);
}});
ok = Result.OK(success);
break;
} }
} }
editSuccess(success, id); editSuccess(success, id);
......
...@@ -5,6 +5,7 @@ import net.sf.json.JSONObject; ...@@ -5,6 +5,7 @@ import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.Materialinventoryerror; import org.jeecg.modules.iost.API.entity.Materialinventoryerror;
import org.jeecg.modules.iost.API.entity.Salesordererror; import org.jeecg.modules.iost.API.entity.Salesordererror;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
...@@ -21,7 +22,7 @@ public interface ISalesOrderService extends IService<Salesordererror> { ...@@ -21,7 +22,7 @@ public interface ISalesOrderService extends IService<Salesordererror> {
public JSONObject select(Map<String,String> map); public JSONObject select(Map<String,String> map);
public Boolean synchronization(); public Boolean synchronization(Object object) throws ParseException;
public void addSalesOrder(String rs,Map<String,String> stringStringMap,ArrayList<Salesordererror> salesordererrors); public void addSalesOrder(String rs,Map<String,String> stringStringMap,ArrayList<Salesordererror> salesordererrors);
} }
\ No newline at end of file
...@@ -28,7 +28,7 @@ import java.util.Map; ...@@ -28,7 +28,7 @@ import java.util.Map;
/** /**
* @Description: 销售订单 * @Description: 销售订单
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2021-07-14 * @Date: 2021-07-14
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service
...@@ -45,49 +45,60 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor ...@@ -45,49 +45,60 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor
//添加单个数据到国网-销售订单 //添加单个数据到国网-销售订单
@Override @Override
public JSONObject add(Map<String,String> map) { public JSONObject add(Map<String, String> map) {
JSONObject jsonObject =JSONObject.fromObject(salesOrderApi.add(map)); JSONObject jsonObject = JSONObject.fromObject(salesOrderApi.add(map));
return exceptionhandling(jsonObject,map); return exceptionhandling(jsonObject, map);
} }
@Override @Override
public JSONObject select(Map<String, String> map) { public JSONObject select(Map<String, String> map) {
JSONObject jsonObject =JSONObject.fromObject(salesOrderApi.select()); JSONObject jsonObject = JSONObject.fromObject(salesOrderApi.select());
return jsonObject; return jsonObject;
} }
/** /**
* 判断是否异常:异常处理:当同步数据异常的时候记录异常 * 判断是否异常:异常处理:当同步数据异常的时候记录异常
*
* @param map * @param map
* @return * @return
*/ */
private JSONObject exceptionhandling(JSONObject response,Map<String,String> map){ private JSONObject exceptionhandling(JSONObject response, Map<String, String> map) {
Salesordererror salesOrder = new Salesordererror(); Salesordererror salesOrder = new Salesordererror();
if (response==null){ if (response == null) {
salesOrder.setMessage("连接国网API异常"); salesOrder.setMessage("连接国网API异常");
salesOrder.setStatus(500); salesOrder.setStatus(500);
salesOrder.setJson(JsonUtil.Mapjson(map)); salesOrder.setJson(JsonUtil.Mapjson(map));
this.save(salesOrder); this.save(salesOrder);
return JSONObject.fromObject(JsonUtil.Objectjson(map)+":数据连接异常,已将数据记录到报错记录里面"); return JSONObject.fromObject(JsonUtil.Objectjson(map) + ":数据连接异常,已将数据记录到报错记录里面");
} }
return response; return response;
} }
/*同步-(从金蝶云同步数据到国网端,并且对两方操作创建同步日志,明细实体保存)*/ /*同步-(从金蝶云同步数据到国网端,并且对两方操作创建同步日志,明细实体保存)*/
@Override @Override
public Boolean synchronization() { public Boolean synchronization(Object object) throws ParseException {
Boolean success = true;
Map<String, List<List<Object>>> synchronization = null;
//拆解select-获取金蝶云星空的响应信息数据
List<Map<String, String>> list = null;
if (object == null) {
synchronization = salesOrderWebapi.synchronization(null, null);
} else {
synchronization = (Map<String, List<List<Object>>>) object;
}
//保存金蝶云操作的日志记录
list=addKingdeeJournalSalesOrder(synchronization);
if (list == null || list.size() < 1) return false;
//从金蝶云查询数据(传给国网用) //从金蝶云查询数据(传给国网用)
List<Object> select = salesOrderWebapi.selectObject(null, null); // List<Object> select = salesOrderWebapi.selectObject(null, null);
//拆解select-获取传入金蝶云星空请求的条件数据 //拆解select-获取传入金蝶云星空请求的条件数据
String content = (String) select.get(0); // String content = (String) select.get(0);
//拆解select-获取金蝶云星空的响应信息数据 //拆解select-获取金蝶云星空的响应信息数据
List<Map<String, String>> list=(List<Map<String, String>>)select.get(1); // List<Map<String, String>> list=(List<Map<String, String>>)select.get(1);
//List<Map<String, String>> 转化成 List<List<Object>> //List<Map<String, String>> 转化成 List<List<Object>>
List<List<Object>> Lists = ListInsideMapChangeListInsideList(list); // List<List<Object>> Lists = ListInsideMapChangeListInsideList(list);
//保存金蝶云操作的日志记录
addKingdeeJournalSalesOrder(content,Lists);
//创建list对象 //创建list对象
ArrayList<Salesordererror> salesordererrors = new ArrayList<>(); ArrayList<Salesordererror> salesordererrors = new ArrayList<>();
ArrayList<Salesorder> salesorders = new ArrayList<>(); ArrayList<Salesorder> salesorders = new ArrayList<>();
...@@ -95,26 +106,25 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor ...@@ -95,26 +106,25 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor
// 向国网添加数据 // 向国网添加数据
String rs = salesOrderApi.add(stringStringMap); String rs = salesOrderApi.add(stringStringMap);
//国网日志信息保存(里面进行判断) //国网日志信息保存(里面进行判断)
addSalesOrder(rs,stringStringMap,salesordererrors); addSalesOrder(rs, stringStringMap, salesordererrors);
//明细实体类信息保存 //明细实体类信息保存
pojosave(stringStringMap,salesorders); pojosave(stringStringMap, salesorders);
} }
//明细实体类信息保存操作 //明细实体类信息保存操作
salesorderPojoService.saveBatch(salesorders); salesorderPojoService.saveBatch(salesorders);
//国网日志保存操作 //国网日志保存操作
this.saveBatch(salesordererrors); this.saveBatch(salesordererrors);
return false; return success;
} }
/*List<Map<String, String>> 转化成 List<List<Object>>*/ /*List<Map<String, String>> 转化成 List<List<Object>>*/
public List<List<Object>> ListInsideMapChangeListInsideList(List<Map<String, String>> ListMap) public List<List<Object>> ListInsideMapChangeListInsideList(List<Map<String, String>> ListMap) {
{ List<List<Object>> Listlist = new ArrayList<>();
List<List<Object>> Listlist=new ArrayList<>(); Object o = new Object();
Object o=new Object();
for (Map<String, String> stringStringMap : ListMap) { for (Map<String, String> stringStringMap : ListMap) {
List<Object> Listobject=new ArrayList<>(); List<Object> Listobject = new ArrayList<>();
for (String s : stringStringMap.keySet()) { for (String s : stringStringMap.keySet()) {
o= (Object)stringStringMap.get(s); o = (Object) stringStringMap.get(s);
Listobject.add(o); Listobject.add(o);
} }
Listlist.add(Listobject); Listlist.add(Listobject);
...@@ -123,7 +133,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor ...@@ -123,7 +133,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor
} }
//保存国网操作的日志记录 //保存国网操作的日志记录
public void addSalesOrder(String rs,Map<String,String> stringStringMap,ArrayList<Salesordererror> salesordererrors) { public void addSalesOrder(String rs, Map<String, String> stringStringMap, ArrayList<Salesordererror> salesordererrors) {
JSONObject jsonObject = JSONObject.fromObject(rs); JSONObject jsonObject = JSONObject.fromObject(rs);
if (!jsonObject.get("message").equals("数据库中已存在该记录")) { if (!jsonObject.get("message").equals("数据库中已存在该记录")) {
Salesordererror salesordererror = new Salesordererror(); Salesordererror salesordererror = new Salesordererror();
...@@ -137,20 +147,25 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor ...@@ -137,20 +147,25 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, Salesor
} }
//保存金蝶云操作的日志记录 //保存金蝶云操作的日志记录
public void addKingdeeJournalSalesOrder(String content,List<List<Object>> lists) public List<Map<String, String>> addKingdeeJournalSalesOrder(Map<String, List<List<Object>>> synchronization) throws ParseException {
{ List<List<Object>> selectInList = null;
try { List<Map<String, String>> list = null;
webApiLog.setKingdeeJournal(content,"推送销售订单",lists); if (synchronization != null)
} catch (ParseException e) { for (String key : synchronization.keySet()) {
e.printStackTrace(); selectInList = synchronization.get(key);
} WebApiLog webApiLog = new WebApiLog();
Boolean ny = webApiLog.setKingdeeJournal(key, "推送销售订单", selectInList);
if (ny) {//记录金蝶日志并判断是否转换国网字段
list = salesOrderWebapi.SalesOrder(selectInList);
}
break;
}
return list;
} }
//明细实体保存 //明细实体保存
public void pojosave(Map<String, String> stringStringMap,ArrayList<Salesorder> salesorders) public void pojosave(Map<String, String> stringStringMap, ArrayList<Salesorder> salesorders) {
{ Salesorder s = new Salesorder();
Salesorder s=new Salesorder();
s.setPurchaserhqcode(stringStringMap.get("purchaserhqcode")); s.setPurchaserhqcode(stringStringMap.get("purchaserhqcode"));
s.setSono(stringStringMap.get("sono")); s.setSono(stringStringMap.get("sono"));
s.setSuppliercode(stringStringMap.get("suppliercode")); s.setSuppliercode(stringStringMap.get("suppliercode"));
......
...@@ -35,7 +35,7 @@ public class SalesOrderWebapi implements web_api { ...@@ -35,7 +35,7 @@ public class SalesOrderWebapi implements web_api {
key.put("FMaterialName", "FMaterialName");// 物料名称 key.put("FMaterialName", "FMaterialName");// 物料名称
key.put("FUnitID", "FUnitID");// 物料单位 key.put("FUnitID", "FUnitID");// 物料单位
key.put("FQTY", "FQTY");//物料数量 key.put("FQTY", "FQTY");//物料数量
key.put("FID","FID");//主键 key.put("FID", "FID");//主键
} }
@Autowired @Autowired
...@@ -54,11 +54,11 @@ public class SalesOrderWebapi implements web_api { ...@@ -54,11 +54,11 @@ public class SalesOrderWebapi implements web_api {
return null; return null;
} }
public List<Object>selectObject(Map<String,String> map,String where) { public List<Object> selectObject(Map<String, String> map, String where) {
List<Object> lists = categoryDao.selectTodayAndReturn(sFormId, key); List<Object> lists = categoryDao.selectTodayAndReturn(sFormId, key);
String content = (String)lists.get(0); String content = (String) lists.get(0);
//取出List<Object>第二个数据并且强转 //取出List<Object>第二个数据并且强转
List<List<Object>> list=(List<List<Object>>)lists.get(1); List<List<Object>> list = (List<List<Object>>) lists.get(1);
//销售订单字段转换国网字段 //销售订单字段转换国网字段
List<Map<String, String>> changelist = SalesOrder(list); List<Map<String, String>> changelist = SalesOrder(list);
List<Object> objects = new ArrayList<Object>(); List<Object> objects = new ArrayList<Object>();
...@@ -67,14 +67,20 @@ public class SalesOrderWebapi implements web_api { ...@@ -67,14 +67,20 @@ public class SalesOrderWebapi implements web_api {
return objects; return objects;
} }
public Map<String, List<List<Object>>> synchronization(Map<String, String> map, String where) {
Map<String, List<List<Object>>> stringListMap = categoryDao.selectTodayAndReturnNew(sFormId, key);
return stringListMap;
}
/** /**
* 销售订单字段转换国网字段 * 销售订单字段转换国网字段
* *
* @return * @return
*/ */
private List<Map<String, String>> SalesOrder(List<List<Object>> list) { public List<Map<String, String>> SalesOrder(List<List<Object>> list) {
List<Map<String, String>> salesorderlist = new ArrayList<>(); List<Map<String, String>> salesorderlist = new ArrayList<>();
if(!list.isEmpty()) { if (!list.isEmpty()) {
for (List<Object> list1 : list) { for (List<Object> list1 : list) {
Map<String, String> salesordermap = new HashMap<>(); Map<String, String> salesordermap = new HashMap<>();
salesordermap.put("suppliercode", "linqin");//供应商编码 salesordermap.put("suppliercode", "linqin");//供应商编码
...@@ -106,6 +112,7 @@ public class SalesOrderWebapi implements web_api { ...@@ -106,6 +112,7 @@ public class SalesOrderWebapi implements web_api {
String[] split = replace1.split(","); String[] split = replace1.split(",");
return split[0]; return split[0];
} }
//手动同步 //手动同步
public String add(String kingdee) { public String add(String kingdee) {
String json = categoryDao.add(sFormId, kingdee); String json = categoryDao.add(sFormId, kingdee);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论