Prechádzať zdrojové kódy

添加仓储 集港模块,优化车队运输类型

阿伏兔 4 rokov pred
rodič
commit
6e5bf47e8d
15 zmenil súbory, kde vykonal 1560 pridanie a 57 odobranie
  1. 37 4
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/fleet/orderPlan/ftmsorderbillscarsController.java
  2. 128 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TContainerPortController.java
  3. 1 1
      ruoyi-fleet/src/main/java/com/ruoyi/basicData/service/impl/FleetCarManageServiceImpl.java
  4. 900 1
      ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/domain/Ftmsorderbillscars.java
  5. 46 21
      ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/domain/FtmsorderbillscarsExcel.java
  6. 15 0
      ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/mapper/FtmsorderbillscarsMapper.java
  7. 20 0
      ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/IftmsorderbillscarsService.java
  8. 90 6
      ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/impl/FtmsorderbillscarsServiceImpl.java
  9. 2 2
      ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/impl/FtmsorderbillsplansServiceImpl.java
  10. 59 1
      ruoyi-fleet/src/main/resources/mapper/orderPlan/ftmsorderbillscarsMapper.xml
  11. 7 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TCorpsMapper.java
  12. 29 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java
  13. 212 17
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java
  14. 13 0
      ruoyi-warehouse/src/main/resources/mapper/basicData/TCorpsMapper.xml
  15. 1 4
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

+ 37 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/fleet/orderPlan/ftmsorderbillscarsController.java

@@ -79,6 +79,39 @@ public class ftmsorderbillscarsController extends BaseController {
     }
 
     /**
+     * 查询车辆可配载运单
+     */
+    @GetMapping(value = "/selectStowage")
+    public TableDataInfo selectStowage(Ftmsorderbillscars ftmsorderbillscars) {
+        startPage();
+        List<Map<String, Object>> list = ftmsorderbillscarsService.selectStowageList(ftmsorderbillscars);
+        return getDataTable(list);
+    }
+
+    /**
+     * 提交车辆配载
+     */
+    @PostMapping(value = "/addStowage")
+    public AjaxResult addStowage(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
+        if (StringUtils.isNull(ftmsorderbillscars) || StringUtils.isNull(ftmsorderbillscars.getmBillNo())) {
+            return AjaxResult.error("未找到查询条件或未找到配载运单号,请确认");
+        }
+        return ftmsorderbillscarsService.addStowage(ftmsorderbillscars);
+    }
+
+    /**
+     * 撤销车辆配载
+     */
+    @GetMapping(value = "/revokeStowage/{id}")
+    public AjaxResult revokeStowage(@PathVariable("id") Long id) {
+        if (StringUtils.isNull(id)) {
+            return AjaxResult.error("未找到查询条件,请确认");
+        }
+        return ftmsorderbillscarsService.revokeStowage(id);
+    }
+
+
+    /**
      * 根据手机号查询司机的
      * 新订单、本月订单、本月历程、本月运费
      */
@@ -251,7 +284,7 @@ public class ftmsorderbillscarsController extends BaseController {
     @PostMapping(value = "/vehicleArrangementChange")
     @RepeatSubmit
     public AjaxResult vehicleArrangementChange(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
-        if (StringUtils.isNull(ftmsorderbillscars.getPId())) {
+        if (StringUtils.isNull(ftmsorderbillscars.getpId())) {
             return AjaxResult.error("未找到调度安排信息");
         }
         String status = "change";
@@ -267,7 +300,7 @@ public class ftmsorderbillscarsController extends BaseController {
     @PostMapping(value = "/vehicleArrangementAdd")
     @RepeatSubmit
     public AjaxResult vehicleArrangementAdd(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
-        if (StringUtils.isNull(ftmsorderbillscars.getPId())) {
+        if (StringUtils.isNull(ftmsorderbillscars.getpId())) {
             return AjaxResult.error("未找到调度安排信息");
         }
         String status = "add";
@@ -282,7 +315,7 @@ public class ftmsorderbillscarsController extends BaseController {
     @PostMapping(value = "/vehicleArrangementRevoke")
     @RepeatSubmit
     public AjaxResult vehicleArrangementRevoke(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
-        if (StringUtils.isNull(ftmsorderbillscars.getPId())) {
+        if (StringUtils.isNull(ftmsorderbillscars.getpId())) {
             return AjaxResult.error("未找到调度安排信息");
         }
         String status = "revoke";
@@ -297,7 +330,7 @@ public class ftmsorderbillscarsController extends BaseController {
     @PostMapping(value = "/vehicleArrangementRemove")
     @RepeatSubmit
     public AjaxResult vehicleArrangementRemove(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
-        if (StringUtils.isNull(ftmsorderbillscars.getPId())) {
+        if (StringUtils.isNull(ftmsorderbillscars.getpId())) {
             return AjaxResult.error("未找到调度安排信息");
         }
         String status = "remove";

+ 128 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TContainerPortController.java

@@ -0,0 +1,128 @@
+package com.ruoyi.web.controller.warehouse.warehouseBusiness;
+
+import com.ruoyi.common.annotation.DataScope;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  集港业务Controller
+ */
+@RestController
+@RequestMapping("/warehouseBusiness/containerPort")
+public class TContainerPortController extends BaseController {
+
+    @Autowired
+    private ITWarehouseBillsService itWarehouseBillsService;
+
+    /**
+     *  查询集港业务
+     * @param tWarehouseBills
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:containerPort:list')")
+    @DataScope(deptAlias = "d", userAlias = "u")
+    @GetMapping("/list")
+    public TableDataInfo list (TWarehouseBills tWarehouseBills) {
+        startPage();
+        // 仓库集港业务
+        tWarehouseBills.setfBilltype("CKJG");
+        List<Map<String, Object>> list = itWarehouseBillsService.selectWarehouseBusinessList(tWarehouseBills);
+        return getDataTable(list);
+    }
+
+    /**
+     *  查看集港业务基础资料
+     * @return
+     */
+    @GetMapping("/selectBasicInformation")
+    public AjaxResult selectBasicInformation () {
+        return itWarehouseBillsService.selectBasicInformation();
+    }
+
+    /**
+     *  查看集港业务详情
+     * @param fId   集港id
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:containerPort:edit')")
+    @DataScope(deptAlias = "d", userAlias = "u")
+    @GetMapping("/{fId}")
+    @RepeatSubmit
+    public AjaxResult getInfo (@PathVariable("fId") Long fId) {
+        if (StringUtils.isNull(fId)) {
+            return AjaxResult.error("未找到查询id,请确认");
+        }
+        return itWarehouseBillsService.selectContainerPort(fId);
+    }
+
+    /**
+     *  集港业务保存接口
+     * @param tWarehouseBills   主表业务
+     * @param feesCr    收费
+     * @param feesDr    付费
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:containerPort:add')")
+    @DataScope(deptAlias = "d", userAlias = "u")
+    @PostMapping("/saveContainerPort")
+    @RepeatSubmit
+    public AjaxResult saveContainerPort (@RequestParam("warehouseBills") String tWarehouseBills,
+                                         @RequestParam("feesCr") String feesCr,
+                                         @RequestParam("feesDr") String feesDr) {
+        if (StringUtils.isEmpty(tWarehouseBills)) {
+            return AjaxResult.error("未找到主表保存信息,请确认");
+        }
+        String type = "save";
+        return itWarehouseBillsService.saveContainerPort(tWarehouseBills, feesCr, feesDr, type);
+    }
+
+    /**
+     *  集港业务撤销接口
+     * @param fId   主表业务
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:containerPort:add')")
+    @DataScope(deptAlias = "d", userAlias = "u")
+    @PostMapping("/revokeContainerPort/{fId}")
+    @RepeatSubmit
+    public AjaxResult revokeContainerPort (@PathVariable("fId") Long fId) {
+        if (StringUtils.isNull(fId)) {
+            return AjaxResult.error("未找到主表保存信息,请确认");
+        }
+        return itWarehouseBillsService.revokeContainerPort(fId);
+    }
+
+    /**
+     *  集港业务提交接口
+     * @param tWarehouseBills   主表业务
+     * @param feesCr    收费
+     * @param feesDr    付费
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:containerPort:add')")
+    @DataScope(deptAlias = "d", userAlias = "u")
+    @PostMapping("/addContainerPort")
+    @RepeatSubmit
+    public AjaxResult addContainerPort (@RequestParam("warehouseBills") String tWarehouseBills,
+                                         @RequestParam("feesCr") String feesCr,
+                                         @RequestParam("feesDr") String feesDr) {
+        if (StringUtils.isEmpty(tWarehouseBills)) {
+            return AjaxResult.error("未找到主表保存信息,请确认");
+        }
+        String type = "add";
+        return itWarehouseBillsService.saveContainerPort(tWarehouseBills, feesCr, feesDr, type);
+    }
+
+
+}

+ 1 - 1
ruoyi-fleet/src/main/java/com/ruoyi/basicData/service/impl/FleetCarManageServiceImpl.java

@@ -143,7 +143,7 @@ public class FleetCarManageServiceImpl implements IFleetCarManageService
                 StringUtils.isNull(fleetCarManage1.getCarNum()) ){
             return AjaxResult.error("请填写必输项");
         }
-        if (fleetCarManageMapper.checkCarNumUnique(fleetCarManage1.getCarNum()) > 0) {
+        if (fleetCarManageMapper.checkCarNumUnique(fleetCarManage1.getCarNum()) > 0 && StringUtils.isNull(fleetCarManage1.getId())) {
             return AjaxResult.error("车牌号已存在,请确认");
         }
         fleetCarManage1.setBillStatus(6L);

+ 900 - 1
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/domain/Ftmsorderbillscars.java

@@ -15,7 +15,6 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * @author ruoyi
  * @date 2021-02-22
  */
-@Data
 public class Ftmsorderbillscars extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
@@ -411,7 +410,907 @@ public class Ftmsorderbillscars extends BaseEntity {
     private String remarks;
 
     /**
+     *  配载状态(正常NN, 重去重回主MM, 重去重回从MH)
+     */
+    @Excel(name = "配载状态(正常NN, 重去重回主MM, 重去重回从MH)")
+    private String billKind;
+
+    /**
+     *  配载运单号
+     */
+    @Excel(name = "配载运单号")
+    private String mBillNo;
+
+    /**
      *  查询日期区间
      */
     private List<String> monthList;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getpId() {
+        return pId;
+    }
+
+    public void setpId(Long pId) {
+        this.pId = pId;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public Long getCntrId() {
+        return cntrId;
+    }
+
+    public void setCntrId(Long cntrId) {
+        this.cntrId = cntrId;
+    }
+
+    public String getCntrNo() {
+        return cntrNo;
+    }
+
+    public void setCntrNo(String cntrNo) {
+        this.cntrNo = cntrNo;
+    }
+
+    public Long getCarcorPid() {
+        return carcorPid;
+    }
+
+    public void setCarcorPid(Long carcorPid) {
+        this.carcorPid = carcorPid;
+    }
+
+    public String getMblno() {
+        return mblno;
+    }
+
+    public void setMblno(String mblno) {
+        this.mblno = mblno;
+    }
+
+    public String getCarregNo() {
+        return carregNo;
+    }
+
+    public void setCarregNo(String carregNo) {
+        this.carregNo = carregNo;
+    }
+
+    public String getDriverName() {
+        return driverName;
+    }
+
+    public void setDriverName(String driverName) {
+        this.driverName = driverName;
+    }
+
+    public Long getDriverUserId() {
+        return driverUserId;
+    }
+
+    public void setDriverUserId(Long driverUserId) {
+        this.driverUserId = driverUserId;
+    }
+
+    public String getDriverTel() {
+        return driverTel;
+    }
+
+    public void setDriverTel(String driverTel) {
+        this.driverTel = driverTel;
+    }
+
+    public Date getPlanDate() {
+        return planDate;
+    }
+
+    public void setPlanDate(Date planDate) {
+        this.planDate = planDate;
+    }
+
+    public String getPlanRemarks() {
+        return planRemarks;
+    }
+
+    public void setPlanRemarks(String planRemarks) {
+        this.planRemarks = planRemarks;
+    }
+
+    public Date getAcceptDate() {
+        return acceptDate;
+    }
+
+    public void setAcceptDate(Date acceptDate) {
+        this.acceptDate = acceptDate;
+    }
+
+    public String getAcceptRemarks() {
+        return acceptRemarks;
+    }
+
+    public void setAcceptRemarks(String acceptRemarks) {
+        this.acceptRemarks = acceptRemarks;
+    }
+
+    public Date getLoadDate() {
+        return loadDate;
+    }
+
+    public void setLoadDate(Date loadDate) {
+        this.loadDate = loadDate;
+    }
+
+    public String getLoadRemarks() {
+        return loadRemarks;
+    }
+
+    public void setLoadRemarks(String loadRemarks) {
+        this.loadRemarks = loadRemarks;
+    }
+
+    public Date getMdLoadDate() {
+        return mdLoadDate;
+    }
+
+    public void setMdLoadDate(Date mdLoadDate) {
+        this.mdLoadDate = mdLoadDate;
+    }
+
+    public Date getOffData() {
+        return offData;
+    }
+
+    public void setOffData(Date offData) {
+        this.offData = offData;
+    }
+
+    public String getOffRemarks() {
+        return offRemarks;
+    }
+
+    public void setOffRemarks(String offRemarks) {
+        this.offRemarks = offRemarks;
+    }
+
+    public String getMdLoadRemarks() {
+        return mdLoadRemarks;
+    }
+
+    public void setMdLoadRemarks(String mdLoadRemarks) {
+        this.mdLoadRemarks = mdLoadRemarks;
+    }
+
+    public Date getUnLoadDate() {
+        return unLoadDate;
+    }
+
+    public void setUnLoadDate(Date unLoadDate) {
+        this.unLoadDate = unLoadDate;
+    }
+
+    public String getUnLoadRemarks() {
+        return unLoadRemarks;
+    }
+
+    public void setUnLoadRemarks(String unLoadRemarks) {
+        this.unLoadRemarks = unLoadRemarks;
+    }
+
+    public Date getWaybillDate() {
+        return waybillDate;
+    }
+
+    public void setWaybillDate(Date waybillDate) {
+        this.waybillDate = waybillDate;
+    }
+
+    public BigDecimal getQtyLoad() {
+        return qtyLoad;
+    }
+
+    public void setQtyLoad(BigDecimal qtyLoad) {
+        this.qtyLoad = qtyLoad;
+    }
+
+    public BigDecimal getQtyUnLoad() {
+        return qtyUnLoad;
+    }
+
+    public void setQtyUnLoad(BigDecimal qtyUnLoad) {
+        this.qtyUnLoad = qtyUnLoad;
+    }
+
+    public Long getCntrQty() {
+        return cntrQty;
+    }
+
+    public void setCntrQty(Long cntrQty) {
+        this.cntrQty = cntrQty;
+    }
+
+    public BigDecimal getGopodsLossQty() {
+        return gopodsLossQty;
+    }
+
+    public void setGopodsLossQty(BigDecimal gopodsLossQty) {
+        this.gopodsLossQty = gopodsLossQty;
+    }
+
+    public BigDecimal getCntrWeight() {
+        return cntrWeight;
+    }
+
+    public void setCntrWeight(BigDecimal cntrWeight) {
+        this.cntrWeight = cntrWeight;
+    }
+
+    public BigDecimal getGopodsLossrate() {
+        return gopodsLossrate;
+    }
+
+    public void setGopodsLossrate(BigDecimal gopodsLossrate) {
+        this.gopodsLossrate = gopodsLossrate;
+    }
+
+    public String getWaybillRemarks() {
+        return waybillRemarks;
+    }
+
+    public void setWaybillRemarks(String waybillRemarks) {
+        this.waybillRemarks = waybillRemarks;
+    }
+
+    public BigDecimal getGopodsLossamtCr() {
+        return gopodsLossamtCr;
+    }
+
+    public void setGopodsLossamtCr(BigDecimal gopodsLossamtCr) {
+        this.gopodsLossamtCr = gopodsLossamtCr;
+    }
+
+    public BigDecimal getQtyDr() {
+        return qtyDr;
+    }
+
+    public void setQtyDr(BigDecimal qtyDr) {
+        this.qtyDr = qtyDr;
+    }
+
+    public BigDecimal getGopodsLossamtDr() {
+        return gopodsLossamtDr;
+    }
+
+    public void setGopodsLossamtDr(BigDecimal gopodsLossamtDr) {
+        this.gopodsLossamtDr = gopodsLossamtDr;
+    }
+
+    public BigDecimal getQtyCr() {
+        return qtyCr;
+    }
+
+    public void setQtyCr(BigDecimal qtyCr) {
+        this.qtyCr = qtyCr;
+    }
+
+    public BigDecimal getFreightPriceDr() {
+        return freightPriceDr;
+    }
+
+    public void setFreightPriceDr(BigDecimal freightPriceDr) {
+        this.freightPriceDr = freightPriceDr;
+    }
+
+    public BigDecimal getFreightPriceCr() {
+        return freightPriceCr;
+    }
+
+    public void setFreightPriceCr(BigDecimal freightPriceCr) {
+        this.freightPriceCr = freightPriceCr;
+    }
+
+    public BigDecimal getFreightAmtDr() {
+        return freightAmtDr;
+    }
+
+    public void setFreightAmtDr(BigDecimal freightAmtDr) {
+        this.freightAmtDr = freightAmtDr;
+    }
+
+    public BigDecimal getFreightAmtCr() {
+        return freightAmtCr;
+    }
+
+    public void setFreightAmtCr(BigDecimal freightAmtCr) {
+        this.freightAmtCr = freightAmtCr;
+    }
+
+    public BigDecimal getFeeitemDr() {
+        return feeitemDr;
+    }
+
+    public void setFeeitemDr(BigDecimal feeitemDr) {
+        this.feeitemDr = feeitemDr;
+    }
+
+    public String getFeeitemDrRemarks() {
+        return feeitemDrRemarks;
+    }
+
+    public void setFeeitemDrRemarks(String feeitemDrRemarks) {
+        this.feeitemDrRemarks = feeitemDrRemarks;
+    }
+
+    public BigDecimal getFeeitemCr() {
+        return feeitemCr;
+    }
+
+    public void setFeeitemCr(BigDecimal feeitemCr) {
+        this.feeitemCr = feeitemCr;
+    }
+
+    public String getFeeitemCrRemarks() {
+        return feeitemCrRemarks;
+    }
+
+    public void setFeeitemCrRemarks(String feeitemCrRemarks) {
+        this.feeitemCrRemarks = feeitemCrRemarks;
+    }
+
+    public BigDecimal getAmtDr() {
+        return amtDr;
+    }
+
+    public void setAmtDr(BigDecimal amtDr) {
+        this.amtDr = amtDr;
+    }
+
+    public BigDecimal getAmtCr() {
+        return amtCr;
+    }
+
+    public void setAmtCr(BigDecimal amtCr) {
+        this.amtCr = amtCr;
+    }
+
+    public Date getDueDateDr() {
+        return dueDateDr;
+    }
+
+    public void setDueDateDr(Date dueDateDr) {
+        this.dueDateDr = dueDateDr;
+    }
+
+    public Date getDueDateCr() {
+        return dueDateCr;
+    }
+
+    public void setDueDateCr(Date dueDateCr) {
+        this.dueDateCr = dueDateCr;
+    }
+
+    public Long getOdometerFrom() {
+        return odometerFrom;
+    }
+
+    public void setOdometerFrom(Long odometerFrom) {
+        this.odometerFrom = odometerFrom;
+    }
+
+    public Long getOdometerEnd() {
+        return odometerEnd;
+    }
+
+    public void setOdometerEnd(Long odometerEnd) {
+        this.odometerEnd = odometerEnd;
+    }
+
+    public Long getMilesEmpty() {
+        return milesEmpty;
+    }
+
+    public void setMilesEmpty(Long milesEmpty) {
+        this.milesEmpty = milesEmpty;
+    }
+
+    public Long getMilesLoad() {
+        return milesLoad;
+    }
+
+    public void setMilesLoad(Long milesLoad) {
+        this.milesLoad = milesLoad;
+    }
+
+    public Long getMiles() {
+        return miles;
+    }
+
+    public void setMiles(Long miles) {
+        this.miles = miles;
+    }
+
+    public BigDecimal getDriverbonus() {
+        return driverbonus;
+    }
+
+    public void setDriverbonus(BigDecimal driverbonus) {
+        this.driverbonus = driverbonus;
+    }
+
+    public BigDecimal getCosttoll() {
+        return costtoll;
+    }
+
+    public void setCosttoll(BigDecimal costtoll) {
+        this.costtoll = costtoll;
+    }
+
+    public BigDecimal getCostmaintain() {
+        return costmaintain;
+    }
+
+    public void setCostmaintain(BigDecimal costmaintain) {
+        this.costmaintain = costmaintain;
+    }
+
+    public BigDecimal getCostOth() {
+        return costOth;
+    }
+
+    public void setCostOth(BigDecimal costOth) {
+        this.costOth = costOth;
+    }
+
+    public String getCostRemarks() {
+        return costRemarks;
+    }
+
+    public void setCostRemarks(String costRemarks) {
+        this.costRemarks = costRemarks;
+    }
+
+    public BigDecimal getOilQtyper() {
+        return oilQtyper;
+    }
+
+    public void setOilQtyper(BigDecimal oilQtyper) {
+        this.oilQtyper = oilQtyper;
+    }
+
+    public BigDecimal getOilQty1() {
+        return oilQty1;
+    }
+
+    public void setOilQty1(BigDecimal oilQty1) {
+        this.oilQty1 = oilQty1;
+    }
+
+    public BigDecimal getOilPrice1() {
+        return oilPrice1;
+    }
+
+    public void setOilPrice1(BigDecimal oilPrice1) {
+        this.oilPrice1 = oilPrice1;
+    }
+
+    public BigDecimal getOilAmt1() {
+        return oilAmt1;
+    }
+
+    public void setOilAmt1(BigDecimal oilAmt1) {
+        this.oilAmt1 = oilAmt1;
+    }
+
+    public BigDecimal getOilQty2() {
+        return oilQty2;
+    }
+
+    public void setOilQty2(BigDecimal oilQty2) {
+        this.oilQty2 = oilQty2;
+    }
+
+    public BigDecimal getOilPrice2() {
+        return oilPrice2;
+    }
+
+    public void setOilPrice2(BigDecimal oilPrice2) {
+        this.oilPrice2 = oilPrice2;
+    }
+
+    public BigDecimal getOilAmt2() {
+        return oilAmt2;
+    }
+
+    public void setOilAmt2(BigDecimal oilAmt2) {
+        this.oilAmt2 = oilAmt2;
+    }
+
+    public BigDecimal getOilQty() {
+        return oilQty;
+    }
+
+    public void setOilQty(BigDecimal oilQty) {
+        this.oilQty = oilQty;
+    }
+
+    public BigDecimal getOilPrice() {
+        return oilPrice;
+    }
+
+    public void setOilPrice(BigDecimal oilPrice) {
+        this.oilPrice = oilPrice;
+    }
+
+    public BigDecimal getOilAmt() {
+        return oilAmt;
+    }
+
+    public void setOilAmt(BigDecimal oilAmt) {
+        this.oilAmt = oilAmt;
+    }
+
+    public BigDecimal getOilQtyBlc() {
+        return oilQtyBlc;
+    }
+
+    public void setOilQtyBlc(BigDecimal oilQtyBlc) {
+        this.oilQtyBlc = oilQtyBlc;
+    }
+
+    public BigDecimal getOilAmtBlc() {
+        return oilAmtBlc;
+    }
+
+    public void setOilAmtBlc(BigDecimal oilAmtBlc) {
+        this.oilAmtBlc = oilAmtBlc;
+    }
+
+    public BigDecimal getProfit() {
+        return profit;
+    }
+
+    public void setProfit(BigDecimal profit) {
+        this.profit = profit;
+    }
+
+    public String getInvDrNeed() {
+        return invDrNeed;
+    }
+
+    public void setInvDrNeed(String invDrNeed) {
+        this.invDrNeed = invDrNeed;
+    }
+
+    public String getInvDrStatus() {
+        return invDrStatus;
+    }
+
+    public void setInvDrStatus(String invDrStatus) {
+        this.invDrStatus = invDrStatus;
+    }
+
+    public BigDecimal getInvDrTaxrate() {
+        return invDrTaxrate;
+    }
+
+    public void setInvDrTaxrate(BigDecimal invDrTaxrate) {
+        this.invDrTaxrate = invDrTaxrate;
+    }
+
+    public BigDecimal getInvDrTaxamt() {
+        return invDrTaxamt;
+    }
+
+    public void setInvDrTaxamt(BigDecimal invDrTaxamt) {
+        this.invDrTaxamt = invDrTaxamt;
+    }
+
+    public Date getInvDrDate() {
+        return invDrDate;
+    }
+
+    public void setInvDrDate(Date invDrDate) {
+        this.invDrDate = invDrDate;
+    }
+
+    public String getInvDrNo() {
+        return invDrNo;
+    }
+
+    public void setInvDrNo(String invDrNo) {
+        this.invDrNo = invDrNo;
+    }
+
+    public String getAccchkStaus() {
+        return accchkStaus;
+    }
+
+    public void setAccchkStaus(String accchkStaus) {
+        this.accchkStaus = accchkStaus;
+    }
+
+    public Long getBillStatus() {
+        return billStatus;
+    }
+
+    public void setBillStatus(Long billStatus) {
+        this.billStatus = billStatus;
+    }
+
+    public Long getOrderStatus() {
+        return orderStatus;
+    }
+
+    public void setOrderStatus(Long orderStatus) {
+        this.orderStatus = orderStatus;
+    }
+
+    public Date getAccchkDate() {
+        return accchkDate;
+    }
+
+    public void setAccchkDate(Date accchkDate) {
+        this.accchkDate = accchkDate;
+    }
+
+    public BigDecimal getCostomAmt01() {
+        return costomAmt01;
+    }
+
+    public void setCostomAmt01(BigDecimal costomAmt01) {
+        this.costomAmt01 = costomAmt01;
+    }
+
+    public BigDecimal getStlAmtDr() {
+        return stlAmtDr;
+    }
+
+    public void setStlAmtDr(BigDecimal stlAmtDr) {
+        this.stlAmtDr = stlAmtDr;
+    }
+
+    public BigDecimal getCostomAmt02() {
+        return costomAmt02;
+    }
+
+    public void setCostomAmt02(BigDecimal costomAmt02) {
+        this.costomAmt02 = costomAmt02;
+    }
+
+    public Date getStlDateDr() {
+        return stlDateDr;
+    }
+
+    public void setStlDateDr(Date stlDateDr) {
+        this.stlDateDr = stlDateDr;
+    }
+
+    public BigDecimal getCostomAmt03() {
+        return costomAmt03;
+    }
+
+    public void setCostomAmt03(BigDecimal costomAmt03) {
+        this.costomAmt03 = costomAmt03;
+    }
+
+    public BigDecimal getStlAmtCr() {
+        return stlAmtCr;
+    }
+
+    public void setStlAmtCr(BigDecimal stlAmtCr) {
+        this.stlAmtCr = stlAmtCr;
+    }
+
+    public BigDecimal getCostomAmt04() {
+        return costomAmt04;
+    }
+
+    public void setCostomAmt04(BigDecimal costomAmt04) {
+        this.costomAmt04 = costomAmt04;
+    }
+
+    public Date getStlDateCr() {
+        return stlDateCr;
+    }
+
+    public void setStlDateCr(Date stlDateCr) {
+        this.stlDateCr = stlDateCr;
+    }
+
+    public BigDecimal getCostomAmt05() {
+        return costomAmt05;
+    }
+
+    public void setCostomAmt05(BigDecimal costomAmt05) {
+        this.costomAmt05 = costomAmt05;
+    }
+
+    public BigDecimal getCostomAmt06() {
+        return costomAmt06;
+    }
+
+    public void setCostomAmt06(BigDecimal costomAmt06) {
+        this.costomAmt06 = costomAmt06;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getCostomStr01() {
+        return costomStr01;
+    }
+
+    public void setCostomStr01(String costomStr01) {
+        this.costomStr01 = costomStr01;
+    }
+
+    public String getCostomStr02() {
+        return costomStr02;
+    }
+
+    public void setCostomStr02(String costomStr02) {
+        this.costomStr02 = costomStr02;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getBillKind() {
+        return billKind;
+    }
+
+    public void setBillKind(String billKind) {
+        this.billKind = billKind;
+    }
+
+    public String getmBillNo() {
+        return mBillNo;
+    }
+
+    public void setmBillNo(String mBillNo) {
+        this.mBillNo = mBillNo;
+    }
+
+    public List<String> getMonthList() {
+        return monthList;
+    }
+
+    public void setMonthList(List<String> monthList) {
+        this.monthList = monthList;
+    }
+
+    @Override
+    public String toString() {
+        return "Ftmsorderbillscars{" +
+                "id=" + id +
+                ", pId=" + pId +
+                ", orgId=" + orgId +
+                ", orderNo='" + orderNo + '\'' +
+                ", cntrId=" + cntrId +
+                ", cntrNo='" + cntrNo + '\'' +
+                ", carcorPid=" + carcorPid +
+                ", mblno='" + mblno + '\'' +
+                ", carregNo='" + carregNo + '\'' +
+                ", driverName='" + driverName + '\'' +
+                ", driverUserId=" + driverUserId +
+                ", driverTel='" + driverTel + '\'' +
+                ", planDate=" + planDate +
+                ", planRemarks='" + planRemarks + '\'' +
+                ", acceptDate=" + acceptDate +
+                ", acceptRemarks='" + acceptRemarks + '\'' +
+                ", loadDate=" + loadDate +
+                ", loadRemarks='" + loadRemarks + '\'' +
+                ", mdLoadDate=" + mdLoadDate +
+                ", offData=" + offData +
+                ", offRemarks='" + offRemarks + '\'' +
+                ", mdLoadRemarks='" + mdLoadRemarks + '\'' +
+                ", unLoadDate=" + unLoadDate +
+                ", unLoadRemarks='" + unLoadRemarks + '\'' +
+                ", waybillDate=" + waybillDate +
+                ", qtyLoad=" + qtyLoad +
+                ", qtyUnLoad=" + qtyUnLoad +
+                ", cntrQty=" + cntrQty +
+                ", gopodsLossQty=" + gopodsLossQty +
+                ", cntrWeight=" + cntrWeight +
+                ", gopodsLossrate=" + gopodsLossrate +
+                ", waybillRemarks='" + waybillRemarks + '\'' +
+                ", gopodsLossamtCr=" + gopodsLossamtCr +
+                ", qtyDr=" + qtyDr +
+                ", gopodsLossamtDr=" + gopodsLossamtDr +
+                ", qtyCr=" + qtyCr +
+                ", freightPriceDr=" + freightPriceDr +
+                ", freightPriceCr=" + freightPriceCr +
+                ", freightAmtDr=" + freightAmtDr +
+                ", freightAmtCr=" + freightAmtCr +
+                ", feeitemDr=" + feeitemDr +
+                ", feeitemDrRemarks='" + feeitemDrRemarks + '\'' +
+                ", feeitemCr=" + feeitemCr +
+                ", feeitemCrRemarks='" + feeitemCrRemarks + '\'' +
+                ", amtDr=" + amtDr +
+                ", amtCr=" + amtCr +
+                ", dueDateDr=" + dueDateDr +
+                ", dueDateCr=" + dueDateCr +
+                ", odometerFrom=" + odometerFrom +
+                ", odometerEnd=" + odometerEnd +
+                ", milesEmpty=" + milesEmpty +
+                ", milesLoad=" + milesLoad +
+                ", miles=" + miles +
+                ", driverbonus=" + driverbonus +
+                ", costtoll=" + costtoll +
+                ", costmaintain=" + costmaintain +
+                ", costOth=" + costOth +
+                ", costRemarks='" + costRemarks + '\'' +
+                ", oilQtyper=" + oilQtyper +
+                ", oilQty1=" + oilQty1 +
+                ", oilPrice1=" + oilPrice1 +
+                ", oilAmt1=" + oilAmt1 +
+                ", oilQty2=" + oilQty2 +
+                ", oilPrice2=" + oilPrice2 +
+                ", oilAmt2=" + oilAmt2 +
+                ", oilQty=" + oilQty +
+                ", oilPrice=" + oilPrice +
+                ", oilAmt=" + oilAmt +
+                ", oilQtyBlc=" + oilQtyBlc +
+                ", oilAmtBlc=" + oilAmtBlc +
+                ", profit=" + profit +
+                ", invDrNeed='" + invDrNeed + '\'' +
+                ", invDrStatus='" + invDrStatus + '\'' +
+                ", invDrTaxrate=" + invDrTaxrate +
+                ", invDrTaxamt=" + invDrTaxamt +
+                ", invDrDate=" + invDrDate +
+                ", invDrNo='" + invDrNo + '\'' +
+                ", accchkStaus='" + accchkStaus + '\'' +
+                ", billStatus=" + billStatus +
+                ", orderStatus=" + orderStatus +
+                ", accchkDate=" + accchkDate +
+                ", costomAmt01=" + costomAmt01 +
+                ", stlAmtDr=" + stlAmtDr +
+                ", costomAmt02=" + costomAmt02 +
+                ", stlDateDr=" + stlDateDr +
+                ", costomAmt03=" + costomAmt03 +
+                ", stlAmtCr=" + stlAmtCr +
+                ", costomAmt04=" + costomAmt04 +
+                ", stlDateCr=" + stlDateCr +
+                ", costomAmt05=" + costomAmt05 +
+                ", costomAmt06=" + costomAmt06 +
+                ", delFlag='" + delFlag + '\'' +
+                ", costomStr01='" + costomStr01 + '\'' +
+                ", costomStr02='" + costomStr02 + '\'' +
+                ", remarks='" + remarks + '\'' +
+                ", billKind='" + billKind + '\'' +
+                ", mBillNo='" + mBillNo + '\'' +
+                ", monthList=" + monthList +
+                '}';
+    }
 }

+ 46 - 21
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/domain/FtmsorderbillscarsExcel.java

@@ -149,6 +149,28 @@ public class FtmsorderbillscarsExcel {
     @Excel(name = "出口费用备注")
     private BigDecimal costomStr01;
 
+    @Excel(name = "主单号")
+    private String mBillNo;
+
+    @Excel(name = "单据类型")
+    private String billKind;
+
+    public String getmBillNo() {
+        return mBillNo;
+    }
+
+    public void setmBillNo(String mBillNo) {
+        this.mBillNo = mBillNo;
+    }
+
+    public String getBillKind() {
+        return billKind;
+    }
+
+    public void setBillKind(String billKind) {
+        this.billKind = billKind;
+    }
+
     public Long getId() {
         return id;
     }
@@ -576,7 +598,8 @@ public class FtmsorderbillscarsExcel {
     @Override
     public String toString() {
         return "FtmsorderbillscarsExcel{" +
-                "orderNo='" + orderNo + '\'' +
+                "id=" + id +
+                ", orderNo='" + orderNo + '\'' +
                 ", mblno='" + mblno + '\'' +
                 ", carregNo='" + carregNo + '\'' +
                 ", driverName='" + driverName + '\'' +
@@ -594,11 +617,11 @@ public class FtmsorderbillscarsExcel {
                 ", ysl='" + ysl + '\'' +
                 ", voy='" + voy + '\'' +
                 ", loadAddr='" + loadAddr + '\'' +
-                ", tLoadDate='" + tLoadDate + '\'' +
+                ", tLoadDate=" + tLoadDate +
                 ", loadAttn='" + loadAttn + '\'' +
                 ", loadAttntel='" + loadAttntel + '\'' +
                 ", mdLoadAddr='" + mdLoadAddr + '\'' +
-                ", tMdLoadDate='" + tMdLoadDate + '\'' +
+                ", tMdLoadDate=" + tMdLoadDate +
                 ", mdLoadAttn='" + mdLoadAttn + '\'' +
                 ", mdLoadAttnTel='" + mdLoadAttnTel + '\'' +
                 ", unLoadAddr='" + unLoadAddr + '\'' +
@@ -608,26 +631,28 @@ public class FtmsorderbillscarsExcel {
                 ", cntrId='" + cntrId + '\'' +
                 ", polId='" + polId + '\'' +
                 ", podId='" + podId + '\'' +
-                ", acceptDate='" + acceptDate + '\'' +
-                ", cntrQty='" + cntrQty + '\'' +
-                ", offData='" + offData + '\'' +
-                ", loadDate='" + loadDate + '\'' +
-                ", mdLoadDate='" + mdLoadDate + '\'' +
-                ", unLoadDate='" + unLoadDate + '\'' +
-                ", waybillDate='" + waybillDate + '\'' +
+                ", acceptDate=" + acceptDate +
+                ", cntrQty=" + cntrQty +
+                ", offData=" + offData +
+                ", loadDate=" + loadDate +
+                ", mdLoadDate=" + mdLoadDate +
+                ", unLoadDate=" + unLoadDate +
+                ", waybillDate=" + waybillDate +
                 ", waybillRemarks='" + waybillRemarks + '\'' +
-                ", oilAmt='" + oilAmt + '\'' +
-                ", costOth='" + costOth + '\'' +
-                ", driverbonus='" + driverbonus + '\'' +
+                ", oilAmt=" + oilAmt +
+                ", costOth=" + costOth +
+                ", driverbonus=" + driverbonus +
                 ", costRemarks='" + costRemarks + '\'' +
-                ", costomAmt06='" + costomAmt06 + '\'' +
-                ", costomAmt05='" + costomAmt05 + '\'' +
-                ", costomAmt04='" + costomAmt04 + '\'' +
-                ", costomAmt03='" + costomAmt03 + '\'' +
-                ", costomAmt02='" + costomAmt02 + '\'' +
-                ", costomAmt01='" + costomAmt01 + '\'' +
-                ", costomStr02='" + costomStr02 + '\'' +
-                ", costomStr01='" + costomStr01 + '\'' +
+                ", costomAmt06=" + costomAmt06 +
+                ", costomAmt05=" + costomAmt05 +
+                ", costomAmt04=" + costomAmt04 +
+                ", costomAmt03=" + costomAmt03 +
+                ", costomAmt02=" + costomAmt02 +
+                ", costomAmt01=" + costomAmt01 +
+                ", costomStr02=" + costomStr02 +
+                ", costomStr01=" + costomStr01 +
+                ", mBillNo='" + mBillNo + '\'' +
+                ", billKind='" + billKind + '\'' +
                 '}';
     }
 }

+ 15 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/mapper/FtmsorderbillscarsMapper.java

@@ -1,5 +1,6 @@
 package com.ruoyi.orderPlan.mapper;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.orderPlan.domain.Ftmsorderbills;
 import com.ruoyi.orderPlan.domain.Ftmsorderbillscars;
 import com.ruoyi.orderPlan.domain.FtmsorderbillscarsExcel;
@@ -188,4 +189,18 @@ public interface FtmsorderbillscarsMapper {
      * @return  结果
      */
     public int updateftmsorderbillscarTel(Ftmsorderbillscars ftmsorderbillscars);
+
+    /**
+     * 查询车辆可配载运单
+     * @param ftmsorderbillscars    车队派车
+     * @return  结果
+     */
+    public List<Map<String, Object>> selectStowageList(Ftmsorderbillscars ftmsorderbillscars);
+
+    /**
+     *  根据运单号查询对呀运单
+     * @param orderNo   运单号
+     * @return  结果
+     */
+    public Ftmsorderbillscars selectftmsorderbillscarsByOrderNo(String orderNo);
 }

+ 20 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/IftmsorderbillscarsService.java

@@ -163,4 +163,24 @@ public interface IftmsorderbillscarsService {
      * @return  结果
      */
     public AjaxResult driverSubmit(String cars, String fees, String attachs);
+
+    /**
+     *  查询车辆可配载运单
+     * @param ftmsorderbillscars
+     */
+    public List<Map<String, Object>> selectStowageList(Ftmsorderbillscars ftmsorderbillscars);
+
+    /**
+     *  撤销车辆配载
+     * @param id    车辆id
+     * @return  结果
+     */
+    public AjaxResult revokeStowage(Long id);
+
+    /**
+     *  提交车辆配载
+     * @param ftmsorderbillscars    车辆信息
+     * @return  结果
+     */
+    public AjaxResult addStowage(Ftmsorderbillscars ftmsorderbillscars);
 }

+ 90 - 6
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/impl/FtmsorderbillscarsServiceImpl.java

@@ -114,7 +114,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
         map.put("tmsorder", ftmsorderbills);
         // 查询派车信息
         Ftmsorderbillscars ftmsorderbillscars = new Ftmsorderbillscars();
-        ftmsorderbillscars.setPId(id);
+        ftmsorderbillscars.setpId(id);
         List<Ftmsorderbillscars> tmsorderbillscarsList = ftmsorderbillscarsMapper.selectftmsorderbillscarsList(ftmsorderbillscars);
         map.put("cars", tmsorderbillscarsList);
         // 查询附件信息
@@ -489,6 +489,90 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     }
 
     /**
+     * 查询车辆可配载运单
+     * @param ftmsorderbillscars    车队派车
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> selectStowageList(Ftmsorderbillscars ftmsorderbillscars) {
+        return ftmsorderbillscarsMapper.selectStowageList(ftmsorderbillscars);
+    }
+
+    /**
+     *  撤销车辆配载
+     * @param id    车辆id
+     * @return  结果
+     */
+    @Override
+    @Transactional
+    public AjaxResult revokeStowage(Long id) {
+        Ftmsorderbillscars tmsorderbillscars = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(id);
+        if (StringUtils.isNull(tmsorderbillscars)) {
+            return AjaxResult.error("未找到运单信息,请确认是否存在该运单");
+        }
+        if (tmsorderbillscars.getOrderStatus() > 80L || tmsorderbillscars.getBillStatus() > 6) {
+            return AjaxResult.error("该运单已回单或已完成无法撤销配载");
+        }
+        // 清除从表
+        Ftmsorderbillscars ftmsorderbillscars = ftmsorderbillscarsMapper.selectftmsorderbillscarsByOrderNo(tmsorderbillscars.getmBillNo());
+        if (StringUtils.isNull(ftmsorderbillscars)) {
+            return AjaxResult.error("未找到运单信息,请确认是否存在该运单");
+        }
+        if (ftmsorderbillscars.getOrderStatus() > 80L || ftmsorderbillscars.getBillStatus() > 6) {
+            return AjaxResult.error("该运单已回单或已完成无法撤销配载");
+        }
+        ftmsorderbillscars.setmBillNo(null);
+        ftmsorderbillscars.setBillKind("NN");
+        ftmsorderbillscars.setUpdateTime(new Date());
+        ftmsorderbillscars.setUpdateBy(SecurityUtils.getUsername());
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscars);
+        tmsorderbillscars.setmBillNo(null);
+        tmsorderbillscars.setBillKind("NN");
+        tmsorderbillscars.setUpdateTime(new Date());
+        tmsorderbillscars.setUpdateBy(SecurityUtils.getUsername());
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars);
+        return AjaxResult.success(tmsorderbillscars);
+    }
+
+    /**
+     *  提交车辆配载
+     * @param ftmsorderbillscars    车辆信息
+     * @return  结果
+     */
+    @Override
+    @Transactional
+    public AjaxResult addStowage(Ftmsorderbillscars ftmsorderbillscars) {
+        Ftmsorderbillscars tmsorderbillscars = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(ftmsorderbillscars.getId());
+        if (StringUtils.isNull(tmsorderbillscars)) {
+            return AjaxResult.error("未找到运单信息,请确认是否存在该运单");
+        }
+        if (tmsorderbillscars.getOrderStatus() > 80L) {
+            return AjaxResult.error("该运单已回单无法配载");
+        }
+        Ftmsorderbillscars orderNoCars = ftmsorderbillscarsMapper.selectftmsorderbillscarsByOrderNo(ftmsorderbillscars.getmBillNo());
+        if (StringUtils.isNull(orderNoCars)) {
+            return AjaxResult.error("未找到配载的运单信息,请确认是否存在该运单");
+        }
+        if (orderNoCars.getOrderStatus() > 80L) {
+            return AjaxResult.error("该配载的运单已回单无法配载");
+        }
+        if (!"NN".equals(orderNoCars.getBillKind()) || StringUtils.isNotNull(orderNoCars.getmBillNo())) {
+            return AjaxResult.error("配载失败,所选配载的运单已被配载");
+        }
+        tmsorderbillscars.setBillKind("MH");
+        tmsorderbillscars.setmBillNo(ftmsorderbillscars.getmBillNo());
+        tmsorderbillscars.setUpdateTime(new Date());
+        tmsorderbillscars.setUpdateBy(SecurityUtils.getUsername());
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars);
+        orderNoCars.setBillKind("MM");
+        orderNoCars.setmBillNo(null);
+        orderNoCars.setUpdateTime(new Date());
+        orderNoCars.setUpdateBy(SecurityUtils.getUsername());
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(orderNoCars);
+        return AjaxResult.success(tmsorderbillscars);
+    }
+
+    /**
      * 修改车队派车
      *
      * @param ftmsorderbillscars 车队派车
@@ -575,7 +659,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
             JSONArray planJson = JSONArray.parseArray(cars);
             List<Ftmsorderbillscars> tmsorderbillscarsList = JSONObject.parseArray(planJson.toJSONString(), Ftmsorderbillscars.class);
             for (Ftmsorderbillscars s : tmsorderbillscarsList) {
-                if (StringUtils.isNull(s.getBillStatus()) || (s.getBillStatus() != 3L && s.getBillStatus() != 6L)) {
+                if (StringUtils.isNull(s.getBillStatus()) || (s.getBillStatus() != 3L && s.getBillStatus() < 6L)) {
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     return AjaxResult.error("派车数据中存在未提交的数据,无法提交");
                 }
@@ -767,7 +851,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     @Transactional
     public AjaxResult vehicleChangeAdd(Ftmsorderbillscars ftmsorderbillscars, LoginUser loginUser) {
         Map<String, Object> map = new HashMap<>();
-        Ftmsorderbillsplans ftmsorderbillsplans = ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getPId());
+        Ftmsorderbillsplans ftmsorderbillsplans = ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getpId());
         if (StringUtils.isNull(ftmsorderbillscars.getCntrQty())) {
             return AjaxResult.error("未找到派车数量,请确认");
         }
@@ -872,7 +956,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
         ftmsorderbillscars.setUpdateTime(new Date());
         ftmsorderbillscars.setUpdateBy(loginUser.getUsername());
         ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscars);
-        map.put("plan", ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getPId()));
+        map.put("plan", ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getpId()));
         map.put("cars", ftmsorderbillscars);
         return AjaxResult.success(map);
     }
@@ -904,7 +988,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("删除车辆信息失败,若多次失败请联系管理员");
         }
-        map.put("plan", ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getPId()));
+        map.put("plan", ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getpId()));
         map.put("cars", ftmsorderbillscars);
         return AjaxResult.success(map);
     }
@@ -923,7 +1007,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
         // 原车辆安排
         Ftmsorderbillscars tmsorderbillscars = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(ftmsorderbillscars.getId());
         // 调度数据
-        Ftmsorderbillsplans ftmsorderbillsplans = ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getPId());
+        Ftmsorderbillsplans ftmsorderbillsplans = ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscars.getpId());
         long carQty = ftmsorderbillsplans.getCarQty() - tmsorderbillscars.getCntrQty() + ftmsorderbillscars.getCntrQty();
         if (ftmsorderbillsplans.getCntrQty() < carQty) {
             return AjaxResult.error("派车货量超出调度安排数量,请确认");

+ 2 - 2
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/impl/FtmsorderbillsplansServiceImpl.java

@@ -93,7 +93,7 @@ public class FtmsorderbillsplansServiceImpl implements IftmsorderbillsplansServi
         Ftmsorderbills ftmsorderbills = ftmsorderbillsMapper.selectftmsorderbillsById(tmsorderbillsplans.getOrgId());
         map.put("tmsorder", ftmsorderbills);
         Ftmsorderbillscars tmsorderbillscars = new Ftmsorderbillscars();
-        tmsorderbillscars.setPId(ftmsorderbills.getId());
+        tmsorderbillscars.setpId(ftmsorderbills.getId());
         map.put("cars", ftmsorderbillscarsMapper.selectftmsorderbillscarsList(tmsorderbillscars));
         Ftmsorderbillsattachs ftmsorderbillsattachs = new Ftmsorderbillsattachs();
         ftmsorderbillsattachs.setPId(ftmsorderbills.getId());
@@ -378,7 +378,7 @@ public class FtmsorderbillsplansServiceImpl implements IftmsorderbillsplansServi
         long pId = plans.getId();
         Ftmsorderbillsplans ftmsorderbillsplans = ftmsorderbillsplansMapper.selectftmsorderbillsplansById(plans.getId());
         Ftmsorderbillscars ftmsorderbillscars = new Ftmsorderbillscars();
-        ftmsorderbillscars.setPId(pId);
+        ftmsorderbillscars.setpId(pId);
         if (ftmsorderbillscarsMapper.selectftmsorderbillscarsCount(ftmsorderbillscars) > 0) {
             return AjaxResult.error("撤销失败,车队已派车");
         }

+ 59 - 1
ruoyi-fleet/src/main/resources/mapper/orderPlan/ftmsorderbillscarsMapper.xml

@@ -104,10 +104,23 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
         <result property="remarks" column="remarks"/>
+        <result property="mBillNo" column="m_bill_no"/>
+        <result property="billKind" column="bill_kind"/>
     </resultMap>
 
     <sql id="selectftmsorderbillscarsVo">
-        select id, p_id, org_id, order_no, cntr_id, cntr_no, carcor_pid, mblno, carreg_no, driver_name, driver_user_id, driver_tel, plan_date, plan_remarks, accept_date, accept_remarks, load_date, load_remarks, md_load_date, off_data, off_remarks, md_load_remarks, un_load_date, un_load_remarks, waybill_date, qty_load, qty_un_load, cntr_qty, gopods_loss_qty, cntr_weight, gopods_lossrate, waybill_remarks, gopods_lossamt_cr, qty_dr, gopods_lossamt_dr, qty_cr, freight_price_dr, freight_price_cr, freight_amt_dr, freight_amt_cr, feeitem_dr, feeitem_dr_remarks, feeitem_cr, feeitem_cr_remarks, amt_dr, amt_cr, due_date_dr, due_date_cr, odometer_from, odometer_end, miles_empty, miles_load, miles, driverbonus, costtoll, costmaintain, cost_oth, cost_remarks, oil_qtyper, oil_qty1, oil_price1, oil_amt1, oil_qty2, oil_price2, oil_amt2, oil_qty, oil_price, oil_amt, oil_qty_blc, oil_amt_blc, profit, inv_dr_need, inv_dr_status, inv_dr_taxrate, inv_dr_taxamt, inv_dr_date, inv_dr_no, accchk_staus, bill_status, order_status, accchk_date, costom_amt_01, stl_amt_dr, costom_amt_02, stl_date_dr, costom_amt_03, stl_amt_cr, costom_amt_04, stl_date_cr, costom_amt_05, costom_amt_06, del_flag, costom_str_01, create_by, create_time, costom_str_02, update_by, update_time, remarks from F_TMSORDERBILLSCARS
+        select id, p_id, org_id, order_no, cntr_id, cntr_no, carcor_pid, mblno, carreg_no, driver_name, driver_user_id,
+         driver_tel, plan_date, plan_remarks, accept_date, accept_remarks, load_date, load_remarks, md_load_date, off_data,
+          off_remarks, md_load_remarks, un_load_date, un_load_remarks, waybill_date, qty_load, qty_un_load, cntr_qty,
+           gopods_loss_qty, cntr_weight, gopods_lossrate, waybill_remarks, gopods_lossamt_cr, qty_dr, gopods_lossamt_dr,
+            qty_cr, freight_price_dr, freight_price_cr, freight_amt_dr, freight_amt_cr, feeitem_dr, feeitem_dr_remarks,
+             feeitem_cr, feeitem_cr_remarks, amt_dr, amt_cr, due_date_dr, due_date_cr, odometer_from, odometer_end, miles_empty,
+              miles_load, miles, driverbonus, costtoll, costmaintain, cost_oth, cost_remarks, oil_qtyper, oil_qty1, oil_price1,
+               oil_amt1, oil_qty2, oil_price2, oil_amt2, oil_qty, oil_price, oil_amt, oil_qty_blc, oil_amt_blc, profit, inv_dr_need,
+                inv_dr_status, inv_dr_taxrate, inv_dr_taxamt, inv_dr_date, inv_dr_no, accchk_staus, bill_status, order_status, accchk_date,
+                 costom_amt_01, stl_amt_dr, costom_amt_02, stl_date_dr, costom_amt_03, stl_amt_cr, costom_amt_04, stl_date_cr,
+                  costom_amt_05, costom_amt_06, del_flag, costom_str_01, create_by, create_time, costom_str_02, update_by, update_time,
+                  m_bill_no, bill_kind, remarks from F_TMSORDERBILLSCARS
     </sql>
 
     <select id="selectftmsorderbillscarsList" parameterType="ftmsorderbillscars" resultMap="ftmsorderbillscarsResult">
@@ -138,6 +151,8 @@
             <if test="unLoadRemarks != null  and unLoadRemarks != ''"> and un_load_remarks = #{unLoadRemarks}</if>
             <if test="waybillDate != null "> and waybill_date = #{waybillDate}</if>
             <if test="qtyLoad != null "> and qty_load = #{qtyLoad}</if>
+            <if test="mBillNo != null "> and m_bill_no = #{mBillNo}</if>
+            <if test="billKind != null "> and bill_kind = #{billKind}</if>
             <if test="qtyUnLoad != null "> and qty_un_load = #{qtyUnLoad}</if>
             <if test="cntrQty != null "> and cntr_qty = #{cntrQty}</if>
             <if test="gopodsLossQty != null "> and gopods_loss_qty = #{gopodsLossQty}</if>
@@ -461,6 +476,16 @@
             WHEN 3 THEN
             '空去重回'
             END transProp,
+            CASE
+            c.bill_kind
+            WHEN 'NN' THEN
+            '直单'
+            WHEN 'MM' THEN
+            '主单'
+            WHEN 'MH' THEN
+            '从单'
+            END billKind,
+            c.m_bill_no mBillNo,
             g.f_name goodsId,
             c.cntr_weight cntrWeight,
             t.qty_plan qtyPlan,
@@ -581,6 +606,26 @@
         where p_id = #{pId}
     </select>
 
+    <select id="selectStowageList" parameterType="ftmsorderbills" resultType="Map">
+        SELECT
+            #{id} id,
+            c.mblno,
+            c.order_no orderNo,
+            t.load_addr loadAddr,
+            t.load_date loadDate
+        FROM
+            F_TMSORDERBILLS t
+            LEFT JOIN F_TMSORDERBILLSCARS c ON c.org_id = t.id
+        <where>
+            c.id != #{id}
+            AND c.bill_status = 6
+            AND c.load_date IS NULL
+            AND c.bill_kind = "NN"
+            AND c.driver_user_id = #{driverUserId}
+        </where>
+        ORDER BY c.id desc
+    </select>
+
     <select id="planSelectCarsCount" parameterType="ftmsorderbills" resultType="int">
         SELECT
             COUNT(id)
@@ -631,6 +676,8 @@
             t.voy,
             t.pol_id AS polId,
             t.pod_id AS podId,
+            c.m_bill_no AS mBillNo,
+            c.bill_kind AS billKind,
             c.oil_amt AS oilAmt,
             c.cost_oth AS costOth,
             c.cntr_id AS cntrId,
@@ -750,6 +797,11 @@
         select count(id) from F_TMSORDERBILLSCARS where driver_tel = #{phoneNumber} and order_status = 10 and bill_status &gt;= 6
     </select>
 
+    <select id="selectftmsorderbillscarsByOrderNo" parameterType="string" resultMap="ftmsorderbillscarsResult">
+        <include refid="selectftmsorderbillscarsVo"/>
+        where order_no = #{orderNo}
+    </select>
+
     <insert id="insertftmsorderbillscars" parameterType="ftmsorderbillscars" useGeneratedKeys="true" keyProperty="id">
         insert into F_TMSORDERBILLSCARS
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -851,6 +903,8 @@
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="remarks != null">remarks,</if>
+            <if test="mBillNo != null">m_bill_no,</if>
+            <if test="billKind != null">bill_kind,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="pId != null">#{pId},</if>
@@ -951,6 +1005,8 @@
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="remarks != null">#{remarks},</if>
+            <if test="mBillNo != null">#{mBillNo},</if>
+            <if test="billKind != null">#{billKind},</if>
         </trim>
     </insert>
 
@@ -1002,6 +1058,8 @@
             <if test="feeitemCrRemarks != null">feeitem_cr_remarks = #{feeitemCrRemarks},</if>
             <if test="amtDr != null">amt_dr = #{amtDr},</if>
             <if test="amtCr != null">amt_cr = #{amtCr},</if>
+            <if test="mBillNo != null">m_bill_no = #{mBillNo},</if>
+            <if test="billKind != null">bill_kind = #{billKind},</if>
             <if test="dueDateDr != null">due_date_dr = #{dueDateDr},</if>
             <if test="dueDateCr != null">due_date_cr = #{dueDateCr},</if>
             <if test="odometerFrom != null">odometer_from = #{odometerFrom},</if>

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TCorpsMapper.java

@@ -133,4 +133,11 @@ public interface TCorpsMapper extends BaseMapper<TCorps> {
      * @return
      */
     public Long getClientFid(@Param("tel") String tel);
+
+    /**
+     *  根据条件查询客户200条
+     * @param corps
+     * @return
+     */
+    public List<TCorps> selectTCorpsListLimit200(TCorps corps);
 }

+ 29 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -359,4 +359,33 @@ public interface ITWarehouseBillsService {
      * @return  结果
      */
     public AjaxResult submitWarehouse(String item, String attachs);
+
+    /**
+     *  查看集港业务
+     * @param fId   集港id
+     * @return
+     */
+    public AjaxResult selectContainerPort(Long fId);
+
+    /**
+     *  集港业务保存、提交接口
+     * @param tWarehouseBills   主表业务
+     * @param feesCr    收费
+     * @param feesDr    付费
+     * @return
+     */
+    public AjaxResult saveContainerPort(String tWarehouseBills, String feesCr, String feesDr, String type);
+
+    /**
+     *  查询集港业务基础资料
+     * @return
+     */
+    public AjaxResult selectBasicInformation();
+
+    /**
+     *  集港业务撤销
+     * @param fId       主表id
+     * @return
+     */
+    public AjaxResult revokeContainerPort(Long fId);
 }

+ 212 - 17
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -26,9 +26,11 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.reportManagement.domain.TWareHouseItemsExcel;
 import com.ruoyi.reportManagement.domain.TWhgenleg;
 import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
+import com.ruoyi.shipping.domain.TCntr;
 import com.ruoyi.shipping.domain.TVoyage;
 import com.ruoyi.shipping.domain.TWarehousebillsCntr;
 import com.ruoyi.shipping.domain.TWarehousebillsCntritems;
+import com.ruoyi.shipping.mapper.TCntrMapper;
 import com.ruoyi.shipping.mapper.TVoyageMapper;
 import com.ruoyi.shipping.mapper.TWarehousebillsCntrMapper;
 import com.ruoyi.shipping.mapper.TWarehousebillsCntritemsMapper;
@@ -66,6 +68,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     private TFeesMapper tFeesMapper;
 
     @Autowired
+    private TCntrMapper tCntrMapper;
+
+    @Autowired
     private TGoodsMapper tGoodsMapper;
 
     @Autowired
@@ -135,8 +140,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     private TWarehousebillsCntritemsMapper tWarehousebillsCntritemsMapper;
 
 
-
-
     /**
      * 查询详情主表
      *
@@ -324,7 +327,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      */
     @Override
     public List<Map<String, Object>> selectWarehouseBusinessList(TWarehouseBills tWarehousebills) {
-        if (tWarehousebills.getfBilltype().equals("JSCCF") | tWarehousebills.getfBilltype().equals("HQZY")) {
+        if (tWarehousebills.getfBilltype().equals("JSCCF") || tWarehousebills.getfBilltype().equals("HQZY")) {
             return tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
         } else {
             return tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
@@ -1258,10 +1261,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     /**
-     *  app仓储新行保存业务
-     * @param item      明细数据
-     * @param attachs   附件数据
-     * @return  结果
+     * app仓储新行保存业务
+     *
+     * @param item    明细数据
+     * @param attachs 附件数据
+     * @return 结果
      */
     @Override
     public AjaxResult submitWarehouse(String item, String attachs) {
@@ -1315,9 +1319,195 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     /**
+     * 查看集港业务
+     *
+     * @param fId 集港id
+     * @return
+     */
+    @Override
+    public AjaxResult selectContainerPort(Long fId) {
+        Map<String, Object> map = new HashMap<>();
+        TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
+        if (StringUtils.isNull(warehouseBills)) {
+            return AjaxResult.error("未找到主表信息,请确认该信息是否存在");
+        }
+        map.put("warehouseBills", warehouseBills);
+        TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
+        warehousebillsfees.setfPid(fId);
+        warehousebillsfees.setfDc("D");
+        List<TWarehousebillsfees> feesDr = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
+        List<TCorps> transportationList = new ArrayList<>();
+        if (StringUtils.isNotEmpty(feesDr)) {
+            for (TWarehousebillsfees dr : feesDr) {
+                TCorps corp = tCorpsMapper.selectTCorpsById(dr.getfCorpid());
+                if (StringUtils.isNotNull(corp)) {
+                    transportationList.add(corp);
+                }
+            }
+            transportationList = transportationList.stream().distinct().collect(toList());
+        }
+        map.put("feesDrList", feesDr);
+        map.put("corpList", transportationList);
+        List<TCorps> corpsList = new ArrayList<>();
+        warehousebillsfees.setfDc("C");
+        List<TWarehousebillsfees> feesCr = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
+        if (StringUtils.isNotEmpty(feesCr)) {
+            for (TWarehousebillsfees cr : feesCr) {
+                TCorps corp = tCorpsMapper.selectTCorpsById(cr.getfCorpid());
+                if (StringUtils.isNotNull(corp)) {
+                    corpsList.add(corp);
+                }
+            }
+            corpsList = corpsList.stream().distinct().collect(toList());
+        }
+        map.put("feesCrList", feesCr);
+        map.put("transportationList", corpsList);
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 集港业务保存、提交接口
+     *
+     * @param tWarehouseBills 主表业务
+     * @param feesCr          收费
+     * @param feesDr          付费
+     * @return
+     */
+    @Override
+    @Transactional
+    public AjaxResult saveContainerPort(String tWarehouseBills, String feesCr, String feesDr, String type) {
+        TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
+        warehouseBills.setfBilltype("CKJG");
+        // 判断提单号是否存在
+        if (tWarehouseBillsMapper.selectContainMblno(warehouseBills) > 0 && StringUtils.isNull(warehouseBills)) {
+            return AjaxResult.error("该提单号已存在");
+        }
+        Long billStatus = 2L;
+        if ("add".equals(type)) {
+            billStatus = 6L;
+            warehouseBills.setfBillstatus(billStatus);
+        } else {
+            if (StringUtils.isNull(warehouseBills.getfBillstatus())) {
+                warehouseBills.setfBillstatus(billStatus);
+            }
+        }
+        if (StringUtils.isNull(warehouseBills.getfId())) {
+            warehouseBills.setCreateTime(new Date());
+            warehouseBills.setCreateBy(SecurityUtils.getUsername());
+            warehouseBills.setfDeptid(SecurityUtils.getLoginUser().getUser().getDeptId());
+            warehouseBills.setfBsdeptid(SecurityUtils.getLoginUser().getUser().getDeptId());
+            tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
+        } else {
+            warehouseBills.setUpdateTime(new Date());
+            warehouseBills.setUpdateBy(SecurityUtils.getUsername());
+            tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
+        }
+        tWarehousebillsfeesMapper.deleteByFPid(warehouseBills.getfId());
+        if (StringUtils.isNotEmpty(feesCr) && !"[]".equals(feesCr)) {
+            JSONArray jsonDrArray = JSONArray.parseArray(feesCr);
+            List<TWarehousebillsfees> warehousebillsfeesCr = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
+            int line = 1;
+            for (TWarehousebillsfees cr : warehousebillsfeesCr) {
+                if (StringUtils.isNull(cr.getfCorpid()) || StringUtils.isNull(cr.getfFeeunitid()) || StringUtils.isNull(cr.getfInventoryDays())) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("付款费用第" + line + "行,缺少必填信息");
+                }
+                cr.setfBillstatus(billStatus);
+                cr.setCreateTime(new Date());
+                cr.setfPid(warehouseBills.getfId());
+                cr.setCreateBy(SecurityUtils.getUsername());
+                tWarehousebillsfeesMapper.insertTWarehousebillsfees(cr);
+                line++;
+            }
+        }
+        if (StringUtils.isNotEmpty(feesDr) && !"[]".equals(feesDr)) {
+            JSONArray jsonDrArray = JSONArray.parseArray(feesDr);
+            List<TWarehousebillsfees> warehousebillsfeesDr = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
+            int line = 1;
+            for (TWarehousebillsfees dr : warehousebillsfeesDr) {
+                if (StringUtils.isNull(dr.getfCorpid()) || StringUtils.isNull(dr.getfFeeunitid()) || StringUtils.isNull(dr.getfInventoryDays())) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("收款费用第" + line + "行,缺少必填信息");
+                }
+                dr.setfBillstatus(billStatus);
+                dr.setCreateTime(new Date());
+                dr.setfPid(warehouseBills.getfId());
+                dr.setCreateBy(SecurityUtils.getUsername());
+                tWarehousebillsfeesMapper.insertTWarehousebillsfees(dr);
+                line++;
+            }
+        }
+        return AjaxResult.success();
+    }
+
+    /**
+     * 查询集港业务基础资料
+     *
+     * @return
+     */
+    @Override
+    public AjaxResult selectBasicInformation() {
+        Map<String, Object> map = new HashMap<>();
+        TCorps corps = new TCorps();
+        corps.setfTypeid("\"1\"");
+        corps.setfStatus("0");
+        // 应收 取客户
+        map.put("corpList", tCorpsMapper.selectTCorpsListLimit200(corps));
+        // 应付 取陆运公司
+        corps.setfTypeid("\"2\"");
+        map.put("transportationList", tCorpsMapper.selectTCorpsListLimit200(corps));
+        // 查询箱信息
+        TCntr tCntr = new TCntr();
+        tCntr.setfStatus("T");
+        map.put("cntrList", tCntrMapper.selectRcntrName(tCntr));
+        map.put("pierList", sysDictDataMapper.selectDictDataByType("pier"));
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 集港业务撤销
+     *
+     * @param fId 主表id
+     * @return
+     */
+    @Override
+    @Transactional
+    public AjaxResult revokeContainerPort(Long fId) {
+        TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
+        if (StringUtils.isNull(warehouseBills)) {
+            return AjaxResult.error("未找到主表信息,请确认是否存在");
+        }
+        if (warehouseBills.getfBillstatus() != 6L) {
+            return AjaxResult.error("主表状态有误,请确认状态是否已提交");
+        }
+        TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
+        warehousebillsfees.setfPid(fId);
+        List<TWarehousebillsfees> warehousebillsfeesList = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
+        if (StringUtils.isEmpty(warehousebillsfeesList)) {
+            return AjaxResult.error("未找到费用信息,请确认是否存在");
+        }
+        for (TWarehousebillsfees fee : warehousebillsfeesList) {
+            if (StringUtils.isNotEmpty(fee.getfStatementNo()) || StringUtils.isNotEmpty(fee.getfStlamountNo())) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("费用信息存在已对账或已收费付费操作,无法撤销");
+            }
+            fee.setfStatus("2");
+            fee.setUpdateTime(new Date());
+            fee.setUpdateBy(SecurityUtils.getUsername());
+            tWarehousebillsfeesMapper.updateTWarehousebillsfees(fee);
+        }
+        warehouseBills.setfBillstatus(2L);
+        warehouseBills.setUpdateTime(new Date());
+        warehouseBills.setUpdateBy(SecurityUtils.getUsername());
+        tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
+        return AjaxResult.success();
+    }
+
+    /**
      * app仓储新行提交业务
-     * @param item      仓库明细数据
-     * @param attachs   附件
+     *
+     * @param item    仓库明细数据
+     * @param attachs 附件
      * @return 结果
      */
     @Override
@@ -1577,8 +1767,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
     /**
      * 查询app 添加新行 必要的基础资料
-     * @return
+     *
      * @param fId
+     * @return
      */
     @Override
     public AjaxResult getAppBasicInformation(Long fId) {
@@ -1625,14 +1816,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             map.put("warehouse", warehouseServiceImpl.buildDeptTreeSelect(warehouses));
         }
         map.put("attributes", sysDictDataMapper.selectDictDataByType("storage_type"));
+        // 查询箱型数据
+        map.put("cntrList", sysDictDataMapper.selectDictDataByType("data_cntrId"));
         return AjaxResult.success(map);
     }
 
     /**
      * app确认入库、出库、货转
-     * @param item      明细数据
-     * @param attachs   附件数据
-     * @return  结果
+     *
+     * @param item    明细数据
+     * @param attachs 附件数据
+     * @return 结果
      */
     @Override
     public AjaxResult warehouseOperationConfirmation(String item, String attachs) {
@@ -1753,10 +1947,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     /**
-     *  叫车进场
-     * @param item      明细数据
-     * @param attachs   附件
-     * @return  结果
+     * 叫车进场
+     *
+     * @param item    明细数据
+     * @param attachs 附件
+     * @return 结果
      */
     @Override
     @Transactional

+ 13 - 0
ruoyi-warehouse/src/main/resources/mapper/basicData/TCorpsMapper.xml

@@ -416,4 +416,17 @@
         WHERE ta.f_tel = #{tel}
     </select>
 
+    <select id="selectTCorpsListLimit200" parameterType="TCorps" resultMap="TCorpsResult">
+        SELECT
+            f_id,
+            f_name
+        FROM
+            t_corps
+        WHERE
+            JSON_CONTAINS( f_typeid -> '$[*]', #{fTypeid}, '$')
+            AND f_status = #{fStatus}
+        ORDER BY CONVERT(f_name USING gbk) asc
+        limit 1, 200
+    </select>
+
 </mapper>

+ 1 - 4
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -323,23 +323,20 @@
             <if test="fIfpledge != null  and fIfpledge != ''">and bill.f_ifpledge = #{fIfpledge}</if>
             <if test="fIfdamage != null  and fIfdamage != ''">and bill.f_ifdamage = #{fIfdamage}</if>
             <if test="fBankcorpid != null ">and bill.f_bankcorpid = #{fBankcorpid}</if>
+            <if test="fBilltype != null">and bill.f_billtype = #{fBilltype}</if>
             <if test="fBilltype != null  and fBilltype == 'SJRK'">
-                and bill.f_billtype = #{fBilltype}
                 AND dictIn.dict_type = 'st_in_type'
                 AND dictIn.status = '0'
             </if>
             <if test="fBilltype != null  and fBilltype == 'SJCK'">
-                and bill.f_billtype = #{fBilltype}
                 AND dictIn.dict_type = 'st_out_type'
                 AND dictIn.status = '0'
             </if>
             <if test="fBilltype != null  and fBilltype == 'CKDB'">
-                and bill.f_billtype = #{fBilltype}
                 AND dictIn.dict_type = 'st_trans_type'
                 AND dictIn.status = '0'
             </if>
             <if test="fBilltype != null  and fBilltype == 'HWTG'">
-                and bill.f_billtype = #{fBilltype}
                 AND dictIn.dict_type = 'st_trans_type'
                 AND dictIn.status = '0'
             </if>