自动化立体仓库 - WMS系统
#
lty
2 天以前 cc27cb7605ba48ebe83e9d8736d7e539eb01d36a
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -10,9 +10,11 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.ErpSecretServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.erp.kingdee.entity.param.InFormIdParam;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.erp.kingdee.entity.param.MatLoadParam;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import com.zy.common.utils.HttpHandler;
import com.zy.erp.kingdee.utils.KingDeeUtil;
@@ -22,9 +24,12 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Service
@Slf4j
@@ -33,10 +38,15 @@
    //端口
    private String URL;
    @Value("${erp.address.inaddress}")
    //单据,商品档案地址
    private String inaddress;
    @Value("${erp.address.mataddress}")
    //商品档案地址
    private String matAddress;
    @Value("${erp.address.orgaddress}")
    //货主档案地址
    private String orgAddress;
    @Value("${erp.address.impurreceivebilladdress}")
    //收料单查询
    private String imPurreceiveBillAddress;
    @Autowired
    private ApiLogService apiLogService;
@@ -61,210 +71,386 @@
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private LocOwnerService locOwnerService;
    @Autowired
    private ErpSecretServiceImpl erpSecretService;
    @Value("${erp.login.accountId}")
    private String accountId;
    @Value("${erp.login.xAcfwIdentity}")
    private String xAcfwIdentity;
    @Transactional
    public synchronized ReturnT<String> start() {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //登录金蝶
        ReturnT<String> start = loginAuthenticationHandler.start();
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
        //读取token
        ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
        for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
            InFormIdParam inFormIdParam = new InFormIdParam();
//            MatLoadParam matLoadParam = new MatLoadParam();
            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
            if (Cools.isEmpty(docType)){
            if (Cools.isEmpty(docType) && !kingDeeUtilType.formId.equals("BD_MATERIAL")){
                docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1));
            }
            inFormIdParam.setFormId(kingDeeUtilType.formId);
            inFormIdParam.setLimit(100);
            inFormIdParam.setStartRow("0");
            String FDocumentStatus=null;
            //条件和需要获得的结果拼接
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("FormId", inFormIdParam.getFormId());
            jsonObject.put("Limit", inFormIdParam.getLimit());
            jsonObject.put("StartRow", inFormIdParam.getStartRow());
            String path = null;
            Date now = new Date();
            //物料档案查询
            if(inFormIdParam.getFormId().equals("BD_MATERIAL")){
                Tag tag = tagService.selectByName("全部", 1);
                //物料状态 FUseOrgId .FNumber
                FDocumentStatus="C";
                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='201'");
                jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus");
                // FName : 物料名称 ;
                // FNumber :物料编号;
                // FCreateDate :物料创建时间;
                // FSpecification :物料规格;
                // FDocumentStatus :物料状态
            }else{
                //获取最新时间
                //单据状态
                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,"+kingDeeUtilType.anfme+",FDocumentStatus");
                // FBillNo :单据编号;
                // FCreateDate :单据创建时间;
                // FMaterialId.FNumber : 物料编码;
                // FMaterialName :物料名称;
                // FMaterialId.FSpecification:物料规格
                // anfme : 物料数量
                // FDocumentStatus :单据状态;
            if(kingDeeUtilType.formId.equals("BD_MATERIAL")){
//                Mat latestMat = matService.selectLatest();
                String latestUpdateTime = sdf1.format(docType.getUpdateTime());
//                Tag tag = tagService.selectByName("全部", 1);
                jsonObject.put("id", null);//id
                jsonObject.put("number", null);//编码
                jsonObject.put("createorg_number", null);//创建组织
                jsonObject.put("start_createtime", "2025-01-01 00:00:00");//创建起始
                jsonObject.put("end_createtime", sdf1.format(now));//创建截止
                jsonObject.put("start_modifytime", latestUpdateTime);//更新起始
                jsonObject.put("end_modifytime", sdf1.format(now));//更新截止
                jsonObject.put("start_approvedate", "2025-01-01");//审核起始
                jsonObject.put("end_approvedate", sdf2.format(now));//审核截止
                jsonObject.put("status", Arrays.asList("B", "C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                path = matAddress;
            }
            else if(kingDeeUtilType.formId.equals("BD_RRGANIZATION")){
                jsonObject.put("start_createtime", "2025-01-01 00:00:00");//id
                jsonObject.put("end_createtime", sdf1.format(now));
                jsonObject.put("id", null);
                jsonObject.put("number", null);
                jsonObject.put("createorg_number", null);
                jsonObject.put("status", Arrays.asList("B", "C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                path = orgAddress;
            }
            else if(kingDeeUtilType.formId.equals("PUR_RECEIVEBIll")){
                jsonObject.put("start_biztime", "2025-01-01 00:00:00");//业务起始日期
                jsonObject.put("end_biztime", sdf1.format(now));//业务结束日期
                jsonObject.put("billno", null);
                jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                jsonObject.put("start_auditdate",null);//id
                jsonObject.put("end_auditdate", null);
                jsonObject.put("org_number", null);
                jsonObject.put("supplier_number", null);
                path = imPurreceiveBillAddress;
            }
            JSONObject jsonObject1 = new JSONObject();
            jsonObject1.put("data", jsonObject);
            jsonObject1.put("pageSize", 20);
            jsonObject1.put("pageNo", 1);
            String add = jsonObject1.toJSONString();
            //上报
            String response = "";
            boolean success = false;
            try {
                //获取Cookie值
                HashMap<String, Object> headers = new HashMap<>();
                headers.put("Cookie", start.getContent());
                headers.put("accesstoken", erpSecret.getAccessToken());
                headers.put("x-acgw-identity", xAcfwIdentity);  // 自定义请求头
                response = new HttpHandler.Builder()
                        .setHeaders(headers)
                        .setUri(URL)
                        .setPath(inaddress)
                        .setPath(path)
                        .setJson(add)
                        .build()
                        .doPost();
                JSONArray data = JSON.parseArray(response);
                if(data.size()<=0)  continue;
                if (data.getJSONArray(0).get(0).toString().length()>=20) continue;
                if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {//物料档案
                    Tag tag = tagService.selectByName("全部", 1);
                    for (int j = 0; j < data.size(); j++) {
                        JSONArray jsonArray = data.getJSONArray(j);
                        //对美国时间进行转换
                        Date date = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
                        //生成商品档案
                        //商品编号
                        Mat mat = matService.selectByMatnr(jsonArray.get(1).toString());
                        if (mat == null) {
                            mat = new Mat();
                            mat.setMatnr(jsonArray.get(1).toString());
                            mat.setMaktx(jsonArray.get(0).toString());
                            mat.setSpecs(jsonArray.get(3).toString());//规格
                            mat.setTagId(tag.getId());
                            mat.setCreateTime(date);//商品创建时间
                            mat.setUpdateTime(new Date());
                            mat.setStatus(1);
                            //最新抓取商品时间
                            if (!matService.insert(mat)) {
//                                throw new CoolException("服务器内部错误,请联系管理员");
                                callApiLogSaveMat(mat,kingDeeUtilType, "同步新物料出错!!!"+mat, false);
                                log.info("同步新物料出错!!!参数:[{}]、[{}]",mat,jsonArray);
                            } else {
                                callApiLogSaveMat(mat,kingDeeUtilType, "同步新物料!", true);
//                                log.info("同步新物料[商品编号:{}]", mat.getMatnr());
                            }
                        }else {
                            callApiLogSaveMat(mat,kingDeeUtilType, "商品编号重复:"+mat.getMatnr(), false);
                            log.info("同步新物料[商品编号:{}],商品编号重复!!!", mat.getMatnr());
                        }
                        tag.setUpdateTime(date);
                    }
                    tagService.updateById(tag);
                } else {
                    for (int j = 0; j < data.size(); j++) {
                        JSONArray jsonArray = data.getJSONArray(j);
                        //最新抓取时间
                        Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(2).toString());
                        docType.setCreateTime(jsonDate);
                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
                        if (Cools.isEmpty(order)) {
                            Date now = new Date();
                            // 单据主档
                            order = new Order(
                                    String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                                    jsonArray.get(0).toString(),    // 订单编号
                                    DateUtils.convert(now),    // 单据日期
                                    docType.getDocId(),    // 单据类型
                                    null,    // 项目编号
                                    null,    //
                                    null,    // 调拨项目编号
                                    null,    // 初始票据号
                                    null,    // 票据号
                                    null,    // 客户编号
                                    null,    // 客户
                                    null,    // 联系方式
                                    null,    // 操作人员
                                    null,    // 合计金额
                                    null,    // 优惠率
                                    null,    // 优惠金额
                                    null,    // 销售或采购费用合计
                                    null,    // 实付金额
                                    null,    // 付款类型
                                    null,    // 业务员
                                    null,    // 结算天数
                                    null,    // 邮费支付类型
                                    null,    // 邮费
                                    null,    // 付款时间
                                    null,    // 发货时间
                                    null,    // 物流名称
                                    null,    // 物流单号
                                    1L,    // 订单状态
                                    1,    // 状态
                                    9527L,    // 添加人员
                                    now,    // 添加时间
                                    9527L,    // 修改人员
                                    now,    // 修改时间
                                    null    // 备注
                            );
                            if (!orderService.insert(order)) {
                                callApiLogSaveOrder(order,kingDeeUtilType, "生成单据主档失败,请联系管理员"+order, false);
                                continue;
//                                throw new CoolException("生成单据主档失败,请联系管理员");
                            }
                        }
                        //物料编码
                        Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
                        if (Cools.isEmpty(mat)) {
                            callApiLogSaveOrder(order,kingDeeUtilType, "编号商品检索失败,请先添加商品"+jsonArray.get(2).toString(), false);
                            continue;
//                            throw new CoolException(jsonArray.get(2).toString() + "编号商品检索失败,请先添加商品");
                        }
                        OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
                        if (!Cools.isEmpty(orderDetl1)) {
                            continue;
                        }
                        OrderDetl orderDetl = new OrderDetl();
                        orderDetl.sync(mat);
                        orderDetl.setBatch(null);
                        orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString()));
                        orderDetl.setOrderId(order.getId());
                        orderDetl.setOrderNo(order.getOrderNo());
                        orderDetl.setCreateBy(9527L);
                        orderDetl.setCreateTime(new Date());
                        orderDetl.setUpdateBy(9527L);
                        orderDetl.setUpdateTime(new Date());
                        orderDetl.setStatus(1);
                        orderDetl.setQty(0.0D);
                        if (!orderDetlService.insert(orderDetl)) {
                            callApiLogSaveOrder(order,kingDeeUtilType, "生成单据明细失败,请联系管理员!订单号:"+order.getOrderNo(), false);
//                            throw new CoolException("生成单据明细失败,请联系管理员");
                        }
                    }
                    docTypeService.updateById(docType);
                JSONObject jsonResponse = JSON.parseObject(response);
                if(jsonResponse.getString("errorCode").equals("401")){
                    log.error("检索失败错误信息:{}", jsonResponse.getString("message"));
                    loginAuthenticationHandler.start();
                    continue;
                }
                JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
                if(data.size()<=0)  continue;
                //商品档案同步
                if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {
                    Tag tag = tagService.selectByName("全部", 1);
                    // 处理分页:根据返回的totalCount和pageSize计算页数
                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
                    for (int page = 1; page <= totalPages; page++) {
                        jsonObject1.put("pageNo", page);
                        add = jsonObject1.toJSONString();
                        // 重新发起请求以获取该页的数据
                        response = new HttpHandler.Builder()
                                .setHeaders(headers)
                                .setUri(URL)
                                .setPath(path)
                                .setJson(add)
                                .build()
                                .doPost();
                        jsonResponse = JSON.parseObject(response);
                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
                        for (int j = 0; j < data.size(); j++) {
                            JSONObject jsonObjectNew = data.getJSONObject(j);
                            Date modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
                            String matnr = jsonObjectNew.get("number").toString();
                            String name = jsonObjectNew.get("name").toString();
                            String createTime = jsonObjectNew.get("createtime").toString();
                            Double grossweight = jsonObjectNew.get("grossweight") != null ? new BigDecimal(jsonObjectNew.get("grossweight").toString()).doubleValue() : 0.0;
                            Double height = jsonObjectNew.get("height") != null ? new BigDecimal(jsonObjectNew.get("height").toString()).doubleValue() : 0.0;
                            Double width = jsonObjectNew.get("width") != null ? new BigDecimal(jsonObjectNew.get("width").toString()).doubleValue() : 0.0;
                            Double length = jsonObjectNew.get("length") != null ? new BigDecimal(jsonObjectNew.get("length").toString()).doubleValue() : 0.0;
                            // 生成商品档案
                            Mat mat = matService.selectByMatnr(matnr);
                            if (mat == null) {
                                mat = new Mat();
                                mat.setMatnr(matnr);
                                mat.setMaktx(name);
                                mat.setTagId(tag.getId());
                                mat.setWeight(grossweight);
                                mat.setManLength(length);
                                mat.setHeight(height);
                                mat.setWidth(width);
                                mat.setCreateTime(sdf1.parse(createTime));
                                mat.setUpdateTime(modifyTime);
                                mat.setStatus(1);
                                if (!matService.insert(mat)) {
                                    callApiLogSaveMat(mat, kingDeeUtilType, "同步新物料出错!" + mat, false);
                                    log.info("同步新物料出错!参数:[{}]、[{}]", mat, jsonObjectNew);
                                } else {
                                    callApiLogSaveMat(mat, kingDeeUtilType, "同步新物料成功!", true);
                                    success = true;
                                }
                            } else {
                                boolean isUpdated = false;
                                if (mat.getUpdateTime().compareTo(modifyTime) != 0) {
                                    // 更新字段
                                    if (!mat.getMaktx().equals(name)) mat.setMaktx(name);
                                    if (mat.getWeight().compareTo(grossweight) != 0) mat.setWeight(grossweight);
                                    if (mat.getManLength().compareTo(length) != 0) mat.setManLength(length);
                                    if (mat.getHeight().compareTo(height) != 0) mat.setHeight(height);
                                    if (mat.getWidth().compareTo(width) != 0) mat.setWidth(width);
                                    if (mat.getCreateTime().compareTo(sdf1.parse(createTime)) != 0)
                                        mat.setCreateTime(sdf1.parse(createTime));
                                    mat.setUpdateTime(modifyTime);
                                    isUpdated = true;
                                }
                                // 执行更新操作
                                if (isUpdated) {
                                    if (!matService.updateById(mat)) {
                                        callApiLogSaveMat(mat, kingDeeUtilType, "更新物料出错!" + mat, false);
                                        log.info("更新物料[商品编号:{}], 更新失败!", mat.getMatnr());
                                    } else {
                                        callApiLogSaveMat(mat, kingDeeUtilType, "更新物料成功!", true);
                                        success = true;
                                        log.info("更新物料[商品编号:{}]", mat.getMatnr());
                                    }
                                }
                            }
                        }
                    }
                    if(success){
                        docType.setUpdateTime(now);
                        docTypeService.updateById(docType);
                    }
                }
                else if(kingDeeUtilType.formId.equals("BD_RRGANIZATION")){//货主同步
                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
                    for (int page = 1; page <= totalPages; page++) {
                        jsonObject1.put("pageNo", page);
                        add = jsonObject1.toJSONString();
                        // 重新发起请求以获取该页的数据
                        response = new HttpHandler.Builder()
                                .setHeaders(headers)
                                .setUri(URL)
                                .setPath(path)
                                .setJson(add)
                                .build()
                                .doPost();
                        jsonResponse = JSON.parseObject(response);
                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
                        for (int j = 0; j < data.size(); j++) {
                            JSONObject jsonObjectNew = data.getJSONObject(j);
                            Date updateTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
                            String ownerUuid = jsonObjectNew.get("number").toString();
                            String owner = jsonObjectNew.get("name").toString();
                            Date createTime =  sdf1.parse(jsonObjectNew.get("createtime").toString());
                            // 生成商品档案
                            LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
                            if (locOwner == null) {
                                locOwner = new LocOwner();
                                locOwner.setOwner(owner);
                                locOwner.setOwnerUuid(ownerUuid);
                                locOwner.setCreateTime(createTime);
                                locOwner.setUpdateTime(updateTime);
                                if (!locOwnerService.insert(locOwner)) {
                                    callApiLogSaveOwner(locOwner, kingDeeUtilType, "同步新货主出错!" + locOwner, false);
                                    log.info("同步新货主出错!参数:[{}]、[{}]", locOwner, jsonObjectNew);
                                } else {
                                    callApiLogSaveOwner(locOwner, kingDeeUtilType, "同步新货主成功!", true);
                                    success = true;
                                }
                            } else {
                                boolean isUpdated = false;
                                if (locOwner.getUpdateTime().compareTo(updateTime) != 0) {
                                    // 更新字段
                                    if (!locOwner.getOwner().equals(owner)) locOwner.setOwner(owner);
                                    if (!locOwner.getOwnerUuid().equals(ownerUuid)) locOwner.setOwnerUuid(ownerUuid);
                                    if (locOwner.getCreateTime().compareTo(createTime) != 0)
                                        locOwner.setCreateTime(createTime);
                                    locOwner.setUpdateTime(updateTime);
                                    isUpdated = true;
                                }
                                // 执行更新操作
                                if (isUpdated) {
                                    if (!locOwnerService.updateById(locOwner)) {
                                        callApiLogSaveOwner(locOwner, kingDeeUtilType, "更新物料出错!" + locOwner, false);
                                        log.info("更新货主[货主编号:{}], 更新失败!", locOwner.getOwnerUuid());
                                    } else {
                                        callApiLogSaveOwner(locOwner, kingDeeUtilType, "更新物料成功!", true);
                                        success = true;
                                        log.info("更新货主[货主编号:{}]", locOwner.getOwnerUuid());
                                    }
                                }
                            }
                        }
                    }
                }
//                else {
//                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
//                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
//                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
//                    for (int page = 1; page <= totalPages; page++) {
//                        jsonObject1.put("pageNo", page);
//                        add = jsonObject1.toJSONString();
//                        // 重新发起请求以获取该页的数据
//                        response = new HttpHandler.Builder()
//                                .setHeaders(headers)
//                                .setUri(URL)
//                                .setPath(path)
//                                .setJson(add)
//                                .build()
//                                .doPost();
//
//                        jsonResponse = JSON.parseObject(response);
//                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
//                        for (int j = 0; j < data.size(); j++) {
//                            JSONObject jsonObjectNew = data.getJSONObject(j);
//                            Date updateTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
//                            String ownerUuid = jsonObjectNew.get("number").toString();
//                            String owner = jsonObjectNew.get("name").toString();
//                            Date createTime =  sdf1.parse(jsonObjectNew.get("createtime").toString());
//                            String billNo = jsonObjectNew.get("billno").toString();
//
//                            Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, billNo);
////                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
////                            LocOwner locOwner = null;
////                            if (!Cools.isEmpty(1)) {
////                                locOwner = locOwnerService.selectById(1);
////                            } else {
////                                locOwner = locOwnerService.selectById(1);
////                            }
//                            if (Cools.isEmpty(order)) {
//                                // 单据主档
//                                order = new Order(
//                                        String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
//                                        billNo,    // 订单编号
//                                        createTime,    // 单据日期
//                                        docType.getDocId(),    // 单据类型
//                                        null,    // 项目编号
//                                        "1",    //项目名称 客户PO号
//                                        null,    // 调拨项目编号
//                                        null,    // 初始票据号
//                                        null,    // 票据号
//                                        null,    // 客户编号
//                                        locOwner.getOwner(),    // 客户
//                                        null,    // 联系方式
//                                        null,    // 操作人员
//                                        null,    // 合计金额
//                                        null,    // 优惠率
//                                        null,    // 优惠金额
//                                        null,    // 销售或采购费用合计
//                                        null,    // 实付金额
//                                        null,    // 付款类型
//                                        null,    // 业务员
//                                        null,    // 结算天数
//                                        null,    // 邮费支付类型
//                                        null,    // 邮费
//                                        null,    // 付款时间
//                                        null,    // 发货时间
//                                        null,    // 物流名称
//                                        null,    // 物流单号
//                                        1L,    // 订单状态
//                                        1,    // 状态
//                                        9527L,    // 添加人员
//                                        now,    // 添加时间
//                                        9527L,    // 修改人员
//                                        now,    // 修改时间
//                                        null    // 备注
//                                );
//                                OrderInAndOutUtil.insertOrder(kingDeeUtilType.pakIn == 1, order);
//
////                            if (!orderService.insert(order)) {
////                                if (!jsonDate.equals(docType.getCreateTime())){
////                                    callApiLogSaveOrder(order,kingDeeUtilType, "生成单据主档失败,请联系管理员"+order, false);
////                                }
////                                continue;
//////                                throw new CoolException("生成单据主档失败,请联系管理员");
////                            }
//                            }
//                            //物料编码
//                            Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
//                            if (Cools.isEmpty(mat)) {
//                                if (!jsonDate.equals(docType.getCreateTime())){
//                                    callApiLogSaveOrder(order,kingDeeUtilType, "编号商品检索失败,请先添加商品"+jsonArray.get(2).toString(), false);
//                                }
//                                continue;
//                            }
////                        OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
////                        if (!Cools.isEmpty(orderDetl1)) {
////                            continue;
////                        }
//                            Order order1 = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
//                            List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(kingDeeUtilType.pakIn == 1, order1.getId());
//                            boolean sign = false;
//                            for (OrderDetl orderDetl : orderDetls){
//                                if (orderDetl.getMatnr().equals( jsonArray.get(2).toString())){
//                                    sign = true;
//                                    break;
//                                }
//                            }
//                            if (sign){
//                                continue;
//                            }
//                            OrderDetl orderDetl = new OrderDetl();
//                            orderDetl.sync(mat);
//                            orderDetl.setBatch(null);
//                            orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString()));
//                            orderDetl.setOrderId(order.getId());
//                            orderDetl.setOrderNo(order.getOrderNo());
//                            orderDetl.setCreateBy(9527L);
//                            orderDetl.setCreateTime(new Date());
//                            orderDetl.setUpdateBy(9527L);
//                            orderDetl.setUpdateTime(new Date());
//                            orderDetl.setStatus(1);
//                            orderDetl.setQty(0.0D);
////                        if (!orderDetlService.insert(orderDetl)) {
////                            callApiLogSaveOrder(order,kingDeeUtilType, "生成单据明细失败,请联系管理员!订单号:"+order.getOrderNo(), false);
//////                            throw new CoolException("生成单据明细失败,请联系管理员");
////                        }
//                            OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl);
//                        }
//                        docTypeService.updateById(docType);
//                    }
//                }
            } catch (Exception e) {
                log.error("fail", e);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "轮询数据",
                            URL + inaddress,
                            null,
                            "127.0.0.1",
                            add,
                            response,
                            success
                    );
                } catch (Exception e) {
                    log.error("", e);
                }
            }
        }
        return SUCCESS;
@@ -272,7 +458,17 @@
    public void callApiLogSaveMat(Mat mat, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
        apiLogService.save("获取"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
                "物料编号:" + mat.getMatnr() + "、物料名称:" + mat.getName() + "、类型:" + mat.getTagId$() + "、状态:" + mat.getStatus$(),
                "物料编号:" + mat.getMatnr() + "、物料名称:" + mat.getMaktx() + "、毛重:" + mat.getWeight()
                        + "、长:" + mat.getManLength()
                        + "、宽:" + mat.getWidth()
                        + "、高:" + mat.getHeight()
                        + "、状态:" + mat.getStatus$(),
                response, bool);
    }
    public void callApiLogSaveOwner(LocOwner locOwner, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
        apiLogService.save("获取"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
                "货主编号:" + locOwner.getOwnerUuid() + "、货主名称:" + locOwner.getOwner(),
                response, bool);
    }