From aa53f26d63efe34241be34e66e64b3a0af80a335 Mon Sep 17 00:00:00 2001 From: wenshijun Date: Tue, 25 Nov 2025 16:22:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E9=80=81=E7=B3=BB=E7=BB=9F=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delivery/common/utils/http/HttpUtils.java | 49 ++ .../DeliveryAttachmentController.java | 2 +- .../controller/DeliveryOrderController.java | 23 +- .../document/controller/RkInfoController.java | 3 +- .../document/domain/DeliveryOrder.java | 24 +- .../project/document/domain/RkInfo.java | 662 +++++++++++------- .../domain/dto/DeliveryOrderLineDTO.java | 1 + .../document/domain/vo/DeliveryBillVO.java | 30 + .../domain/vo/DeliveryOrderGroupVO.java | 3 +- .../document/mapper/DeliveryOrderMapper.java | 4 +- .../project/document/mapper/RkInfoMapper.java | 4 +- .../service/IDeliveryAttachmentService.java | 6 +- .../service/IDeliveryOrderService.java | 5 +- .../document/service/IRkInfoService.java | 4 +- .../impl/DeliveryAttachmentServiceImpl.java | 107 ++- .../impl/DeliveryOrderServiceImpl.java | 252 +++++-- .../service/impl/RkInfoServiceImpl.java | 3 +- src/main/resources/application.yml | 6 +- .../mybatis/document/DeliveryOrderMapper.xml | 43 +- .../mybatis/document/RkInfoMapper.xml | 7 + 20 files changed, 876 insertions(+), 362 deletions(-) create mode 100644 src/main/java/com/delivery/project/document/domain/vo/DeliveryBillVO.java diff --git a/src/main/java/com/delivery/common/utils/http/HttpUtils.java b/src/main/java/com/delivery/common/utils/http/HttpUtils.java index b8aa6f4..8a7396e 100644 --- a/src/main/java/com/delivery/common/utils/http/HttpUtils.java +++ b/src/main/java/com/delivery/common/utils/http/HttpUtils.java @@ -290,4 +290,53 @@ public class HttpUtils return true; } } + + /** + * 向指定 URL 发送 JSON 格式的 POST 请求 + * + * @param url 发送请求的 URL + * @param json JSON 字符串 + * @return 响应内容 + */ + public static String sendJsonPost(String url, String json) { + PrintWriter out = null; + BufferedReader in = null; + StringBuilder result = new StringBuilder(); + try { + log.info("sendJsonPost - {}", url); + + URL realUrl = new URL(url); + URLConnection conn = realUrl.openConnection(); + + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"); + conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + + out = new PrintWriter(conn.getOutputStream()); + out.print(json); + out.flush(); + + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); + String line; + while ((line = in.readLine()) != null) { + result.append(line); + } + + log.info("recv - {}", result); + } catch (Exception e) { + log.error("调用 HttpUtils.sendJsonPost 异常 url={}, json={}", url, json, e); + } finally { + try { + if (out != null) out.close(); + if (in != null) in.close(); + } catch (Exception ex) { + log.error("关闭流异常", ex); + } + } + return result.toString(); + } + } \ No newline at end of file diff --git a/src/main/java/com/delivery/project/document/controller/DeliveryAttachmentController.java b/src/main/java/com/delivery/project/document/controller/DeliveryAttachmentController.java index e2df446..b8ca61c 100644 --- a/src/main/java/com/delivery/project/document/controller/DeliveryAttachmentController.java +++ b/src/main/java/com/delivery/project/document/controller/DeliveryAttachmentController.java @@ -156,7 +156,7 @@ public class DeliveryAttachmentController extends BaseController // @Log(title = "配送附件-执行绑定", businessType = BusinessType.INSERT) @PostMapping("/executeBind") public AjaxResult executeBind(@Validated @RequestBody DeliveryExecuteBindDTO dto) { - int saved = deliveryAttachmentService.executeBind(dto); + deliveryAttachmentService.executeBind(dto); return AjaxResult.success() .put("orderNo", dto.getOrderNo()) .put("scene", dto.getScene()); diff --git a/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java b/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java index ab19c22..8c7ad59 100644 --- a/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java +++ b/src/main/java/com/delivery/project/document/controller/DeliveryOrderController.java @@ -3,9 +3,9 @@ package com.delivery.project.document.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; -import com.delivery.project.document.domain.RkInfo; import com.delivery.project.document.domain.dto.DeliveryOrderCreateDTO; import com.delivery.project.document.domain.dto.DeliveryOrderSaveDTO; +import com.delivery.project.document.domain.vo.DeliveryBillVO; import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -42,7 +42,7 @@ public class DeliveryOrderController extends BaseController /** * 查询配送单据主列表 */ -// @PreAuthorize("@ss.hasPermi('document:order:list')") + @PreAuthorize("@ss.hasPermi('document:order:list')") @GetMapping("/list") public TableDataInfo list(DeliveryOrder deliveryOrder) { @@ -67,7 +67,7 @@ public class DeliveryOrderController extends BaseController /** * 获取配送单据主详细信息 */ -// @PreAuthorize("@ss.hasPermi('document:order:query')") + @PreAuthorize("@ss.hasPermi('document:order:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -112,8 +112,8 @@ public class DeliveryOrderController extends BaseController * @param dto * @return */ -// @PreAuthorize("@ss.hasPermi('document:order:add')") -// @Log(title = "配送单据主-保存(含附件)", businessType = BusinessType.INSERT) + @PreAuthorize("@ss.hasPermi('document:order:add')") + @Log(title = "配送单据主-保存(含附件)", businessType = BusinessType.INSERT) @PostMapping("/save") public AjaxResult save(@RequestBody DeliveryOrderSaveDTO dto) { String username = "大爷的!"; @@ -123,8 +123,8 @@ public class DeliveryOrderController extends BaseController /** 新增配送单据:同一单号多行写入 */ -// @PreAuthorize("@ss.hasPermi('document:order:add')") -// @Log(title = "配送单据", businessType = BusinessType.INSERT) + @PreAuthorize("@ss.hasPermi('document:order:add')") + @Log(title = "配送单据", businessType = BusinessType.INSERT) @PostMapping("/batch") public AjaxResult createBatch(@RequestBody DeliveryOrderCreateDTO dto) { String plateNo = deliveryOrderService.createOrder(dto); @@ -133,15 +133,15 @@ public class DeliveryOrderController extends BaseController /** 列表:按单号分组(分页) */ // @PreAuthorize("@ss.hasPermi('document:order:list')") - @GetMapping("/group") - public TableDataInfo listGroup(DeliveryOrder query) { + @PostMapping("/group") + public TableDataInfo listGroup(@RequestBody DeliveryOrder query) { startPage(); List list = deliveryOrderService.listGroup(query); return getDataTable(list); } /** 详情:按单号查询所有行 */ -// @PreAuthorize("@ss.hasPermi('document:order:query')") + @PreAuthorize("@ss.hasPermi('document:order:query')") @GetMapping("/detail/{orderNo}") public AjaxResult detail(@PathVariable String orderNo) { @@ -155,7 +155,8 @@ public class DeliveryOrderController extends BaseController */ @GetMapping("/wisdom/rk/list") public AjaxResult listRkFromWisdom() { - List list = deliveryOrderService.listWisdomRkForDelivery(); + // 这里直接返回一对多结构 + List list = deliveryOrderService.listWisdomRkForDelivery(); return AjaxResult.success(list); } } diff --git a/src/main/java/com/delivery/project/document/controller/RkInfoController.java b/src/main/java/com/delivery/project/document/controller/RkInfoController.java index 29984ea..1c4988d 100644 --- a/src/main/java/com/delivery/project/document/controller/RkInfoController.java +++ b/src/main/java/com/delivery/project/document/controller/RkInfoController.java @@ -3,7 +3,7 @@ package com.delivery.project.document.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; -import com.delivery.project.document.service.IVehicleTypeService; +import com.delivery.project.document.domain.RkInfo; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.delivery.framework.aspectj.lang.annotation.Log; import com.delivery.framework.aspectj.lang.enums.BusinessType; -import com.delivery.project.document.domain.RkInfo; import com.delivery.project.document.service.IRkInfoService; import com.delivery.framework.web.controller.BaseController; import com.delivery.framework.web.domain.AjaxResult; diff --git a/src/main/java/com/delivery/project/document/domain/DeliveryOrder.java b/src/main/java/com/delivery/project/document/domain/DeliveryOrder.java index 297062b..3beb8c8 100644 --- a/src/main/java/com/delivery/project/document/domain/DeliveryOrder.java +++ b/src/main/java/com/delivery/project/document/domain/DeliveryOrder.java @@ -25,6 +25,10 @@ public class DeliveryOrder extends BaseEntity { @Excel(name = "配送单据号") private String orderNo; + /** 出库单据号 */ + @Excel(name = "出库单据号") + private String billNoCk; + /** 项目描述 */ @Excel(name = "项目描述") private String xmMs; @@ -144,6 +148,8 @@ public class DeliveryOrder extends BaseEntity { /** 连表查询用:附件列表 */ private List attachments; + private List orderStatusList; + // ===================== 费用与里程 ===================== /** 建议费用(按车型单价*里程的推荐值) */ @Excel(name = "建议费用") @@ -168,7 +174,8 @@ public class DeliveryOrder extends BaseEntity { public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } - + public String getBillNoCk() { return billNoCk; } + public void setBillNoCk(String billNoCk) { this.billNoCk = billNoCk; } public String getXmMs() { return xmMs; } public void setXmMs(String xmMs) { this.xmMs = xmMs; } @@ -214,8 +221,8 @@ public class DeliveryOrder extends BaseEntity { public Date getDeliveryDate() { return deliveryDate; } public void setDeliveryDate(Date deliveryDate) { this.deliveryDate = deliveryDate; } - public String getplateNo() { return plateNo; } - public void setplateNo(String plateNo) { this.plateNo = plateNo; } + public String getPlateNo() { return plateNo; } + public void setPlateNo(String plateNo) { this.plateNo = plateNo; } public String getDriverName() { return driverName; } public void setDriverName(String driverName) { this.driverName = driverName; } @@ -271,11 +278,20 @@ public class DeliveryOrder extends BaseEntity { public BigDecimal getTotalKm() { return totalKm; } public void setTotalKm(BigDecimal totalKm) { this.totalKm = totalKm; } + public List getOrderStatusList() { + return orderStatusList; + } + public void setOrderStatusList(List orderStatusList) { + this.orderStatusList = orderStatusList; + } + + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("orderNo", getOrderNo()) + .append("billNoCk", getBillNoCk()) .append("xmMs", getXmMs()) .append("xmNo", getXmNo()) .append("wlNo", getWlNo()) @@ -291,7 +307,7 @@ public class DeliveryOrder extends BaseEntity { .append("destLng", getDestLng()) .append("destLat", getDestLat()) .append("deliveryDate", getDeliveryDate()) - .append("plateNo", getplateNo()) + .append("plateNo", getPlateNo()) .append("driverName", getDriverName()) .append("driverPhone", getDriverPhone()) .append("shipperName", getShipperName()) diff --git a/src/main/java/com/delivery/project/document/domain/RkInfo.java b/src/main/java/com/delivery/project/document/domain/RkInfo.java index 690b8e7..ebe0873 100644 --- a/src/main/java/com/delivery/project/document/domain/RkInfo.java +++ b/src/main/java/com/delivery/project/document/domain/RkInfo.java @@ -1,28 +1,94 @@ package com.delivery.project.document.domain; -import java.math.BigDecimal; -import java.util.Date; - import com.delivery.framework.aspectj.lang.annotation.Excel; import com.delivery.framework.web.domain.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + /** - * 库存单据明细对象 rk_info + * 库存单据主对象 rk_info * - * @author delivery - * @date 2025-10-14 + * @author zg + * @date 2025-05-28 */ -public class RkInfo extends BaseEntity { +public class RkInfo extends BaseEntity +{ private static final long serialVersionUID = 1L; - // ===================== 基本标识 ===================== + /** 模糊搜索关键字(项目号、项目描述、物料号、物料描述、供应商编码、供应商名称,订单编号) */ + private String keyword; + /** 主键ID */ private Long id; - /** 单据号(入库/库存单据编号) */ + private List ids; + + /** 供应计划ID(对应供应计划表主键) */ + @Excel(name = "供应计划ID") + private Long gysJhId; + + /** 审批人ID(非数据库字段) */ + private String approverId; + + /** 库龄 */ + @Excel(name = "库龄") + private Long stockAge; + + /** 入库类型 */ + private String rkType; + + /** 物资类型 */ + private String wlType; + + /** 所属仓库 */ + private String cangku; + + /** 多状态查询:是否出库(如 0=入库, 1=出库 等) */ + private List isChukuList; + + /** 入库类型名称(联查显示用,导出专用) */ + @Excel(name = "入库类型名称") + private String rkTypeName; + + /** 物资类型名称(联查显示用,导出专用) */ + @Excel(name = "物资类型名称") + private String wlTypeName; + + /** 所属仓库名称(联查显示用,导出专用) */ + @Excel(name = "所属仓库名称") + private String cangkuName; + + /** 入库时间(用户操作入库的日期) */ + @Excel(name = "入库时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date rkTime; + + /** 借用时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "借用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date borrowTime; + + /** 归还时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date returnTime; + + /** 理货员 */ + @Excel(name = "理货员") + private String lihuoY; + + /** 理货员名称(联查显示用,导出专用) */ + private String lihuoYName; + + /** 是否已出库(0未出库,1已出库) */ + @Excel(name = "是否已出库", readConverterExp = "0已入库,1已出库,2待审批,3借料出库,4入库撤销,5出库撤销") + private String isChuku; + + /** 单据号 */ @Excel(name = "单据号") private String billNo; @@ -30,66 +96,28 @@ public class RkInfo extends BaseEntity { @Excel(name = "出库单据号") private String billNoCk; - // ===================== 类型与归属 ===================== - /** 入库类型 */ - @Excel(name = "入库类型") - private String rkType; - - /** 物资类型 */ - @Excel(name = "物资类型") - private String wlType; - - /** 所属仓库 */ - @Excel(name = "所属仓库") - private String cangku; - /** 是否需要配送(0否 1是) */ - @Excel(name = "是否需要配送", readConverterExp = "0=否,1=是") + @Excel(name = "是否需要配送", readConverterExp = "0=否,1=是,2=配送中,3=配送完成") private String isDelivery; - // ===================== 状态与流转 ===================== - /** 出入库状态(0已入库,1已出库,2待审批,3借料出库,4入库撤销,5出库撤销) */ - @Excel(name = "是否已出库", readConverterExp = "0=已入库,1=已出库,2=待审批,3=借料出库,4=入库撤销,5=出库撤销") - private String isChuku; - - /** 审核状态(0入库待审核,1已通过,2已驳回,3出库待审核) */ - @Excel(name = "审核状态", readConverterExp = "0=入库待审核,1=已通过,2=已驳回,3=出库待审核") - private String status; - - /** 是否移库过(0否 1是) */ - @Excel(name = "是否移库过", readConverterExp = "0=否,1=是") - private String hasMoved; - - /** 是否借料(0否,1是,2已归还) */ - @Excel(name = "是否借料", readConverterExp = "0=否,1=是,2=已归还") - private String isBorrowed; - - /** 逻辑删除(0 正常,1 已删除) */ - @Excel(name = "是否删除", readConverterExp = "0=正常,1=已删除") - private String isDelete; - - // ===================== 项目信息 ===================== /** 县局 */ @Excel(name = "县局") private String xj; - /** 项目号(入库/来源项目) */ - @Excel(name = "项目号") + /** 项目号 */ + @Excel(name = "库存项目号") private String xmNo; - /** 项目描述(入库/来源项目) */ - @Excel(name = "项目描述") + /** 项目描述 */ + @Excel(name = "库存项目描述") private String xmMs; - /** 出库项目号(领取方项目) */ - @Excel(name = "出库项目号(领取方项目)") + @Excel(name = "领取方项目号") private String xmNoCk; - /** 出库项目描述(领取方项目) */ - @Excel(name = "出库项目描述(领取方项目)") + @Excel(name = "领取方项目描述") private String xmMsCk; - // ===================== 物料/供应信息 ===================== /** 物料号 */ @Excel(name = "物料号") private String wlNo; @@ -98,7 +126,6 @@ public class RkInfo extends BaseEntity { @Excel(name = "物料描述") private String wlMs; - /** 供应商编码 */ @Excel(name = "供应商编码") private String gysNo; @@ -107,15 +134,6 @@ public class RkInfo extends BaseEntity { @Excel(name = "供应商名称") private String gysMc; - /** SAP订单编号 */ - @Excel(name = "SAP订单编号") - private String sapNo; - - /** 行号 */ - @Excel(name = "行号") - private String xh; - - // ===================== 金额/数量 ===================== /** 计划交货金额 */ @Excel(name = "计划交货金额") private BigDecimal jhAmt; @@ -124,6 +142,14 @@ public class RkInfo extends BaseEntity { @Excel(name = "合同单价") private BigDecimal htDj; + /** SAP订单编号 */ + @Excel(name = "SAP订单编号") + private String sapNo; + + /** 行号 */ + @Excel(name = "行号") + private String xh; + /** 计划交货数量 */ @Excel(name = "计划交货数量") private Long jhQty; @@ -140,16 +166,12 @@ public class RkInfo extends BaseEntity { @Excel(name = "实际入库数量") private BigDecimal realQty; - // ===================== 库位/托盘/实物 ===================== /** 库位码 */ @Excel(name = "库位码") private String pcode; - @Excel(name = "出库类型名称") - private String ckTypeName; - - /** 库位16进制编码 */ - @Excel(name = "库位16进制编码") + /** 库位主键ID */ + @Excel(name = "库位主键ID") private String pcodeId; /** 托盘码 */ @@ -160,225 +182,373 @@ public class RkInfo extends BaseEntity { @Excel(name = "实物ID") private String entityId; - // ===================== 人员/出库信息 ===================== - /** 理货员 */ - @Excel(name = "理货员") - private String lihuoY; + /** 一货一图 - 货物照片URL */ + private String photoUrl; - /** 出库理货员 */ @Excel(name = "出库理货员") private String ckLihuoY; - /** 施工队 */ - @Excel(name = "施工队") - private String teamCode; - - /** 出库类型 */ - @Excel(name = "出库类型") private String ckType; - /** 出库备注 */ - @Excel(name = "出库备注") - private String ckRemark; + @Excel(name = "出库类型名称") + private String ckTypeName; - // ===================== 关键时间 ===================== - /** 入库时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date rkTime; + private String teamCode; + + @Excel(name = "施工队名称") + private String teamName; - /** 领用时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "领用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date lyTime; - /** 借用时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "借用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date borrowTime; + @Excel(name = "出库备注") + private String ckRemark; - /** 归还时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date returnTime; + @Excel(name = "出库备注") + private String status; - // ===================== 关联外键 ===================== - /** 供应计划ID(对应供应计划表主键) */ - @Excel(name = "供应计划ID") - private Long gysJhId; + /** 是否移库过(0否 1是) */ + @Excel(name = "是否移库过") + private String hasMoved; - // ===================== MTD 侧重量/体积 ===================== + /** 是否借料(0否 1是) */ + @Excel(name = "是否借料", readConverterExp = "0=否,1=是,2=已归还") + private String isBorrowed; + + /** 签字图片URL(image_type = 0) */ + private String signImageUrl; + + /** 现场图片URL(image_type = 1) */ + private String scenePhotoUrl; + + /** 当前审批结果(0:通过,1:驳回) */ + private String auditResult; + + /** 入库开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + + /** 入库结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; + + /** 领用开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date lyStartTime; + + /** 领用结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date lyEndTime; + + /** 一次封样号 */ + @Excel(name = "一次封样号") + private String fycde1; + + /** 二次封样号 */ + @Excel(name = "二次封样号") + private String fycde2; + + /** 是否删除(0 表示正常,1 表示已删除) */ + private String isDelete; /** 单件重量(kg) */ private BigDecimal weightKg; - /** 单件体积(m³) */ - private BigDecimal volumeM3; - // ===================== Getter / Setter ===================== + /** 单件体积(立方米) */ + private BigDecimal volumeM3; + // Getter 和 Setter 方法 + public String getKeyword() { return keyword; } + public void setKeyword(String keyword) { this.keyword = keyword; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } - public String getBillNo() { return billNo; } - public void setBillNo(String billNo) { this.billNo = billNo; } + public List getIds() { + return ids; + } - public String getBillNoCk() { return billNoCk; } - public void setBillNoCk(String billNoCk) { this.billNoCk = billNoCk; } + public void setIds(List ids) { + this.ids = ids; + } + public Long getGysJhId() { + return gysJhId; + } + public void setGysJhId(Long gysJhId) { + this.gysJhId = gysJhId; + } + + public String getApproverId() { + return approverId; + } + + public void setApproverId(String approverId) { + this.approverId = approverId; + } + public Long getStockAge() { return stockAge; } + public void setStockAge(Long stockAge) { this.stockAge = stockAge; } public String getRkType() { return rkType; } public void setRkType(String rkType) { this.rkType = rkType; } - public String getWlType() { return wlType; } public void setWlType(String wlType) { this.wlType = wlType; } - public String getCangku() { return cangku; } public void setCangku(String cangku) { this.cangku = cangku; } + public String getRkTypeName() { return rkTypeName; } + public void setRkTypeName(String rkTypeName) { this.rkTypeName = rkTypeName; } + public String getWlTypeName() { return wlTypeName; } + public void setWlTypeName(String wlTypeName) { this.wlTypeName = wlTypeName; } + public String getCangkuName() { return cangkuName; } + public void setCangkuName(String cangkuName) { this.cangkuName = cangkuName; } + public Date getRkTime() { return rkTime; } + public void setRkTime(Date rkTime) { this.rkTime = rkTime; } + public Date getBorrowTime() { + return borrowTime; + } + public void setBorrowTime(Date borrowTime) { + this.borrowTime = borrowTime; + } - public String getIsDelivery() { return isDelivery; } - public void setIsDelivery(String isDelivery) { this.isDelivery = isDelivery; } - - public String getIsChuku() { return isChuku; } - public void setIsChuku(String isChuku) { this.isChuku = isChuku; } - - public String getStatus() { return status; } - public void setStatus(String status) { this.status = status; } - - public String getHasMoved() { return hasMoved; } - public void setHasMoved(String hasMoved) { this.hasMoved = hasMoved; } - - public String getIsBorrowed() { return isBorrowed; } - public void setIsBorrowed(String isBorrowed) { this.isBorrowed = isBorrowed; } - - public String getIsDelete() { return isDelete; } - public void setIsDelete(String isDelete) { this.isDelete = isDelete; } - - public String getXj() { return xj; } - public void setXj(String xj) { this.xj = xj; } - - public String getXmNo() { return xmNo; } - public void setXmNo(String xmNo) { this.xmNo = xmNo; } - - public String getXmMs() { return xmMs; } - public void setXmMs(String xmMs) { this.xmMs = xmMs; } - - public String getXmNoCk() { return xmNoCk; } - public void setXmNoCk(String xmNoCk) { this.xmNoCk = xmNoCk; } - - public String getXmMsCk() { return xmMsCk; } - public void setXmMsCk(String xmMsCk) { this.xmMsCk = xmMsCk; } - - public String getWlNo() { return wlNo; } - public void setWlNo(String wlNo) { this.wlNo = wlNo; } - - public String getWlMs() { return wlMs; } - public void setWlMs(String wlMs) { this.wlMs = wlMs; } - - public String getGysNo() { return gysNo; } - public void setGysNo(String gysNo) { this.gysNo = gysNo; } - - public String getGysMc() { return gysMc; } - public void setGysMc(String gysMc) { this.gysMc = gysMc; } - - public String getSapNo() { return sapNo; } - public void setSapNo(String sapNo) { this.sapNo = sapNo; } - - public String getXh() { return xh; } - public void setXh(String xh) { this.xh = xh; } - - public BigDecimal getJhAmt() { return jhAmt; } - public void setJhAmt(BigDecimal jhAmt) { this.jhAmt = jhAmt; } - - public BigDecimal getHtDj() { return htDj; } - public void setHtDj(BigDecimal htDj) { this.htDj = htDj; } - - public Long getJhQty() { return jhQty; } - public void setJhQty(Long jhQty) { this.jhQty = jhQty; } - - public Long getHtQty() { return htQty; } - public void setHtQty(Long htQty) { this.htQty = htQty; } - - public String getDw() { return dw; } - public void setDw(String dw) { this.dw = dw; } - - public BigDecimal getRealQty() { return realQty; } - public void setRealQty(BigDecimal realQty) { this.realQty = realQty; } - - public String getPcode() { return pcode; } - public void setPcode(String pcode) { this.pcode = pcode; } - - public String getPcodeId() { return pcodeId; } - public void setPcodeId(String pcodeId) { this.pcodeId = pcodeId; } - - public String getTrayCode() { return trayCode; } - public void setTrayCode(String trayCode) { this.trayCode = trayCode; } - - public String getEntityId() { return entityId; } - public void setEntityId(String entityId) { this.entityId = entityId; } + public Date getReturnTime() { + return returnTime; + } + public void setReturnTime(Date returnTime) { + this.returnTime = returnTime; + } public String getLihuoY() { return lihuoY; } public void setLihuoY(String lihuoY) { this.lihuoY = lihuoY; } + public String getLihuoYName() { return lihuoYName; } + public void setLihuoYName(String lihuoYName) { this.lihuoYName = lihuoYName; } + + public List getIsChukuList() { + return isChukuList; + } + + public void setIsChukuList(List isChukuList) { + this.isChukuList = isChukuList; + } + public String getIsChuku() { return isChuku; } + public void setIsChuku(String isChuku) { this.isChuku = isChuku; } + public String getBillNo() { return billNo; } + public void setBillNo(String billNo) { this.billNo = billNo; } + public String getBillNoCk() { return billNoCk; } + public void setBillNoCk(String billNoCk) { this.billNoCk = billNoCk; } + public String getXj() { return xj; } + public void setXj(String xj) { this.xj = xj; } + public String getXmNo() { return xmNo; } + public void setXmNo(String xmNo) { this.xmNo = xmNo; } + public String getXmMs() { return xmMs; } + public void setXmMs(String xmMs) { this.xmMs = xmMs; } + public String getWlNo() { return wlNo; } + public void setWlNo(String wlNo) { this.wlNo = wlNo; } + public String getWlMs() { return wlMs; } + public void setWlMs(String wlMs) { this.wlMs = wlMs; } + public String getGysNo() { return gysNo; } + public void setGysNo(String gysNo) { this.gysNo = gysNo; } + public String getGysMc() { return gysMc; } + public void setGysMc(String gysMc) { this.gysMc = gysMc; } + public BigDecimal getJhAmt() { return jhAmt; } + public void setJhAmt(BigDecimal jhAmt) { this.jhAmt = jhAmt; } + public BigDecimal getHtDj() { return htDj; } + public void setHtDj(BigDecimal htDj) { this.htDj = htDj; } + public String getSapNo() { return sapNo; } + public void setSapNo(String sapNo) { this.sapNo = sapNo; } + public String getXh() { return xh; } + public void setXh(String xh) { this.xh = xh; } + public Long getJhQty() { return jhQty; } + public void setJhQty(Long jhQty) { this.jhQty = jhQty; } + public Long getHtQty() { return htQty; } + public void setHtQty(Long htQty) { this.htQty = htQty; } + public String getDw() { return dw; } + public void setDw(String dw) { this.dw = dw; } + public BigDecimal getRealQty() { return realQty; } + public void setRealQty(BigDecimal realQty) { this.realQty = realQty; } + public String getPcode() { return pcode; } + public void setPcode(String pcode) { this.pcode = pcode; } + public String getPcodeId() { return pcodeId; } + public void setPcodeId(String pcodeId) { this.pcodeId = pcodeId; } + public String getTrayCode() { return trayCode; } + public void setTrayCode(String trayCode) { this.trayCode = trayCode; } + public String getEntityId() { return entityId; } + public void setEntityId(String entityId) { this.entityId = entityId; } + public String getPhotoUrl() { + return photoUrl; + } + + public void setPhotoUrl(String photoUrl) { + this.photoUrl = photoUrl; + } public String getCkLihuoY() { return ckLihuoY; } public void setCkLihuoY(String ckLihuoY) { this.ckLihuoY = ckLihuoY; } - - public String getCkTypeName() { return ckTypeName; } - public void setCkTypeName(String ckTypeName) { this.ckTypeName = ckTypeName; } - - public String getTeamCode() { return teamCode; } - public void setTeamCode(String teamCode) { this.teamCode = teamCode; } - public String getCkType() { return ckType; } public void setCkType(String ckType) { this.ckType = ckType; } - - public String getCkRemark() { return ckRemark; } - public void setCkRemark(String ckRemark) { this.ckRemark = ckRemark; } - - public Date getRkTime() { return rkTime; } - public void setRkTime(Date rkTime) { this.rkTime = rkTime; } - + public String getCkTypeName() { return ckTypeName; } + public void setCkTypeName(String ckTypeName) { this.ckTypeName = ckTypeName; } + public String getTeamCode() { return teamCode; } + public void setTeamCode(String teamCode) { this.teamCode = teamCode; } + public String getTeamName() { return teamName; } + public void setTeamName(String teamName) { this.teamName = teamName; } public Date getLyTime() { return lyTime; } public void setLyTime(Date lyTime) { this.lyTime = lyTime; } + public String getCkRemark() { return ckRemark; } + public void setCkRemark(String ckRemark) { this.ckRemark = ckRemark; } + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } + public String getHasMoved() { return hasMoved; } + public void setHasMoved(String hasMoved) { this.hasMoved = hasMoved; } + public String getXmNoCk() { + return xmNoCk; + } - public Date getBorrowTime() { return borrowTime; } - public void setBorrowTime(Date borrowTime) { this.borrowTime = borrowTime; } + public void setXmNoCk(String xmNoCk) { + this.xmNoCk = xmNoCk; + } - public Date getReturnTime() { return returnTime; } - public void setReturnTime(Date returnTime) { this.returnTime = returnTime; } + public String getXmMsCk() { + return xmMsCk; + } - public Long getGysJhId() { return gysJhId; } - public void setGysJhId(Long gysJhId) { this.gysJhId = gysJhId; } + public void setXmMsCk(String xmMsCk) { + this.xmMsCk = xmMsCk; + } - public BigDecimal getWeightKg() { return weightKg; } - public void setWeightKg(BigDecimal weightKg) { this.weightKg = weightKg; } - public BigDecimal getVolumeM3() { return volumeM3; } - public void setVolumeM3(BigDecimal volumeM3) { this.volumeM3 = volumeM3; } + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Date getLyStartTime() { + return lyStartTime; + } + + public void setLyStartTime(Date lyStartTime) { + this.lyStartTime = lyStartTime; + } + + public Date getLyEndTime() { + return lyEndTime; + } + + public void setLyEndTime(Date lyEndTime) { + this.lyEndTime = lyEndTime; + } + + public String getIsBorrowed() { + return isBorrowed; + } + + public void setIsBorrowed(String isBorrowed) { + this.isBorrowed = isBorrowed; + } + + public String getSignImageUrl() { + return signImageUrl; + } + + public void setSignImageUrl(String signImageUrl) { + this.signImageUrl = signImageUrl; + } + + public String getScenePhotoUrl() { + return scenePhotoUrl; + } + + public void setScenePhotoUrl(String scenePhotoUrl) { + this.scenePhotoUrl = scenePhotoUrl; + } + + public String getAuditResult() { + return auditResult; + } + + public void setAuditResult(String auditResult) { + this.auditResult = auditResult; + } + + public String getFycde1() { + return fycde1; + } + + public void setFycde1(String fycde1) { + this.fycde1 = fycde1; + } + + public String getFycde2() { + return fycde2; + } + + public void setFycde2(String fycde2) { + this.fycde2 = fycde2; + } + + public String getIsDelete() { return isDelete; } + public void setIsDelete(String isDelete) { this.isDelete = isDelete; } + + + public String getIsDelivery() { + return isDelivery; + } + + public void setIsDelivery(String isDelivery) { + this.isDelivery = isDelivery; + } + + public BigDecimal getWeightKg() { + return weightKg; + } + + public void setWeightKg(BigDecimal weightKg) { + this.weightKg = weightKg; + } + + public BigDecimal getVolumeM3() { + return volumeM3; + } + + public void setVolumeM3(BigDecimal volumeM3) { + this.volumeM3 = volumeM3; + } @Override public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) - .append("billNo", getBillNo()) - .append("billNoCk", getBillNoCk()) + .append("gysJhId", getGysJhId()) + .append("approverId", getApproverId()) .append("rkType", getRkType()) .append("wlType", getWlType()) .append("cangku", getCangku()) - .append("isDelivery", getIsDelivery()) + .append("rkTime", getRkTime()) + .append("borrowTime", getBorrowTime()) + .append("returnTime", getReturnTime()) + .append("lihuoY", getLihuoY()) .append("isChuku", getIsChuku()) - .append("status", getStatus()) - .append("hasMoved", getHasMoved()) - .append("isBorrowed", getIsBorrowed()) - .append("isDelete", getIsDelete()) + .append("billNo", getBillNo()) + .append("billNoCk", getBillNoCk()) + .append("isDelivery", getIsDelivery()) + .append("remark", getRemark()) .append("xj", getXj()) .append("xmNo", getXmNo()) .append("xmMs", getXmMs()) - .append("xmNoCk", getXmNoCk()) - .append("xmMsCk", getXmMsCk()) .append("wlNo", getWlNo()) .append("wlMs", getWlMs()) .append("gysNo", getGysNo()) .append("gysMc", getGysMc()) - .append("sapNo", getSapNo()) - .append("xh", getXh()) .append("jhAmt", getJhAmt()) .append("htDj", getHtDj()) + .append("sapNo", getSapNo()) + .append("xh", getXh()) .append("jhQty", getJhQty()) .append("htQty", getHtQty()) .append("dw", getDw()) @@ -387,22 +557,34 @@ public class RkInfo extends BaseEntity { .append("pcodeId", getPcodeId()) .append("trayCode", getTrayCode()) .append("entityId", getEntityId()) - .append("lihuoY", getLihuoY()) - .append("ckLihuoY", getCkLihuoY()) - .append("teamCode", getTeamCode()) - .append("ckType", getCkType()) - .append("ckTypeName", getCkTypeName()) - .append("ckRemark", getCkRemark()) - .append("rkTime", getRkTime()) - .append("lyTime", getLyTime()) - .append("borrowTime", getBorrowTime()) - .append("returnTime", getReturnTime()) - .append("gysJhId", getGysJhId()) - .append("remark", getRemark()) + .append("photoUrl", getPhotoUrl()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) + .append("ckLihuoY", getCkLihuoY()) + .append("ckType", getCkType()) + .append("ckTypeName", getCkTypeName()) + .append("teamCode", getTeamCode()) + .append("teamName", getTeamName()) + .append("lyTime", getLyTime()) + .append("ckRemark", getCkRemark()) + .append("status", getStatus()) + .append("hasMoved", getHasMoved()) + .append("xmNoCk", getXmNoCk()) + .append("xmMsCk", getXmMsCk()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("isBorrowed", getIsBorrowed()) + .append("signImageUrl", getSignImageUrl()) + .append("scenePhotoUrl", getScenePhotoUrl()) + .append("auditResult", getAuditResult()) + .append("isChukuList", getIsChukuList()) + .append("lyStartTime", getLyStartTime()) + .append("lyEndTime", getLyEndTime()) + .append("fycde1", getFycde1()) + .append("fycde2", getFycde2()) + .append("isDelete", getIsDelete()) .append("weightKg", getWeightKg()) .append("volumeM3", getVolumeM3()) .toString(); diff --git a/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderLineDTO.java b/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderLineDTO.java index 4f4dd6c..4b26984 100644 --- a/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderLineDTO.java +++ b/src/main/java/com/delivery/project/document/domain/dto/DeliveryOrderLineDTO.java @@ -6,6 +6,7 @@ import java.math.BigDecimal; @Data public class DeliveryOrderLineDTO { + private String billNoCk; // 出库单据号 private String xmMs; // 项目描述 private String xmNo; // 项目号 private String wlNo; // 物料号 diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryBillVO.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryBillVO.java new file mode 100644 index 0000000..970d319 --- /dev/null +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryBillVO.java @@ -0,0 +1,30 @@ +package com.delivery.project.document.domain.vo; + +import com.delivery.project.document.domain.RkInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 智慧实物-待配送出库单据 VO(1 对多) + */ +@Data +public class DeliveryBillVO implements Serializable { + + /** 出库单据号(bill_no_ck) */ + private String billNoCk; + + /** 出库理货员 */ + private String ckLihuoY; + + /** 施工队/班组 */ + private String teamCode; + + /** 领用时间(出库时间) */ + private Date lyTime; + + /** 该出库单据下的所有货物明细 */ + private List detailList; +} diff --git a/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderGroupVO.java b/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderGroupVO.java index ed82fae..1782a98 100644 --- a/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderGroupVO.java +++ b/src/main/java/com/delivery/project/document/domain/vo/DeliveryOrderGroupVO.java @@ -26,7 +26,8 @@ public class DeliveryOrderGroupVO { /** 配送单号 */ private String orderNo; - + /** 出库单据号 */ + private String billNoCk; /** 配送日期(格式:yyyy-MM-dd) */ @JsonFormat(pattern = "yyyy-MM-dd") private Date deliveryDate; diff --git a/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java b/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java index 298de3b..fa1c912 100644 --- a/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java +++ b/src/main/java/com/delivery/project/document/mapper/DeliveryOrderMapper.java @@ -80,7 +80,7 @@ public interface DeliveryOrderMapper /** * 根据单号查询 * - * @param plateNo + * @param * @return */ List selectByOrderNo(String orderNo); @@ -91,5 +91,5 @@ public interface DeliveryOrderMapper * @param orderNo * @return */ - DeliveryOrder selectDeliveryOrderByOrderNo(String orderNo); + List selectDeliveryOrderByOrderNo(String orderNo); } diff --git a/src/main/java/com/delivery/project/document/mapper/RkInfoMapper.java b/src/main/java/com/delivery/project/document/mapper/RkInfoMapper.java index d0a7a13..3a940b4 100644 --- a/src/main/java/com/delivery/project/document/mapper/RkInfoMapper.java +++ b/src/main/java/com/delivery/project/document/mapper/RkInfoMapper.java @@ -1,8 +1,8 @@ package com.delivery.project.document.mapper; import java.util.List; + import com.delivery.project.document.domain.RkInfo; -import com.delivery.project.document.domain.dto.RkInfoQueryDTO; import org.apache.ibatis.annotations.Param; /** @@ -68,4 +68,6 @@ public interface RkInfoMapper List selectGroupedByBill(@Param("q") RkInfo rkInfo); + int updateDeliveryStatus(@Param("billNoCk") String billNoCk, + @Param("isDelivery") Integer isDelivery); } diff --git a/src/main/java/com/delivery/project/document/service/IDeliveryAttachmentService.java b/src/main/java/com/delivery/project/document/service/IDeliveryAttachmentService.java index 84669d1..ec51d97 100644 --- a/src/main/java/com/delivery/project/document/service/IDeliveryAttachmentService.java +++ b/src/main/java/com/delivery/project/document/service/IDeliveryAttachmentService.java @@ -64,7 +64,11 @@ public interface IDeliveryAttachmentService */ public int deleteDeliveryAttachmentById(Long id); - + /** + * 开始/完成配送 + * @param dto + * @return + */ int executeBind(DeliveryExecuteBindDTO dto); List upload(MultipartFile[] files, DeliveryAttachUploadDTO dto, HttpServletRequest request); diff --git a/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java b/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java index 5878e90..1dc603c 100644 --- a/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java +++ b/src/main/java/com/delivery/project/document/service/IDeliveryOrderService.java @@ -2,11 +2,10 @@ package com.delivery.project.document.service; import java.util.List; import com.delivery.project.document.domain.DeliveryOrder; -import com.delivery.project.document.domain.RkInfo; import com.delivery.project.document.domain.dto.DeliveryOrderCreateDTO; import com.delivery.project.document.domain.dto.DeliveryOrderSaveDTO; +import com.delivery.project.document.domain.vo.DeliveryBillVO; import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; -import org.springframework.beans.factory.annotation.Value; /** * 配送单据主Service接口 @@ -102,6 +101,6 @@ public interface IDeliveryOrderService * * @return rk_info 列表 */ - List listWisdomRkForDelivery(); + List listWisdomRkForDelivery(); } diff --git a/src/main/java/com/delivery/project/document/service/IRkInfoService.java b/src/main/java/com/delivery/project/document/service/IRkInfoService.java index 3db5c98..8220331 100644 --- a/src/main/java/com/delivery/project/document/service/IRkInfoService.java +++ b/src/main/java/com/delivery/project/document/service/IRkInfoService.java @@ -1,8 +1,8 @@ package com.delivery.project.document.service; -import java.util.List; import com.delivery.project.document.domain.RkInfo; -import com.delivery.project.document.domain.dto.RkInfoQueryDTO; + +import java.util.List; /** * 库存单据明细Service接口 diff --git a/src/main/java/com/delivery/project/document/service/impl/DeliveryAttachmentServiceImpl.java b/src/main/java/com/delivery/project/document/service/impl/DeliveryAttachmentServiceImpl.java index de8440c..1593738 100644 --- a/src/main/java/com/delivery/project/document/service/impl/DeliveryAttachmentServiceImpl.java +++ b/src/main/java/com/delivery/project/document/service/impl/DeliveryAttachmentServiceImpl.java @@ -8,17 +8,23 @@ import java.nio.file.StandardCopyOption; import java.text.SimpleDateFormat; import java.util.*; +import com.alibaba.fastjson2.JSON; import com.delivery.common.exception.ServiceException; import com.delivery.common.utils.DateUtils; import com.delivery.common.utils.StringUtils; +import com.delivery.common.utils.http.HttpUtils; +import com.delivery.framework.web.domain.AjaxResult; import com.delivery.project.document.domain.DeliveryOrder; import com.delivery.project.document.domain.dto.DeliveryAttachItemDTO; import com.delivery.project.document.domain.dto.DeliveryAttachUploadDTO; import com.delivery.project.document.domain.dto.DeliveryExecuteBindDTO; import com.delivery.project.document.mapper.DeliveryOrderMapper; +import com.delivery.project.document.mapper.RkInfoMapper; import com.delivery.project.document.service.IDeliveryOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import com.delivery.project.document.mapper.DeliveryAttachmentMapper; import com.delivery.project.document.domain.DeliveryAttachment; @@ -29,6 +35,8 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import javax.servlet.http.HttpServletRequest; +import static com.delivery.common.utils.SecurityUtils.getUsername; + /** * 配送附件Service业务层处理 * @@ -48,6 +56,12 @@ public class DeliveryAttachmentServiceImpl implements IDeliveryAttachmentService @Autowired private IDeliveryOrderService deliveryOrderService; + @Value("${wisdom.base-url}") + private String wisdomBaseUrl; + + @Autowired + private RkInfoMapper rkInfoMapper; + /** * 查询配送附件 * @@ -126,21 +140,31 @@ public class DeliveryAttachmentServiceImpl implements IDeliveryAttachmentService @Transactional(rollbackFor = Exception.class) public int executeBind(DeliveryExecuteBindDTO dto) { // 1) 校验订单存在 - DeliveryOrder exist = deliveryOrderMapper.selectDeliveryOrderByOrderNo(dto.getOrderNo()); - if (exist == null) { + List existList = deliveryOrderMapper.selectDeliveryOrderByOrderNo(dto.getOrderNo()); + if (existList == null || existList.isEmpty()) { throw new ServiceException("配送单不存在:" + dto.getOrderNo()); } + + String billNoCk = existList.get(0).getBillNoCk(); + + if (StringUtils.isBlank(billNoCk)) { + throw new ServiceException("配送单未绑定出库单号,无法回写库存状态!"); + } if (dto.getAttachments() == null || dto.getAttachments().isEmpty()) { throw new ServiceException("附件列表不能为空"); } // 2) 批量插入附件(只传 URL) List list = new ArrayList<>(); -// String username = getUsername(); - String username = "大爷的!!!"; + String username = getUsername(); +// String username = "大爷的!!!"; for (DeliveryAttachItemDTO it : dto.getAttachments()) { - if (it == null) continue; - if (it.getScene() == null || it.getBizType() == null || it.getUrl() == null) continue; + if (it == null) { + continue; + } + if (it.getScene() == null || it.getBizType() == null || it.getUrl() == null) { + continue; + } DeliveryAttachment a = new DeliveryAttachment(); a.setOrderNo(dto.getOrderNo()); @@ -166,15 +190,15 @@ public class DeliveryAttachmentServiceImpl implements IDeliveryAttachmentService String scene = dto.getScene() == null ? "" : dto.getScene().toUpperCase(Locale.ROOT); if ("ORIGIN".equals(scene)) { - // 起点:司机信息 + 起点经纬度 + 状态=1 + // 起点:司机信息 + 起点经纬度 + 状态=2(起运/配送中) if (dto.getDriverName() != null) patch.setDriverName(dto.getDriverName()); if (dto.getDriverPhone() != null) patch.setDriverPhone(dto.getDriverPhone()); - if (dto.getPlateNo() != null) patch.setplateNo(dto.getPlateNo()); - if (dto.getLng() != null) patch.setOriginLng(BigDecimal.valueOf(dto.getLng())); - if (dto.getLat() != null) patch.setOriginLat(BigDecimal.valueOf(dto.getLat())); + if (dto.getPlateNo() != null) patch.setPlateNo(dto.getPlateNo()); + if (dto.getLng() != null) patch.setOriginLng(BigDecimal.valueOf(dto.getLng())); + if (dto.getLat() != null) patch.setOriginLat(BigDecimal.valueOf(dto.getLat())); patch.setOrderStatus("2"); } else if ("DEST".equals(scene)) { - // 终点:终点经纬度 + 状态=2 + // 终点:终点经纬度 + 费用 + 状态=3(已完成) if (dto.getLng() != null) patch.setDestLng(BigDecimal.valueOf(dto.getLng())); if (dto.getLat() != null) patch.setDestLat(BigDecimal.valueOf(dto.getLat())); @@ -191,13 +215,70 @@ public class DeliveryAttachmentServiceImpl implements IDeliveryAttachmentService patch.setTollFee(dto.getTollFee()); } - patch.setOrderStatus("3"); + patch.setOrderStatus("3"); // 已完成 + } + + deliveryOrderMapper.updateDeliveryOrder(patch); + + // 4) ⭐ 如果是 DEST 场景,远程调用 WMS,把 rk_info.is_delivery 改成 3 + if ("DEST".equals(scene)) { + + if (StringUtils.isBlank(billNoCk)) { + throw new ServiceException("配送单缺少对应的出库单号 billNoCk,无法回写库存状态!"); + } + +// rkInfoMapper.updateDeliveryStatus(billNoCk, 3); + + boolean ok = updateWmsIsDelivery(billNoCk, 3); + if (!ok) { + // 让整个事务回滚,附件 + 配送单状态都撤回 + throw new ServiceException("回写 WMS 配送状态失败,出库单号:" + billNoCk); + } } - deliveryOrderService.updateDeliveryOrder(patch); return list.size(); } + /** + * 远程调用智慧实物管理系统,更新 rk_info.is_delivery 状态 + */ + private boolean updateWmsIsDelivery(String billNoCk, int isDelivery) { + + String url = wisdomBaseUrl + "/wisdom/stock/updateDeliveryStatus"; + + Map body = new HashMap<>(); + body.put("billNoCk", billNoCk); + body.put("isDelivery", isDelivery); + + String json = JSON.toJSONString(body); + + try { + // 用你项目里的 HttpUtils 发 JSON POST + String resp = HttpUtils.sendPost(url, json, MediaType.APPLICATION_JSON_VALUE); + + if (StringUtils.isBlank(resp)) { + log.error("WMS 更新失败,响应为空,url={} billNoCk={}", url, billNoCk); + return false; + } + + AjaxResult result = JSON.parseObject(resp, AjaxResult.class); + + if (result != null && result.isSuccess()) { + return true; + } else { + String msg = (result == null) + ? "响应为空" + : String.valueOf(result.get(AjaxResult.MSG_TAG)); + log.error("WMS 更新失败,billNoCk={},原因={}", billNoCk, msg); + return false; + } + + } catch (Exception e) { + log.error("调用 WMS 接口异常,billNoCk={},error={}", billNoCk, e.getMessage(), e); + return false; + } + } + // 保存目录 D:\delivery private static final String BASE_PATH = "D:/delivery"; diff --git a/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java b/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java index a6cf3e3..cfd11e1 100644 --- a/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java +++ b/src/main/java/com/delivery/project/document/service/impl/DeliveryOrderServiceImpl.java @@ -1,25 +1,30 @@ package com.delivery.project.document.service.impl; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.delivery.common.exception.ServiceException; import com.delivery.common.utils.DateUtils; +import com.delivery.common.utils.SecurityUtils; import com.delivery.common.utils.StringUtils; import com.delivery.common.utils.http.HttpUtils; import com.delivery.framework.web.domain.AjaxResult; import com.delivery.project.document.domain.DeliveryAttachment; +import com.delivery.project.document.domain.Mtd; import com.delivery.project.document.domain.RkInfo; import com.delivery.project.document.domain.dto.DeliveryAttachUploadDTO; import com.delivery.project.document.domain.dto.DeliveryOrderCreateDTO; import com.delivery.project.document.domain.dto.DeliveryOrderLineDTO; import com.delivery.project.document.domain.dto.DeliveryOrderSaveDTO; +import com.delivery.project.document.domain.vo.DeliveryBillVO; import com.delivery.project.document.domain.vo.DeliveryOrderGroupVO; import com.delivery.project.document.mapper.DeliveryAttachmentMapper; +import com.delivery.project.document.mapper.MtdMapper; +import com.delivery.project.document.mapper.RkInfoMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -29,8 +34,6 @@ import com.delivery.project.document.domain.DeliveryOrder; import com.delivery.project.document.service.IDeliveryOrderService; import org.springframework.transaction.annotation.Transactional; -import static com.delivery.common.utils.SecurityUtils.getUsername; - /** * 配送单据主Service业务层处理 * @@ -38,6 +41,7 @@ import static com.delivery.common.utils.SecurityUtils.getUsername; * @date 2025-10-15 */ @Service +@Slf4j public class DeliveryOrderServiceImpl implements IDeliveryOrderService { @Autowired @@ -47,6 +51,12 @@ public class DeliveryOrderServiceImpl implements IDeliveryOrderService @Autowired private DeliveryAttachmentMapper deliveryAttachmentMapper; + @Autowired + private RkInfoMapper rkInfoMapper; + + @Autowired + private MtdMapper mtdMapper; + @Value("${wisdom.base-url}") private String wisdomBaseUrl; @@ -174,75 +184,145 @@ public class DeliveryOrderServiceImpl implements IDeliveryOrderService @Transactional(rollbackFor = Exception.class) public String createOrder(DeliveryOrderCreateDTO dto) { + // ========== 0. 参数校验 ========== + if (dto == null || dto.getItems() == null || dto.getItems().isEmpty()) { + throw new ServiceException("物料明细不能为空"); + } + + // 所有明细应是同一出库单据号,这里简单从第一条取出 + String billNoCk = dto.getItems().get(0).getBillNoCk(); + if (billNoCk == null || billNoCk.trim().isEmpty()) { + throw new ServiceException("明细行缺少出库单据号 billNoCk"); + } + // ========== 1. 生成配送单号 ========== - // 如果前端未指定单号,则按规则生成一个唯一编号(示例:DO20251027104532123) String orderNo = (dto.getOrderNo() == null || dto.getOrderNo().trim().isEmpty()) ? "DO" + DateUtils.dateTimeNow("yyyyMMddHHmmssSSS") : dto.getOrderNo().trim(); - // 当前时间,用于所有行的 create_time Date now = DateUtils.getNowDate(); + String username = SecurityUtils.getUsername(); - // 定义要插入的记录集合 List rows = new ArrayList<>(); // ========== 2. 遍历每一条物料明细 ========== for (DeliveryOrderLineDTO it : dto.getItems()) { - // 创建实体对象(每一行对应一条数据库记录) + // 这里如果允许多个出库单合并配送,可以去掉这个校验 + if (!billNoCk.equals(it.getBillNoCk())) { + throw new ServiceException("当前接口暂不支持多张出库单合并配送,请确保所有明细 billNoCk 相同"); + } + DeliveryOrder row = new DeliveryOrder(); - // ========== 2.1 公共头部字段(相同单号下字段一致) ========== - row.setOrderNo(orderNo); // 同单号绑定 - row.setOriginName(dto.getOriginName()); // 起点名称 - row.setDestName(dto.getDestName()); // 终点名称 - row.setDeliveryDate(dto.getDeliveryDate()); // 配送日期 - row.setShipperName(dto.getShipperName()); // 发货人姓名 - row.setShipperPhone(dto.getShipperPhone()); // 发货人电话 - row.setReceiverName(dto.getReceiverName()); // 收货人姓名 - row.setReceiverPhone(dto.getReceiverPhone()); // 收货人电话 - row.setReceiverOrgName(dto.getReceiverOrgName()); // 收货单位名称 - row.setDeliveryTon(dto.getDeliveryTon()); // 配送吨位 - row.setGoodsSize(dto.getGoodsSize()); // 货物尺寸 - row.setOrderStatus(dto.getOrderStatus() == null ? "1" : dto.getOrderStatus()); // 默认状态:已接单 - row.setVehicleTypeId(dto.getVehicleTypeId()); // 车辆类型ID - row.setVehicleTypeName(dto.getVehicleTypeName()); // 车辆类型名称 - row.setSuggestFee(dto.getSuggestFee()); // 建议费用 - row.setActualFee(dto.getActualFee()); // 实际费用 - row.setTollFee(dto.getTollFee()); // 高速费 - row.setTotalKm(dto.getTotalKm()); // 总公里数 - row.setRemark(dto.getRemark()); // 备注 + // 2.1 公共头部字段(整单一致) + row.setOrderNo(orderNo); + row.setOriginName(dto.getOriginName()); + row.setOriginLng(dto.getOriginLng()); + row.setOriginLat(dto.getOriginLat()); + row.setDestName(dto.getDestName()); + row.setDestLng(dto.getDestLng()); + row.setDestLat(dto.getDestLat()); + row.setDeliveryDate(dto.getDeliveryDate()); + row.setPlateNo(dto.getPlateNo()); + row.setShipperName(dto.getShipperName()); + row.setShipperPhone(dto.getShipperPhone()); + row.setReceiverName(dto.getReceiverName()); + row.setReceiverPhone(dto.getReceiverPhone()); + row.setReceiverOrgName(dto.getReceiverOrgName()); + row.setDeliveryTon(dto.getDeliveryTon()); + row.setGoodsSize(dto.getGoodsSize()); + row.setOrderStatus( + StringUtils.isBlank(dto.getOrderStatus()) ? "1" : dto.getOrderStatus().trim() + ); + row.setVehicleTypeId(dto.getVehicleTypeId()); + row.setVehicleTypeName(dto.getVehicleTypeName()); + row.setSuggestFee(dto.getSuggestFee()); + row.setActualFee(dto.getActualFee()); + row.setTollFee(dto.getTollFee()); + row.setTotalKm(dto.getTotalKm()); + row.setRemark(dto.getRemark()); - // ========== 2.2 明细字段(每行不同) ========== - row.setXmMs(it.getXmMs()); // 项目描述 - row.setXmNo(it.getXmNo()); // 项目号 - row.setWlNo(it.getWlNo()); // 物料号 - row.setWlMs(it.getWlMs()); // 物料描述 - row.setRealQty(it.getRealQty()); // 实际入库数量 - row.setDw(it.getDw()); // 计量单位 - row.setSapNo(it.getSapNo()); // SAP订单号 - row.setGysMc(it.getGysMc()); // 供应商名称 + // 2.2 明细字段 + row.setBillNoCk(it.getBillNoCk()); + row.setXmMs(it.getXmMs()); + row.setXmNo(it.getXmNo()); + row.setWlNo(it.getWlNo()); + row.setWlMs(it.getWlMs()); + row.setRealQty(it.getRealQty()); + row.setDw(it.getDw()); + row.setSapNo(it.getSapNo()); + row.setGysMc(it.getGysMc()); - // ========== 2.3 通用字段 ========== - row.setIsDelete("0"); // 正常状态 - row.setCreateTime(now); // 创建时间 - row.setCreateBy(getUsername()); -// row.setCreateBy("大爷的!"); + // 2.3 通用字段 + row.setIsDelete("0"); + row.setCreateTime(now); + row.setCreateBy(username); - // 添加到批量集合中 rows.add(row); } // ========== 3. 批量落库 ========== if (!rows.isEmpty()) { - // 使用 Mapper.xml 的 一次插入多条记录 deliveryOrderMapper.batchInsert(rows); } - // ========== 4. 返回单号 ========== +// rkInfoMapper.updateDeliveryStatus(billNoCk, 2); + + // ========== 4. 回写 WMS:rk_info.is_delivery = 2(配送中) ========== + // 按出库单据号整单回写 + boolean ok = updateWmsIsDelivery(billNoCk, 2); + if (!ok) { + // 这里直接抛异常,让当前事务回滚,避免出现“配送单已生成,WMS 状态没改”的脏数据 + throw new ServiceException("已生成配送单,但回写 WMS 配送状态失败"); + } + return orderNo; } + /** + * 远程调用 WMS,按出库单据号修改 rk_info.is_delivery 状态 + * + * 请求方式示例: + * POST ${delivery.wms-base-url}/delivery/rkInfo/updateDeliveryStatus + * Body: { "billNoCk": "CK202511200001", "isDelivery": 2 } + */ + private boolean updateWmsIsDelivery(String billNoCk, int isDelivery) { + + String url = wisdomBaseUrl + "/wisdom/stock/updateDeliveryStatus"; + + Map map = new HashMap<>(); + map.put("billNoCk", billNoCk); + map.put("isDelivery", isDelivery); + + String json = JSON.toJSONString(map); + + try { + // 发送 JSON POST(你刚加的 sendJsonPost) + String resp = HttpUtils.sendJsonPost(url, json); + + // 解析为 AjaxResult + AjaxResult result = JSON.parseObject(resp, AjaxResult.class); + + if (result != null && result.isSuccess()) { + // code == 200 + return true; + } else { + // 取 msg:从 Map 里按 key 取 + String msg = (result != null) + ? String.valueOf(result.get(AjaxResult.MSG_TAG)) + : "响应为空"; + log.error("WMS 更新失败:{}", msg); + return false; + } + + } catch (Exception e) { + log.error("WMS 调用异常 billNoCk={} error={}", billNoCk, e.getMessage(), e); + return false; + } + } + + @Override public List listGroup(DeliveryOrder query) { return deliveryOrderMapper.selectGroupList(query); @@ -260,18 +340,23 @@ public class DeliveryOrderServiceImpl implements IDeliveryOrderService * @return List */ @Override - public List listWisdomRkForDelivery() { + public List listWisdomRkForDelivery() { - // 1. 拼接请求地址 - String url = wisdomBaseUrl + "/wisdom/stock/delivery"; + // 1. 远程接口地址 + String url = wisdomBaseUrl + "/wisdom/stock/delivery/list"; - // 2. 发送 GET 请求 - String respJson = HttpUtils.sendGet(url); + StringBuilder param = new StringBuilder(); + param.append("pageNum=1"); + param.append("&pageSize=1000"); + param.append("&isChuku=1"); // 已出库 + param.append("&isDelivery=1"); // 需要配送 + + // 2. 调用智慧实物系统 + String respJson = HttpUtils.sendGet(url, param.toString()); if (StringUtils.isEmpty(respJson)) { throw new ServiceException("调用智慧实物接口失败:返回结果为空"); } - // 3. 解析 JSON(统一返回结构:{ code, msg, data }) JSONObject json = JSON.parseObject(respJson); if (json == null) { throw new ServiceException("调用智慧实物接口失败:解析返回结果为空"); @@ -279,30 +364,63 @@ public class DeliveryOrderServiceImpl implements IDeliveryOrderService Integer code = json.getInteger("code"); if (code == null || code != 200) { - String msg = json.getString("msg"); - throw new ServiceException("调用智慧实物接口失败,code=" + code + ",msg=" + msg); + throw new ServiceException("调用智慧实物接口失败,code=" + code + + ",msg=" + json.getString("msg")); } - Object dataObj = json.get("data"); - if (dataObj == null) { - // 没有数据就返回空集合,不算错误 + JSONArray data = json.getJSONArray("data"); + if (data == null || data.isEmpty()) { return new ArrayList<>(); } - // data 可能本身就是数组,也可能是单个对象 - JSONArray dataArr; - if (dataObj instanceof JSONArray) { - dataArr = (JSONArray) dataObj; - } else { - dataArr = JSON.parseArray(JSON.toJSONString(dataObj)); + // 3. 反序列化为一对多结构:DeliveryBillVO(detailList 中是 RkInfo) + List list = data.toJavaList(DeliveryBillVO.class); + + // 4. 收集所有 wlNo + Set wlNoSet = list.stream() + .filter(bill -> bill.getDetailList() != null && !bill.getDetailList().isEmpty()) + .flatMap(bill -> bill.getDetailList().stream()) + .map(RkInfo::getWlNo) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + + if (wlNoSet.isEmpty()) { + return list; } - if (dataArr == null || dataArr.isEmpty()) { - return new ArrayList<>(); + // 5. 一次性查询本地 delivery_mtd + List mtdList = mtdMapper.selectByWlNos(new ArrayList<>(wlNoSet)); + if (mtdList == null || mtdList.isEmpty()) { + // 本地没有维护重量体积,也直接返回原始数据 + return list; } - // 4. 转成 List - return JSON.parseArray(dataArr.toJSONString(), RkInfo.class); + // 6. 转为 Map + Map mtdMap = mtdList.stream() + .collect(Collectors.toMap( + Mtd::getWlNo, + m -> m, + (a, b) -> a // 同 wlNo 只保留一个 + )); + + // 7. 回填到每一条 RkInfo 上 + for (DeliveryBillVO bill : list) { + if (bill.getDetailList() == null) { + continue; + } + for (RkInfo rk : bill.getDetailList()) { + if (rk == null || StringUtils.isBlank(rk.getWlNo())) { + continue; + } + Mtd m = mtdMap.get(rk.getWlNo()); + if (m != null) { + rk.setWeightKg(m.getWeightKg()); + rk.setVolumeM3(m.getVolumeM3()); + } + } + } + + return list; } } diff --git a/src/main/java/com/delivery/project/document/service/impl/RkInfoServiceImpl.java b/src/main/java/com/delivery/project/document/service/impl/RkInfoServiceImpl.java index 3118e95..622268c 100644 --- a/src/main/java/com/delivery/project/document/service/impl/RkInfoServiceImpl.java +++ b/src/main/java/com/delivery/project/document/service/impl/RkInfoServiceImpl.java @@ -2,11 +2,10 @@ package com.delivery.project.document.service.impl; import java.util.List; import com.delivery.common.utils.DateUtils; -import com.delivery.project.document.domain.dto.RkInfoQueryDTO; +import com.delivery.project.document.domain.RkInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.delivery.project.document.mapper.RkInfoMapper; -import com.delivery.project.document.domain.RkInfo; import com.delivery.project.document.service.IRkInfoService; /** diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 23b606b..75777c1 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -61,7 +61,7 @@ spring: host: 192.168.1.28 port: 6379 database: 0 - password: + password: shzg timeout: 10s lettuce: pool: @@ -116,7 +116,7 @@ gen: allowOverwrite: false minio: - endpoint: http://192.168.1.20:9000 + endpoint: http://192.168.1.28:9000 accessKey: admin secretKey: admin123 bucketName: delivery @@ -124,7 +124,7 @@ minio: upload: base-dir: /data/upload/images - base-url: http://192.168.1.20/files + base-url: http://192.168.1.250/files wisdom: base-url: http://192.168.1.251:8086 diff --git a/src/main/resources/mybatis/document/DeliveryOrderMapper.xml b/src/main/resources/mybatis/document/DeliveryOrderMapper.xml index b55633b..657ef44 100644 --- a/src/main/resources/mybatis/document/DeliveryOrderMapper.xml +++ b/src/main/resources/mybatis/document/DeliveryOrderMapper.xml @@ -10,7 +10,7 @@ - + @@ -228,10 +228,11 @@ resultType="com.delivery.project.document.domain.vo.DeliveryOrderGroupVO"> SELECT dor.order_no AS orderNo, + MAX(dor.bill_no_ck) AS billNoCk, MIN(dor.delivery_date) AS deliveryDate, MAX(dor.origin_name) AS originName, MAX(dor.dest_name) AS destName, - MAX(dor.plate_no) AS plateNo, + MAX(dor.plate_no) AS plateNo, MAX(dor.shipper_name) AS shipperName, MAX(dor.receiver_name) AS receiverName, COUNT(1) AS itemCount, @@ -240,9 +241,21 @@ FROM delivery_order dor (dor.is_delete = '0' OR dor.is_delete = 0 OR dor.is_delete IS NULL) - + + + + AND dor.order_status IN + + #{st} + + + + + AND dor.order_status = #{orderStatus} + AND dor.plate_no = #{plateNo} @@ -263,13 +276,14 @@ - SELECT * FROM delivery_order WHERE order_no = #{orderNo,jdbcType=VARCHAR} AND (is_delete = '0' OR is_delete = 0 OR is_delete IS NULL) - LIMIT 1 + ORDER BY id ASC @@ -374,7 +388,8 @@ INSERT INTO delivery_order - (order_no, xm_ms, xm_no, wl_no, wl_ms, real_qty, dw, sap_no, gys_mc, remark, + (order_no, bill_no_ck, + xm_ms, xm_no, wl_no, wl_ms, real_qty, dw, sap_no, gys_mc, remark, origin_name, origin_lng, origin_lat, dest_name, dest_lng, dest_lat, delivery_date, plate_no, @@ -386,20 +401,30 @@ create_by, create_time, update_by, update_time, is_delete) VALUES - (#{it.orderNo,jdbcType=VARCHAR}, #{it.xmMs}, #{it.xmNo}, #{it.wlNo}, #{it.wlMs}, #{it.realQty}, #{it.dw}, + ( + #{it.orderNo}, + #{it.billNoCk}, + + #{it.xmMs}, #{it.xmNo}, #{it.wlNo}, #{it.wlMs}, #{it.realQty}, #{it.dw}, #{it.sapNo}, #{it.gysMc}, #{it.remark}, + #{it.originName}, #{it.originLng}, #{it.originLat}, #{it.destName}, #{it.destLng}, #{it.destLat}, + #{it.deliveryDate}, #{it.plateNo}, #{it.driverName}, #{it.driverPhone}, #{it.shipperName}, #{it.shipperPhone}, #{it.receiverName}, #{it.receiverPhone}, #{it.receiverOrgName}, + #{it.deliveryTon}, #{it.goodsSize}, #{it.orderStatus}, #{it.vehicleTypeId}, #{it.vehicleTypeName}, + #{it.suggestFee}, #{it.actualFee}, #{it.tollFee}, #{it.totalKm}, - #{it.createBy}, #{it.createTime}, #{it.updateBy}, #{it.updateTime}, #{it.isDelete}) + #{it.createBy}, #{it.createTime}, #{it.updateBy}, #{it.updateTime}, #{it.isDelete} + ) + UPDATE delivery_order diff --git a/src/main/resources/mybatis/document/RkInfoMapper.xml b/src/main/resources/mybatis/document/RkInfoMapper.xml index 7a454a2..d4d679b 100644 --- a/src/main/resources/mybatis/document/RkInfoMapper.xml +++ b/src/main/resources/mybatis/document/RkInfoMapper.xml @@ -454,6 +454,13 @@ where id = #{id} + + UPDATE rk_info + SET is_delivery = #{isDelivery} + WHERE bill_no_ck = #{billNoCk} + AND is_delete = '0' + + delete from rk_info where id = #{id}