|  |  |  | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.asrs.task.AbstractHandler; | 
|---|
|  |  |  | import com.zy.asrs.task.core.ReturnT; | 
|---|
|  |  |  | import com.zy.asrs.utils.OrderInAndOutUtil; | 
|---|
|  |  |  | import com.zy.erp.kingdee.entity.param.InFormIdParam; | 
|---|
|  |  |  | import com.zy.erp.kingdee.enums.KingDeeUtilType; | 
|---|
|  |  |  | import com.zy.common.utils.HttpHandler; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.text.SimpleDateFormat; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.HashMap; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | 
|---|
|  |  |  | Tag tag = tagService.selectByName("全部", 1); | 
|---|
|  |  |  | //物料状态 FUseOrgId .FNumber | 
|---|
|  |  |  | FDocumentStatus="C"; | 
|---|
|  |  |  | jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='101'"); | 
|---|
|  |  |  | jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(tag.getUpdateTime())+"' and FDocumentStatus='"+FDocumentStatus+"' and FUseOrgId .FNumber='100'"); | 
|---|
|  |  |  | jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus"); | 
|---|
|  |  |  | // FName : 物料名称 ; | 
|---|
|  |  |  | // FNumber :物料编号; | 
|---|
|  |  |  | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //获取最新时间 | 
|---|
|  |  |  | //单据状态 | 
|---|
|  |  |  | FDocumentStatus="C"; | 
|---|
|  |  |  | //                jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"'"+" and FStockId.Fname='立库'"+" and FDocumentStatus='"+FDocumentStatus+"'"); | 
|---|
|  |  |  | jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"'"+" and FDocumentStatus='"+FDocumentStatus+"'"); | 
|---|
|  |  |  | 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 :单据创建时间; | 
|---|
|  |  |  | 
|---|
|  |  |  | //最新抓取时间 | 
|---|
|  |  |  | Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(1).toString()); | 
|---|
|  |  |  | docType.setCreateTime(jsonDate); | 
|---|
|  |  |  | Order order = orderService.selectByNo(jsonArray.get(0).toString()); | 
|---|
|  |  |  | Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString()); | 
|---|
|  |  |  | //                        Order order = orderService.selectByNo(jsonArray.get(0).toString()); | 
|---|
|  |  |  | if (Cools.isEmpty(order)) { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | // 单据主档 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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("生成单据主档失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                            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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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)) { | 
|---|
|  |  |  | //                        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.setUpdateTime(new Date()); | 
|---|
|  |  |  | orderDetl.setStatus(1); | 
|---|
|  |  |  | orderDetl.setQty(0.0D); | 
|---|
|  |  |  | if (!orderDetlService.insert(orderDetl)) { | 
|---|
|  |  |  | callApiLogSaveOrder(order,kingDeeUtilType, "生成单据明细失败,请联系管理员!订单号:"+order.getOrderNo(), false); | 
|---|
|  |  |  | //                            throw new CoolException("生成单据明细失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                        if (!orderDetlService.insert(orderDetl)) { | 
|---|
|  |  |  | //                            callApiLogSaveOrder(order,kingDeeUtilType, "生成单据明细失败,请联系管理员!订单号:"+order.getOrderNo(), false); | 
|---|
|  |  |  | ////                            throw new CoolException("生成单据明细失败,请联系管理员"); | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  | OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | docTypeService.updateById(docType); | 
|---|
|  |  |  | } | 
|---|