diff --git a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java index 216e646..65f3a9f 100644 --- a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java @@ -179,8 +179,8 @@ public class PtxhyyClient extends CommonHttpClient { List detailBizEntities = orderDetailBizDao.selectList(new LambdaQueryWrapper().eq(IoOrderDetailBizEntity::getOrderIdFk, orderEntity.getBillNo())); //单据金额 - BigDecimal djje = detailBizEntities.stream().map(IoOrderDetailBizEntity::getPrice).reduce(BigDecimal.ONE, BigDecimal::add); - List ioOrderInvoiceEntities = IoOrderInvoiceEntity.builder().build().selectList(Wrappers.lambdaQuery(IoOrderInvoiceEntity.class).eq(IoOrderInvoiceEntity::getOrderIdFk, orderEntity.getId())); + BigDecimal djje = detailBizEntities.stream().map(IoOrderDetailBizEntity::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add); + List ioOrderInvoiceEntities = IoOrderInvoiceEntity.builder().build().selectList(Wrappers.lambdaQuery(IoOrderInvoiceEntity.class).eq(IoOrderInvoiceEntity::getOrderIdFk, orderEntity.getBillNo())); int fbbz = 0; if (CollectionUtil.isNotEmpty(ioOrderInvoiceEntities) && ioOrderInvoiceEntities.size() > 0) { fbbz = 1; @@ -193,7 +193,7 @@ public class PtxhyyClient extends CommonHttpClient { } } catch (Exception e) { log.info("查询操作人异常", ExceptionUtil.stacktraceToString(e)); - return ResultVOUtils.error(500, "查询操作人异常!"); + userName = getUserName(orderEntity); } PtxhyyOrderRequest ptxhyyOrderRequest = PtxhyyOrderRequest .builder() @@ -211,7 +211,10 @@ public class PtxhyyClient extends CommonHttpClient { .udixh(udiwmsOrderRequest.getBillNo()) .build(); ptxhyyOrderRequest.setDetailList(new ArrayList<>()); - setOrderDetailList(ioCodeEntities, items, detailBizEntities); + String errMs = setOrderDetailList(ioCodeEntities, items, detailBizEntities); + if (errMs != null) { + return ResultVOUtils.error(500, errMs); + } Collections.reverse(items); for (UdiwmsOrderDetailRequest i : items) { String udim = ""; @@ -219,23 +222,28 @@ public class PtxhyyClient extends CommonHttpClient { udim = i.getCodeList().stream().map(UdiwmsOrderDetailRequest.CodeDetailEntity::getCode).collect(Collectors.joining(",")); } String fphm = ""; - LocalDateTime fprq = null; + String fprq = null; if (CollectionUtil.isNotEmpty(ioOrderInvoiceEntities)) { List invoiceList = ioOrderInvoiceEntities.stream().filter(s -> i.getBindRlFk().equals(s.getBindRlFk()) && i.getBatchNo().equals(s.getBatchNo())) .sorted(Comparator.comparing(IoOrderInvoiceEntity::getInvoiceDate, Comparator.reverseOrder())).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(invoiceList)) { fphm = invoiceList.stream().map(IoOrderInvoiceEntity::getInvoiceCode).collect(Collectors.joining(",")); - fprq = LocalDateTime.parse(DateUtil.formatDateTime(invoiceList.get(0).getInvoiceDate())); + if (invoiceList.get(0).getInvoiceDate() != null) + fprq = DateUtil.formatDateTime(invoiceList.get(0).getInvoiceDate()); ioOrderInvoiceEntities.removeAll(invoiceList); } } + + BigDecimal wzje = i.getPrice().multiply(BigDecimal.valueOf(i.getCount().intValue())); PtxhyyOrderDetailRequest detailRequest = PtxhyyOrderDetailRequest.builder() .wzxh(i.getProductId()) .cjxh(i.getManufactoryCode()) .bzdw(i.getMeasname()) .bzsl(i.getCount()) .wzjg(i.getPrice()) - .lsje(i.getPrice()) + .lsjg(i.getPrice() + "") + .lsje(wzje) + .wzje(wzje + "") .udim(udim) .hsfl(i.getCplb()) .wzph(i.getBatchNo()) @@ -256,13 +264,17 @@ public class PtxhyyClient extends CommonHttpClient { * @param orderDetailRequests 单据详情参数 * @param detailBizEntities 单据业务详情 */ - private void setOrderDetailList(List ioCodeEntities, List orderDetailRequests, List detailBizEntities) { + private String setOrderDetailList(List ioCodeEntities, List orderDetailRequests, List detailBizEntities) { for (IoOrderDetailBizEntity detailBizEntity : detailBizEntities) { UdiwmsOrderDetailRequest item = submitOrderUtil.buildProductInfo(detailBizEntity); + if (item == null) { + return detailBizEntity.getNameCode() + "第三方产品编码未关联"; + } //封装条码信息 submitOrderUtil.setCodeList(ioCodeEntities, detailBizEntity, item); orderDetailRequests.add(item); } + return null; } @Resource @@ -280,15 +292,18 @@ public class PtxhyyClient extends CommonHttpClient { public String getUserName(IoOrderEntity orderEntity) { //创建人非供应商 - if (StrUtil.isNotEmpty(orderEntity.getCreateUser()) && orderEntity.getCreateUser().length() != 14) { + if (StrUtil.isNotEmpty(orderEntity.getCheckUser())) { + AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getReviewUser()); + return authUserEntity.getUserName(); + } else if (StrUtil.isNotEmpty(orderEntity.getReviewUser())) { + AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getReviewUser()); + return authUserEntity.getUserName(); + } else if (StrUtil.isNotEmpty(orderEntity.getCreateUser()) && orderEntity.getCreateUser().length() != 14) { AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getCreateUser()); return authUserEntity.getUserName(); } else if (StrUtil.isNotEmpty(orderEntity.getUpdateUser()) && orderEntity.getUpdateUser().length() != 14) { AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getUpdateUser()); return authUserEntity.getUserName(); - } else if (StrUtil.isNotEmpty(orderEntity.getReviewUser())) { - AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getReviewUser()); - return authUserEntity.getUserName(); } else { List authWarehouseUsers = authWarehouseUserMapper.selectList(new QueryWrapper().eq("code", orderEntity.getInvCode())); if (CollUtil.isNotEmpty(authWarehouseUsers)) { @@ -299,6 +314,15 @@ public class PtxhyyClient extends CommonHttpClient { } + public String getDefaultUserName(IoOrderEntity orderEntity) { + List authWarehouseUsers = authWarehouseUserMapper.selectList(new QueryWrapper().eq("code", orderEntity.getInvCode())); + if (CollUtil.isNotEmpty(authWarehouseUsers)) { + return authWarehouseUsers.get(0).getUserName(); + } + return null; + } + + public BaseResponse submitOrder(IoOrderEntity orderEntity, Object udiwmsOrderRequest) { //记录日志 IoOrderUploadLogEntity uploadLog = new IoOrderUploadLogEntity(); @@ -310,8 +334,6 @@ public class PtxhyyClient extends CommonHttpClient { String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_ORDER_SUBMIT_URL), udiwmsOrderRequest); if (StrUtil.isNotBlank(response)) { try { -// BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); - BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference>() { }); diff --git a/src/main/java/com/glxp/mipsdl/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/mipsdl/entity/inout/IoOrderEntity.java index 92fd42b..726323e 100644 --- a/src/main/java/com/glxp/mipsdl/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/mipsdl/entity/inout/IoOrderEntity.java @@ -8,9 +8,6 @@ import lombok.Data; import java.util.Date; -/** - * 单据主表 - */ @Data @TableName(value = "io_order") public class IoOrderEntity { @@ -43,7 +40,7 @@ public class IoOrderEntity { private String action; /** - * 往来单位(供应商) + * 往来单位 */ @TableField(value = "fromCorp") private String fromCorp; @@ -114,6 +111,13 @@ public class IoOrderEntity { @TableField(value = "auditTime") private Date auditTime; + + @TableField(value = "checkUser") + private String checkUser; + + @TableField(value = "checkTime") + private Date checkTime; + /** * ID */ @@ -121,13 +125,13 @@ public class IoOrderEntity { private String customerId; /** - * 当前部门编码 + * 部门编码 */ @TableField(value = "deptCode") private String deptCode; /** - * 当前仓库编码 + * 仓库编码 */ @TableField(value = "invCode") private String invCode; @@ -168,24 +172,6 @@ public class IoOrderEntity { @TableField(value = "replicateNo") private String replicateNo; - /** - * 预验收关联的出库单号,只有预验收入库才有 - */ - @TableField(value = "preOutBillNo") - private String preOutBillNo; - - /** - * 关联预验收入库单号(只有出库时需校验预验收库存才有) - */ - @TableField(value = "preInBillNo") - private String preInBillNo; - - /** - * 校验信息 - */ - @TableField(value = "errMsg") - private String errMsg; - /** * 单据打印备注 */ @@ -198,17 +184,37 @@ public class IoOrderEntity { @TableField(value = "remark") private String remark; + @TableField(value = "errMsg") + private String errMsg; + + @TableField(value = "preOutBillNo") + private String preOutBillNo; + + @TableField(value = "preInBillNo") + private String preInBillNo; + + @TableField(value = "entrustEnd") + private boolean entrustEnd; + @TableField(value = "reviewSp") + private boolean reviewSp; //是否验收外网单据时,需忽略流转更改为待审核 + + /** - * 单据类型:1.业务单据,2:扫码单据,3:正常单据(只在单据未提交之前有用) + * 单据类型:1.业务单据,2:扫码单据,3.正常处理单据 只有草稿,异常,待处理 */ @TableField(value = "orderType") private Integer orderType; - /** - * 单据是否已验收完成 - */ - @TableField(value = "entrustEnd") - private Boolean entrustEnd; + //单据同步状态 + @TableField(value = "syncStatus") + private Integer syncStatus; + + + @TableField(value = "fromReceiveBillNo") + private String fromReceiveBillNo; + + @TableField(value = "fromThrBillNo") + private String fromThrBillNo; /** * 导出状态/上传状态(0.未导出,1.已导出,2.导出失败) @@ -217,4 +223,47 @@ public class IoOrderEntity { private Integer exportStatus; -} \ No newline at end of file + @TableField(value = "busType") + private Integer busType; //1:正常;2:送货;3.到货 + + + @TableField(value = "deliveryStatus") + private Integer deliveryStatus; //单据送货验收状态 + + @TableField(value = "processStatus") + private Integer processStatus; //退货单据处理状态 + @TableField(value = "inCodeStatus") + private Integer inCodeStatus; //内部码生成状态 + + @TableField(value = "relKey") + private String relKey; //关联单据唯一键 + @TableField(value = "suppleCount") + private Integer suppleCount; //补单次数 + + @TableField(value = "checkStatus") + private Integer checkStatus; //确认状态 + + + // 预验收按单出库,退货 + @TableField(value = "checkPreInOrders") + private String checkPreInOrders; + + + // 预验收按货位出库,退货 + @TableField(value = "checkPreInInvCode") + private String checkPreInInvCode; + + // 预验收按货位出库,退货 + @TableField(value = "checkPreInSpaceCode") + private String checkPreInSpaceCode; + + // 当前货位 + @TableField(value = "curSpaceCode") + private String curSpaceCode; + + // 预验收、寄售当前货位 + @TableField(value = "preCurSpaceCode") + private String preCurSpaceCode; + + +} diff --git a/src/main/java/com/glxp/mipsdl/req/ptxhyy/PtxhyyOrderDetailRequest.java b/src/main/java/com/glxp/mipsdl/req/ptxhyy/PtxhyyOrderDetailRequest.java index 1824e89..6262fa7 100644 --- a/src/main/java/com/glxp/mipsdl/req/ptxhyy/PtxhyyOrderDetailRequest.java +++ b/src/main/java/com/glxp/mipsdl/req/ptxhyy/PtxhyyOrderDetailRequest.java @@ -84,7 +84,7 @@ public class PtxhyyOrderDetailRequest { /** * 发票日期 */ - private LocalDateTime fprq; + private String fprq; private String mjph; } diff --git a/src/main/java/com/glxp/mipsdl/util/SubmitOrderUtil.java b/src/main/java/com/glxp/mipsdl/util/SubmitOrderUtil.java index fe7ef72..e0e40b1 100644 --- a/src/main/java/com/glxp/mipsdl/util/SubmitOrderUtil.java +++ b/src/main/java/com/glxp/mipsdl/util/SubmitOrderUtil.java @@ -118,7 +118,10 @@ public class SubmitOrderUtil { //查询第三方产品名称 ThrProductsEntity thrProductsEntity = thrProductsDao.selectOne(new LambdaQueryWrapper() .eq(ThrProductsEntity::getCode, thirdProductId)); - + if (thrProductsEntity == null) { + log.error("第三方产品编码未关联"); + return null; + } item.setProductName(thrProductsEntity.getName()); //产品名称 item.setBindRlFk(detailBizEntity.getBindRlFk()); item.setStandard(detailBizEntity.getSpec()); //规格型号 @@ -130,6 +133,7 @@ public class SubmitOrderUtil { item.setManufactoryCode(thrProductsEntity.getManufactoryCode()); item.setSupCode(thrProductsEntity.getSupCode()); item.setCplb(thrProductsEntity.getFlbm()); + item.setCount(detailBizEntity.getCount()); return item; }