package service; import beans.datacontrllog.DataContrlLog; import beans.uploaderpdata.UploadDataToERP_HY; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import common.ServiceController; import common.YosException; import common.data.Row; import common.data.Rows; import common.data.RowsMap; import common.data.SQLFactory; import common.parameter.properties; import org.apache.log4j.Logger; import utility.ERPDocking; import utility.tools.WebRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.Properties; /** * 换货单自动复核任务 */ public class AftersalesmagAutoRecheckService extends ServiceController { private static Logger logger = Logger.getLogger(AftersalesmagAutoRecheckService.class); String[] siteids = {"CCYOSG", "DLB"}; @Override public void serviceRun() throws Exception { for (String siteid : siteids) { if (dbConnect.runSqlQuery("SELECT 1 from sys_site WHERE siteid='" + siteid + "'").isEmpty()) { continue; } Properties yosProperties = properties.getYosProperties(); if (yosProperties.getProperty("system.runmode.debug").equalsIgnoreCase("false")) { Rows rows = dbConnect.runSqlQuery("select * from sa_aftersalesmag where status='审核' and type='换货单' and siteid='" + siteid + "'"); RowsMap rowsMap1 = rows.toRowsMap("billno"); ArrayList sqlList = new ArrayList<>(); ERPDocking erpDocking = new ERPDocking(siteid); JSONArray ErpSareturns = erpDocking.queryErpSareturns(10000, 1, new JSONArray(), "", "", "换货", "", true); if (!ErpSareturns.isEmpty()) { for (Object ErpSareturn : ErpSareturns) { JSONObject erpSareturn = (JSONObject) ErpSareturn; String billno = erpSareturn.getString("freturnnum"); long sa_aftersalesmagid = 0; if (rowsMap1.containsKey(billno)) { if (rowsMap1.get(billno).isNotEmpty()) { sa_aftersalesmagid = rowsMap1.get(billno).get(0).getLong("sa_aftersalesmagid"); } else { logger.info("退货单【" + billno + "】不存在:"); continue; } } else { logger.info("退货单【" + billno + "】不存在:"); continue; } JSONObject object = new JSONObject(); JSONObject objectdetail = new JSONObject(); object.put("access_token", "basicDrp"); object.put("classname", "Sareturn"); object.put("method", "closeSareturn"); objectdetail.put("freturnnum", billno); objectdetail.put("isManual", false); object.put("content", objectdetail); HashMap map = new HashMap<>(); map.put("content-Type", "application/json"); String result = new WebRequest().doPost(object.toString(), erpDocking.getUrl(), map); JSONObject resultobject = JSONObject.parseObject(result); { Rows erpupdatelogRows = dbConnect.runSqlQuery( "select * from sys_erpupdatelog where ownertable='sa_aftersalesmag' and type='复核erp退/换货单' and ownerid=" + sa_aftersalesmagid); SQLFactory sqlFactory; if (!erpupdatelogRows.isEmpty()) { sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新"); sqlFactory.addParameter("sys_erpupdatelogid", erpupdatelogRows.get(0).getLong("sys_erpupdatelogid")); } else { sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增"); sqlFactory.addParameter("sys_erpupdatelogid", createTableID("sys_erpupdatelog")); } sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("userid", 1); sqlFactory.addParameter("username", "admin"); sqlFactory.addParameter("ownerid", sa_aftersalesmagid); sqlFactory.addParameter("ownertable", "sa_aftersalesmag"); sqlFactory.addParameter("type", "复核erp退/换货单"); sqlFactory.addParameter("request", object.toString()); sqlFactory.addParameter("response", resultobject.toJSONString()); if ("0".equals(resultobject.getString("errcode"))) { sqlFactory.addParameter("erpbillno", billno); sqlFactory.addParameter("errmsg", ""); } else { sqlFactory.addParameter("erpbillno", ""); sqlFactory.addParameter("errmsg", resultobject.getString("errmsg")); } sqlFactory.addParameter("status", resultobject.getString("errcode")); sqlList.add(sqlFactory.getSQL()); } if (resultobject.getString("errcode").equals("0")) { sqlList.add("update sa_aftersalesmag set status='复核' where sa_aftersalesmagid='" + sa_aftersalesmagid + "' and siteid='" + siteid + "'"); SQLFactory sqlFactory = new SQLFactory(this, "数据操作日志新增"); sqlFactory.addParameter("sys_contrllogid", createTableID("sys_contrllog")); sqlFactory.addParameter("ownertable", "sa_aftersalesmag"); sqlFactory.addParameter("ownerid", sa_aftersalesmagid); sqlFactory.addParameter("action", "自动复核"); sqlFactory.addParameter("remarks", "换货单自动复核成功"); sqlFactory.addParameter("actionuserid", "1"); sqlFactory.addParameter("actionby", "admin"); sqlFactory.addParameter("siteid", siteid); sqlList.add(sqlFactory.getSQL()); } else { logger.info("换货单自动复核错误:" + resultobject.getString("errmsg")); } } } dbConnect.runSqlUpdate(sqlList); } } } }