123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- package com.steerinfo.dil.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.steerinfo.dil.mapper.AmsNotUploadedEasMapper;
- import com.steerinfo.dil.model.AmsNotUploadedEas;
- import com.steerinfo.dil.wsdl.LoginUtil;
- import com.steerinfo.dil.wsdl.ServiceInfo;
- import com.steerinfo.dil.wsdl.WSContext;
- import com.steerinfo.dil.wsdl.WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator;
- import org.dom4j.Document;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Service;
- import java.util.List;
- import java.util.Map;
- /**
- * @ author :TXF
- * @ time :2022/2/14 21:02
- */
- @Service
- public class KDWebServiceServiceImpl {
- @Autowired
- AmsNotUploadedEasMapper amsNotUploadedEasMapper;
- /**
- *
- * 推送数据给金蝶接口
- * @Author TXF
- * @Date 2022/2/10 17:16
- * @param map n个数据
- * @return Integer 1 成功 0 失败
- **/
- public int sendMesToKD(Map<String, Object> map){
- try {
- String xml = asXmlData(map);
- System.out.println(xml);
- ServiceInfo service = new ServiceInfo("user", "dgjt@kingdee", "eas", "FDDGEAS85", "L2", 1);
- service.setServername("172.16.33.111" , "8888");//正式服务器
- WSContext wsContext = LoginUtil.doEASLogin(service);
- String sessionId = wsContext.getSessionId();
- if(null == sessionId) {
- addNotUploadedEASResult(map);
- System.out.println("[error]: 登陆有问题");
- return 0;
- }
- WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator locator = new WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator();
- String res = locator.getWSUpDaxingMeteringSystemFacade().saveWeighBill(xml);
- Map returnMap = JSON.parseObject(res, Map.class);
- String status = String.valueOf(returnMap.get("Status"));
- if("S02".equals(status)){
- return 1;
- }else if ("S03".equals(status)){
- System.out.println((map.get("orderNumber") + "数据推送金蝶失败:" + res));
- return 0;
- }else {
- addNotUploadedEASResult(map);
- System.out.println((map.get("orderNumber") + "数据推送金蝶失败:"+ returnMap.get("MessageText")));
- return 0;
- }
- } catch (Exception e) {
- addNotUploadedEASResult(map);
- System.out.println(map.get("orderNumber") + "数据推送金蝶失败:" + e.getMessage());
- return 0;
- }
- }
- /**
- * 创建计量数据 金蝶xml格式字符串
- * @Author TXF
- * @Date 2022/2/10 17:32
- * @param map
- * @return
- **/
- public String asXmlData(Map<String, Object> map){
- // 创建一个Document实例
- Document doc = DocumentHelper.createDocument();
- // 添加根节点
- Element requests = doc.addElement("requests");
- //添加第子节点
- Element request = requests.addElement("request");
- request.addElement("TypeID").addText("PUR"); //采购订单类型
- request.addElement("FNumber").addText((String) map.get("resultPoundNo")); //磅单号
- request.addElement("FBizDate").addText((String) map.get("resultTareWeightTime")); // 净重时间
- request.addElement("Carnumber").addText((String) map.get("capacityNumber")); //车牌号
- request.addElement("FTransportOrgID").addText(""); //运输单位
- request.addElement("FGrossScaleID").addText((String) map.get("resultCrossCalculateNumber")); //毛重汽车衡
- request.addElement("FTareScaleID").addText((String) map.get("resultTareCalculateNumber")); //皮重汽车衡
- request.addElement("FGrossWeight").addText((String) map.get("resultCrossWeight")); //毛重
- request.addElement("FTareWeight").addText((String) map.get("resultTareWeight")); //皮重
- request.addElement("FGrossPoundTime").addText((String) map.get("resultCrossWeightTime")); //毛重时间
- request.addElement("FTarePoundTime").addText((String) map.get("resultTareWeightTime")); //皮重时间
- request.addElement("FSourceBillID").addText((String) map.get("No")); //采购订单号
- request.addElement("FSourceBillEntryID").addText((String) map.get("easEntryId")); //分录ID
- request.addElement("FNetWeight").addText((String) map.get("resultNetWeight")); //净重
- request.addElement("FIncidental").addText("0"); //扣杂
- request.addElement("FLastNetWeight").addText((String) map.get("resultNetWeight")); //最后净重
- request.addElement("FDescription").addText(""); //备注
- return doc.asXML();
- }
- /**
- * 如果回传金蝶失败则将数据保存到数据库
- * @Author TXF
- * @Date 2022/2/14 16:35
- * @param map
- * @return
- **/
- public int addNotUploadedEASResult(Map<String, Object> map) {
- AmsNotUploadedEas amsNotUploadedEas = new AmsNotUploadedEas();
- //查询该订单是否已存在
- String orderId = String.valueOf(map.get("orderId"));
- String isExistsOrderId = amsNotUploadedEasMapper.getIsExistsOrderId(orderId);
- if(isExistsOrderId != null){
- return 0;
- }
- amsNotUploadedEas.setId(orderId);
- amsNotUploadedEas.setNo((String) map.get("No"));
- amsNotUploadedEas.setResultPoundNo((String) map.get("resultPoundNo"));
- amsNotUploadedEas.setCapacityNumber((String) map.get("capacityNumber"));
- amsNotUploadedEas.setResultCrossCalculateNumber((String) map.get("resultCrossCalculateNumber"));
- amsNotUploadedEas.setResultTareCalculateNumber((String) map.get("resultTareCalculateNumber"));
- amsNotUploadedEas.setResultCrossWeight((String) map.get("resultCrossWeight"));
- amsNotUploadedEas.setResultTareWeight((String) map.get("resultTareWeight"));
- amsNotUploadedEas.setResultCrossWeightTime((String) map.get("resultCrossWeightTime"));
- amsNotUploadedEas.setResultTareWeightTime((String) map.get("resultTareWeightTime"));
- amsNotUploadedEas.setResultNetWeight((String) map.get("resultNetWeight"));
- amsNotUploadedEas.setEasEntryId((String) map.get("easEntryId"));
- return amsNotUploadedEasMapper.insertSelective(amsNotUploadedEas);
- }
- /**
- * 定时访问未上传金蝶数据 重复抛
- * @Author TXF
- * @Date 2022/2/14 17:01
- * @param
- * @return
- **/
- //@Scheduled(fixedRate = 1000 * 60 * 10)
- public void timingPushMesToKD(){
- List<Map<String, Object>> allNotUploadedEasMes = amsNotUploadedEasMapper.getAllNotUploadedEasMes();
- if(allNotUploadedEasMes != null && allNotUploadedEasMes.size() != 0){
- for (Map<String, Object> map : allNotUploadedEasMes) {
- int i = sendMesToKD(map);
- String orderId = (String) map.get("orderId");
- if (i == 1){
- //如果添加成功则往数据库中删除此数据
- amsNotUploadedEasMapper.deleteByPrimaryKey(orderId);
- System.out.println(orderId + map.get("capacityNumber") + "补传成功");
- }else {
- System.out.println(orderId + map.get("capacityNumber") + "补传失败");
- }
- }
- }
- }
- }
|