HUJIANGUO 3 lat temu
rodzic
commit
2cd1db77b2
21 zmienionych plików z 485 dodań i 51 usunięć
  1. 1 1
      src/main/java/com/steerinfo/dil/controller/BmstruckCheckController.java
  2. 72 0
      src/main/java/com/steerinfo/dil/controller/BmstruckConvertedController.java
  3. 2 0
      src/main/java/com/steerinfo/dil/controller/BmstruckDetailsOrderController.java
  4. 1 1
      src/main/java/com/steerinfo/dil/controller/BmstruckFormulaController.java
  5. 30 1
      src/main/java/com/steerinfo/dil/controller/BmstruckStatementController.java
  6. 15 0
      src/main/java/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.java
  7. 3 0
      src/main/java/com/steerinfo/dil/mapper/BmstruckStatementMapper.java
  8. 30 20
      src/main/java/com/steerinfo/dil/model/BmstruckStatement.java
  9. 1 1
      src/main/java/com/steerinfo/dil/service/IBmstruckCheckService.java
  10. 15 0
      src/main/java/com/steerinfo/dil/service/IBmstruckDetailsOrderService.java
  11. 1 0
      src/main/java/com/steerinfo/dil/service/IBmstruckFormulaService.java
  12. 7 0
      src/main/java/com/steerinfo/dil/service/IBmstruckStatementService.java
  13. 7 4
      src/main/java/com/steerinfo/dil/service/impl/BmstruckCheckServiceImpl.java
  14. 73 0
      src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java
  15. 1 0
      src/main/java/com/steerinfo/dil/service/impl/BmstruckFormulaServiceImpl.java
  16. 109 11
      src/main/java/com/steerinfo/dil/service/impl/BmstruckStatementServiceImpl.java
  17. 4 5
      src/main/resources/application-dev.yml
  18. 3 3
      src/main/resources/application-prod.yml
  19. 6 2
      src/main/resources/bootstrap.yml
  20. 94 0
      src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml
  21. 10 2
      src/main/resources/com/steerinfo/dil/mapper/BmstruckStatementMapper.xml

+ 1 - 1
src/main/java/com/steerinfo/dil/controller/BmstruckCheckController.java

@@ -39,7 +39,7 @@ public class BmstruckCheckController extends BaseRESTfulController {
     @PostMapping("/updateBmstruckCheck")
     public RESTfulResult updateBmstruckCheck(@RequestParam BigDecimal statementId,
                                              @RequestParam Integer status,
-                                             @RequestParam String person) {
+                                             @RequestParam Integer person) {
         int code = bmstruckCheckService.updateBmstruckCheck(statementId, status, person);
         return success(code);
     }

+ 72 - 0
src/main/java/com/steerinfo/dil/controller/BmstruckConvertedController.java

@@ -0,0 +1,72 @@
+package com.steerinfo.dil.controller;
+
+import com.github.pagehelper.PageHelper;
+import com.steerinfo.dil.service.IBmstruckDetailsOrderService;
+import com.steerinfo.dil.service.impl.BmstruckDetailsOrderServiceImpl;
+import com.steerinfo.dil.util.BaseRESTfulController;
+import com.steerinfo.dil.util.ColumnDataUtil;
+import com.steerinfo.dil.util.PageListAdd;
+import com.steerinfo.framework.controller.RESTfulResult;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/${api.version}/bmstruckConverted")
+public class BmstruckConvertedController extends BaseRESTfulController {
+    @Autowired
+    BmstruckDetailsOrderServiceImpl bmstruckDetailsOrderService;
+    @Autowired
+    ColumnDataUtil columnDataUtil;
+    //生成不同的计费账单
+    //查询未生成账单的计时作业的详单
+    /**
+     * 展示汽运未生成账单的详单信息
+     * @param mapVal
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @return
+     */
+    @ApiModelProperty(value = "展示汽运未生成账单的作业详单信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "销售:176", required = false, dataType = "BigDecimal"),
+            @ApiImplicitParam(name = "orderType" ,value = "1:计时,2:计数,3:计重,4:包月",required = false,dataType = "Integer")
+    })
+    @PostMapping("/getUnFinishedConvertedTruckDetailsOrderList")
+    public RESTfulResult getUnFinishedConvertedTruckDetailsOrderList(@RequestBody(required = false) Map<String,Object> mapVal,
+                                                                     Integer pageNum,
+                                                                     Integer pageSize,
+                                                                     Integer apiId,
+                                                                     Integer orderType) {
+        List<Map<String, Object>> list = bmstruckDetailsOrderService.getUnFinishedConvertedTruckDetailsOrderList(mapVal,orderType);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getUnFinishedConvertedTruckDetailsOrderList(mapVal,orderType);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+
+    /**
+     * 新增内转详单
+     * @param orderId
+     * @return
+     */
+    @ApiModelProperty(value = "新增内转详单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId", value = "汽运运单id", required = false, dataType = "BigDecimal"),
+    })
+    @PostMapping("/addConvertedDetailsOrder/{orderId}")
+    public RESTfulResult addConvertedDetailsOrder(@PathVariable("orderId") BigDecimal orderId) throws Exception {
+        int code = bmstruckDetailsOrderService.addConvertedDetailsOrder(orderId);
+        return success(code);
+    }
+}

+ 2 - 0
src/main/java/com/steerinfo/dil/controller/BmstruckDetailsOrderController.java

@@ -136,4 +136,6 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         int code = bmstruckDetailsOrderService.insertSelective(orderId);
         return success(code);
     }
+
+
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/controller/BmstruckFormulaController.java

@@ -19,7 +19,7 @@ import java.util.Map;
  * @Version:V2.0
  */
 @RestController
-@RequestMapping("/${api.version}/bmsshipformulas")
+@RequestMapping("/${api.version}/bmstruckformulas")
 public class BmstruckFormulaController extends BaseRESTfulController {
 
     @Autowired

+ 30 - 1
src/main/java/com/steerinfo/dil/controller/BmstruckStatementController.java

@@ -107,5 +107,34 @@ public class BmstruckStatementController extends BaseRESTfulController {
         PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
         return success(data);
     }
-
+    /**
+     * 生成内转汽运账单
+     * @param mapList
+     * @return
+     */
+    @ApiModelProperty(value = "生成内转汽运账单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapList", value = "详单列表", required = false, dataType = "java.util.List"),
+    })
+    @PostMapping("/addConvertedTruckStatement")
+    public RESTfulResult addConvertedTruckStatement(@RequestBody List<Map<String,Object>> mapList,Integer orderType) {
+        int code1 = bmstruckStatementService.addConvertedTruckStatement(mapList,orderType);
+        return success(code1);
+    }
+    /**
+     *删除汽运账单
+     */
+    @PostMapping("/deleteConvertedTruckStatement/{statementId}")
+    public RESTfulResult deleteConvertedTruckStatement(@PathVariable("statementId") BigDecimal statementId) {
+        bmstruckStatementService.delete(statementId);
+        return success("删除成功");
+    }
+    /**
+     * 审批计费账单
+     */
+    @PostMapping("/updateConvertedTruckStatement/{statementId}")
+    public RESTfulResult updateConvertedTruckStatement(@PathVariable("statementId") BigDecimal statementId) {
+        bmstruckStatementService.update(statementId);
+        return success("修改成功");
+    }
 }

+ 15 - 0
src/main/java/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.java

@@ -102,4 +102,19 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
      * @return
      */
     List<Map<String, Object>> getSaleTruckDetailsOrderList(Map<String, Object> mapVal);
+
+    //计时
+    List<Map<String, Object>> getUnFinishedTimeTruckDetailsOrderList(Map<String, Object> mapVal);
+    //计数
+    List<Map<String, Object>> getUnFinishedNumTruckDetailsOrderList(Map<String, Object> mapVal);
+    //计重
+    List<Map<String, Object>> getUnFinishedWeightTruckDetailsOrderList(Map<String, Object> mapVal);
+    //包月
+    List<Map<String, Object>> getUnFinishedMonthTruckDetailsOrderList(Map<String, Object> mapVal);
+
+    //通过运单id获取需求类型(需求类型(0:计重;1:计时;2:计次;3:包月))
+    Map<String, Object> getSettlement(BigDecimal orderId);
+
+    //通过物资id与需求类型获取单价
+    BigDecimal getPriceByWz(String requirementType, Integer materialId);
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/BmstruckStatementMapper.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.mapper;
 
+import com.steerinfo.dil.model.BmstruckDetailsOrder;
 import com.steerinfo.dil.model.BmstruckStatement;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import java.math.*;
@@ -30,4 +31,6 @@ public interface BmstruckStatementMapper extends IBaseMapper<BmstruckStatement,
      * @return
      */
     List<Map<String, Object>> getSaleTruckStatementDetailsOrderList(Map<String, Object> mapVal);
+    //通过账单id获取账单对应的详单信息
+    List<BigDecimal> getDetailById(BigDecimal statementId);
 }

+ 30 - 20
src/main/java/com/steerinfo/dil/model/BmstruckStatement.java

@@ -86,6 +86,20 @@ public class BmstruckStatement implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="记录创建或修改备注",required=false)
     private String insertUpdateRemark;
 
+    /**
+     * 审核状态(0:未审核,1:已审核)(STATEMENT_TYPE,DECIMAL,0)
+     */
+    @ApiModelProperty(value="审核状态(0:未审核,1:已审核)",required=false)
+    private BigDecimal statementType;
+
+    public BigDecimal getStatementType() {
+        return statementType;
+    }
+
+    public void setStatementType(BigDecimal statementType) {
+        this.statementType = statementType;
+    }
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -204,25 +218,21 @@ public class BmstruckStatement implements IBasePO<BigDecimal> {
 
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getSimpleName());
-        sb.append(" [");
-        sb.append("Hash = ").append(hashCode());
-        sb.append(", statementId=").append(statementId);
-        sb.append(", statementNumber=").append(statementNumber);
-        sb.append(", costId=").append(costId);
-        sb.append(", statementPaymentUnit=").append(statementPaymentUnit);
-        sb.append(", statementExcludTax=").append(statementExcludTax);
-        sb.append(", statementIncludTax=").append(statementIncludTax);
-        sb.append(", statementRemark=").append(statementRemark);
-        sb.append(", statementSettlementStatus=").append(statementSettlementStatus);
-        sb.append(", insertUsername=").append(insertUsername);
-        sb.append(", insertTime=").append(insertTime);
-        sb.append(", updateUsername=").append(updateUsername);
-        sb.append(", updateTime=").append(updateTime);
-        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
-        sb.append(", serialVersionUID=").append(serialVersionUID);
-        sb.append("]");
-        return sb.toString();
+        return "BmstruckStatement{" +
+                "statementId=" + statementId +
+                ", statementNumber='" + statementNumber + '\'' +
+                ", costId=" + costId +
+                ", statementPaymentUnit='" + statementPaymentUnit + '\'' +
+                ", statementExcludTax=" + statementExcludTax +
+                ", statementIncludTax=" + statementIncludTax +
+                ", statementRemark='" + statementRemark + '\'' +
+                ", statementSettlementStatus='" + statementSettlementStatus + '\'' +
+                ", insertUsername='" + insertUsername + '\'' +
+                ", insertTime=" + insertTime +
+                ", updateUsername='" + updateUsername + '\'' +
+                ", updateTime=" + updateTime +
+                ", insertUpdateRemark='" + insertUpdateRemark + '\'' +
+                ", statementType=" + statementType +
+                '}';
     }
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IBmstruckCheckService.java

@@ -27,5 +27,5 @@ public interface IBmstruckCheckService{
      * @param person
      * @return
      */
-    int updateBmstruckCheck(BigDecimal statementId,Integer status,String person);
+    int updateBmstruckCheck(BigDecimal statementId,Integer status,Integer person);
 }

+ 15 - 0
src/main/java/com/steerinfo/dil/service/IBmstruckDetailsOrderService.java

@@ -73,4 +73,19 @@ public interface IBmstruckDetailsOrderService {
      * @return
      */
     List<Map<String, Object>> getUnFinishedTruckDetailsOrderList(Map<String, Object> mapVal, Integer orderType);
+
+    List<Map<String, Object>> getUnFinishedConvertedTruckDetailsOrderList(Map<String, Object> mapVal, Integer orderType);
+
+    /**
+     * 新增内转汽运详单
+     * @param orderId
+     * @return
+     */
+    int addConvertedDetailsOrder(BigDecimal orderId) throws Exception;
+
+    //通过运单id获取需求类型(需求类型(0:计重;1:计时;2:计次;3:包月))
+    Map<String, Object> getSettlement(BigDecimal orderId);
+
+    //通过物资id与需求类型获取单价
+    BigDecimal getPriceByWz(String requirementType, Integer materialId);
 }

+ 1 - 0
src/main/java/com/steerinfo/dil/service/IBmstruckFormulaService.java

@@ -24,4 +24,5 @@ public interface IBmstruckFormulaService {
      * @return
      */
     Map<String, Object> selectAnyFormula(BigDecimal formulaId);
+
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/service/IBmstruckStatementService.java

@@ -42,4 +42,11 @@ public interface IBmstruckStatementService{
      * @return
      */
     List<Map<String, Object>> getSaleTruckStatementDetailsOrderList(Map<String, Object> mapVal);
+
+    //新增内转汽运账单
+    int addConvertedTruckStatement(List<Map<String, Object>> mapList, Integer orderType);
+    //根据主键id删除
+    int delete(BigDecimal statementId);
+    //用车单位审批汽运账单
+    int update(BigDecimal statementId);
 }

+ 7 - 4
src/main/java/com/steerinfo/dil/service/impl/BmstruckCheckServiceImpl.java

@@ -40,7 +40,7 @@ public class BmstruckCheckServiceImpl implements IBmstruckCheckService {
      * @return
      */
     @Override
-    public int updateBmstruckCheck(BigDecimal statementId,Integer status,String person) {
+    public int updateBmstruckCheck(BigDecimal statementId,Integer status,Integer person) {
         BigDecimal realStatus = new BigDecimal(status);
         Map<String,Object> map = new HashMap<>();
         map.put("statementId",statementId);
@@ -48,11 +48,14 @@ public class BmstruckCheckServiceImpl implements IBmstruckCheckService {
         BmstruckCheck bmstruckCheck = bmstruckChecks.get(0);
         bmstruckCheck.setStatementId(statementId);
         switch (person){
-            case "收货客户": bmstruckCheck.setCheckReceiveCustomerStatus(realStatus);
+            //0收货客户
+            case 0: bmstruckCheck.setCheckReceiveCustomerStatus(realStatus);
                 break;
-            case "承运商": bmstruckCheck.setCheckCarrierStatus(realStatus);
+                //1承运商
+            case 1: bmstruckCheck.setCheckCarrierStatus(realStatus);
                 break;
-            case "销售公司": bmstruckCheck.setCheckShipperStatus(realStatus);
+                //销售公司
+            case 2: bmstruckCheck.setCheckShipperStatus(realStatus);
                 break;
         }
         return bmstruckCheckMapper.updateByPrimaryKeySelective(bmstruckCheck);

+ 73 - 0
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -178,6 +178,26 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         mapVal.put("orderType",new BigDecimal(orderType));
         return bmstruckDetailsOrderMapper.getUnFinishedTruckDetailsOrderList(mapVal);
     }
+    //通过不同的值,查询未生成账单的计费详单
+    @Override
+    public List<Map<String, Object>> getUnFinishedConvertedTruckDetailsOrderList(Map<String, Object> mapVal, Integer orderType) {
+        //orderType:1:计时,2:计数,3:计重,4:包月
+        if(orderType==1){
+            return bmstruckDetailsOrderMapper.getUnFinishedTimeTruckDetailsOrderList(mapVal);
+        }
+        else if(orderType==2){
+            return bmstruckDetailsOrderMapper.getUnFinishedNumTruckDetailsOrderList(mapVal);
+        }
+        else if(orderType==3){
+            return bmstruckDetailsOrderMapper.getUnFinishedWeightTruckDetailsOrderList(mapVal);
+        }
+        else if(orderType==4){
+            return bmstruckDetailsOrderMapper.getUnFinishedMonthTruckDetailsOrderList(mapVal);
+        }
+        return null;
+    }
+
+
 
     /**
      * 替换汽运费公式并进行计算
@@ -370,4 +390,57 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         }
         return result;
     }
+
+
+    /**
+     * 新增内转汽运详单
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public int addConvertedDetailsOrder(BigDecimal orderId) throws Exception {
+        // 得到最大id
+        BigDecimal detailsId = selectMaxId();
+        String detailsNo = noUtil.setResultNo("QYXD", detailsId);
+        // 新增详单实体
+        BmstruckDetailsOrder bmstruckDetailsOrder = new BmstruckDetailsOrder();
+        // 设置常规字段
+        bmstruckDetailsOrder.setInsertTime(new Date());
+        bmstruckDetailsOrder.setInsertUsername("admin");
+        bmstruckDetailsOrder.setInsertUpdateRemark("无");
+        // 通过订单号获取物资信息以及结算方式
+        Map<String, Object> mapVal=getSettlement(orderId);
+        //需求类型(0:计重;1:计时;2:计次;3:包月)
+        String requirementType=mapVal.get("requirementType").toString();
+        Integer materialId =Integer.parseInt(mapVal.get("materialId").toString());
+        //通过物资id以及结算方式获取单价;
+        BigDecimal priceId=getPriceByWz(requirementType,materialId);
+        // 将单价存入实体
+        bmstruckDetailsOrder.setPriceId(priceId);
+        // 获取物资数量/计时获取时长/计数为一次/包月为包月价
+        if("0".equals(requirementType)){
+            //通过单价ID获取单价
+            BigDecimal price=getPriceValue(priceId);
+            //获取物资重量
+            BigDecimal weight=getNetWeight(priceId);
+            bmstruckDetailsOrder.setDetailsAmount(new BigDecimal(price.doubleValue()*weight.doubleValue()));
+        }
+        else{
+            //通过单价ID获取单价
+            BigDecimal price=getPriceValue(priceId);
+            bmstruckDetailsOrder.setDetailsAmount(price);
+        }
+        return bmstruckDetailsOrderMapper.insertSelective(bmstruckDetailsOrder);
+    }
+    //通过物资id以及结算方式获取单价;
+    @Override
+    public BigDecimal getPriceByWz(String requirementType, Integer materialId) {
+        return bmstruckDetailsOrderMapper.getPriceByWz(requirementType,materialId);
+    }
+    @Override
+    // 通过订单号获取物资信息以及结算方式
+    public Map<String, Object> getSettlement(BigDecimal orderId) {
+        return bmstruckDetailsOrderMapper.getSettlement(orderId);
+    }
 }

+ 1 - 0
src/main/java/com/steerinfo/dil/service/impl/BmstruckFormulaServiceImpl.java

@@ -40,3 +40,4 @@ public class BmstruckFormulaServiceImpl implements IBmstruckFormulaService {
         return bmstruckFormulaMapper.selectAnyFormula(formulaId);
     }
 }
+

+ 109 - 11
src/main/java/com/steerinfo/dil/service/impl/BmstruckStatementServiceImpl.java

@@ -22,6 +22,7 @@ import java.util.Map;
 
 /**
  * BmstruckStatement服务实现:
+ *
  * @author generator
  * @version 1.0-SNAPSHORT 2021-10-15 06:20
  * 类描述
@@ -30,8 +31,8 @@ import java.util.Map;
  * 作者:generator
  * 参考:
  * 描述:BmstruckStatement服务实现
- * @see null
  * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
+ * @see null
  */
 @Service(value = "bmstruckStatementService")
 public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
@@ -49,6 +50,7 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
 
     /**
      * 展示计费账单
+     *
      * @param mapValue
      * @return
      */
@@ -56,33 +58,34 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
     public List<Map<String, Object>> getTruckStatementList(Map<String, Object> mapValue) {
         List<Map<String, Object>> mapList = bmstruckStatementMapper.getTruckStatementList(mapValue);
         String checkStatus = "";
-        for (Map<String,Object> map: mapList) {
+        for (Map<String, Object> map : mapList) {
             BigDecimal checkCarrierStatus = (BigDecimal) map.get("checkCarrierStatus");
             BigDecimal checkReceiveCustomerStatus = (BigDecimal) map.get("checkReceiveCustomerStatus");
             BigDecimal checkShipperStatus = (BigDecimal) map.get("checkShipperStatus");
-            // 有人拒绝:未通过审核
-            if (checkCarrierStatus != null || checkReceiveCustomerStatus != null || checkShipperStatus != null && (checkCarrierStatus.intValue() == 0 || checkReceiveCustomerStatus.intValue() == 0 || checkShipperStatus.intValue() == 0)){
+            if (checkCarrierStatus.intValue() == 1 || checkReceiveCustomerStatus.intValue() == 1 || checkShipperStatus.intValue() == 1) {
                 checkStatus = "未通过审核";
             }
             // 全部通过:已通过审核
-            if (checkCarrierStatus != null || checkReceiveCustomerStatus != null || checkShipperStatus != null && (checkCarrierStatus.intValue() == 1 && checkReceiveCustomerStatus.intValue() == 1 && checkShipperStatus.intValue() == 1)) {
+            if (checkCarrierStatus.intValue() == 2 && checkReceiveCustomerStatus.intValue() == 2 && checkShipperStatus.intValue() == 2) {
                 checkStatus = "已通过审核";
             }
             // 有人未审核,且没人拒绝:审核中
-            if (checkCarrierStatus != null || checkReceiveCustomerStatus != null || checkShipperStatus != null && checkStatus != "未通过审批"){
+            if (checkStatus != "未审核通过" && checkCarrierStatus.intValue() == 0 || checkReceiveCustomerStatus.intValue() == 0 || checkShipperStatus.intValue() == 0) {
                 checkStatus = "审核中";
             }
             // 全部都没审核:待审核
-            if (checkCarrierStatus == null && checkReceiveCustomerStatus == null && checkShipperStatus == null) {
+            if (checkCarrierStatus.intValue() == 0 && checkReceiveCustomerStatus.intValue() == 0 && checkShipperStatus.intValue() == 0) {
                 checkStatus = "待审核";
             }
-            map.put("checkStatus",checkStatus);
+            map.put("checkStatus", checkStatus);
         }
         return mapList;
     }
 
+
     /**
      * 生成汽运账单
+     *
      * @param mapList
      * @return
      */
@@ -97,9 +100,12 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
         BigDecimal checkId = bmstruckCheckMapper.selectCheckId();
         bmstruckCheck.setCheckId(checkId);
         bmstruckCheck.setStatementId(statementId);
+        bmstruckCheck.setCheckCarrierStatus(new BigDecimal(0));
+        bmstruckCheck.setCheckShipperStatus(new BigDecimal(0));
+        bmstruckCheck.setCheckReceiveCustomerStatus(new BigDecimal(0));
         bmstruckCheckMapper.insertSelective(bmstruckCheck);
         // 汽运账单编号
-        String statementNumber = noUtil.setResultNo("QYZD",statementId);
+        String statementNumber = noUtil.setResultNo("QYZD", statementId);
         bmstruckStatement.setStatementNumber(statementNumber);
         // 支付单位
         bmstruckStatement.setStatementPaymentUnit("四川达州钢铁集团有限责任公司");
@@ -112,7 +118,7 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
         bmstruckStatement.setUpdateUsername("admin");
         bmstruckStatement.setInsertUpdateRemark("无");
         Double doubleTotalAmount = new Double(0);
-        for (Map<String,Object> map: mapList ) {
+        for (Map<String, Object> map : mapList) {
             // 中间表主键
             BigDecimal detailsStatementId = bmstruckDetailsStatementMapper.selectDetailsStatementId();
             // 详单id
@@ -130,7 +136,7 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
             bmstruckDetailsStatement.setUpdateTime(new Date());
             bmstruckDetailsStatement.setUpdateUsername("admin");
             bmstruckDetailsStatement.setInsertUpdateRemark("无");
-            BigDecimal detailsAmount = new BigDecimal((Integer)map.get("detailsAmount"));
+            BigDecimal detailsAmount = new BigDecimal((Double) map.get("detailsAmount"));
             Double detailsAmountDouble = Double.valueOf(detailsAmount.toString());
             doubleTotalAmount += detailsAmountDouble;
             bmstruckDetailsStatementMapper.insertSelective(bmstruckDetailsStatement);
@@ -143,6 +149,7 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
 
     /**
      * 展示账单下的详单
+     *
      * @param mapVal
      * @return
      */
@@ -150,4 +157,95 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
     public List<Map<String, Object>> getSaleTruckStatementDetailsOrderList(Map<String, Object> mapVal) {
         return bmstruckStatementMapper.getSaleTruckStatementDetailsOrderList(mapVal);
     }
+
+    /**
+     * 新增内转汽运账单
+     *
+     * @param mapList
+     * @param orderType
+     * @return
+     */
+    @Override
+    public int addConvertedTruckStatement(List<Map<String, Object>> mapList, Integer orderType) {
+        //orderType:1:计时,2:计数,3:计重,4:包月
+        // 生成汽运账单主键
+        BigDecimal statementId = bmstruckStatementMapper.selectStatementId();
+        // 创建账单实体
+        BmstruckStatement bmstruckStatement = new BmstruckStatement();
+        // 常规字段
+        bmstruckStatement.setInsertTime(new Date());
+        bmstruckStatement.setInsertUsername("admin");
+        bmstruckStatement.setInsertUpdateRemark("无");
+        // 计算账单总金额
+        Double doubleTotalAmount = new Double(0);
+        //将详单id与账单id绑定至中间表
+        for (Map<String, Object> map : mapList) {
+            // 中间表主键
+            BigDecimal detailsStatementId = bmstruckDetailsStatementMapper.selectDetailsStatementId();
+            // 详单id
+            BigDecimal detailsId = new BigDecimal((Integer) map.get("detailsId"));
+            // 获取详单信息
+            BmstruckDetailsOrder bmstruckDetailsOrder = bmstruckDetailsOrderMapper.selectByPrimaryKey(detailsId);
+            // 将该详单状态变为已生成账单
+            bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(1));
+            bmstruckDetailsOrder.setUpdateTime(new Date());
+            bmstruckDetailsOrder.setUpdateUsername("admin");
+            // 修改详单信息
+            bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
+            // 新增中间表实体
+            BmstruckDetailsStatement bmstruckDetailsStatement = new BmstruckDetailsStatement();
+            //设置主键
+            bmstruckDetailsStatement.setDetailsStatementId(detailsStatementId);
+            bmstruckDetailsStatement.setStatementId(statementId);
+            bmstruckDetailsStatement.setDetailsId(detailsId);
+            // 设置常规字段
+            bmstruckDetailsStatement.setInsertTime(new Date());
+            bmstruckDetailsStatement.setInsertUsername("admin");
+            bmstruckDetailsStatement.setInsertUpdateRemark("无");
+            BigDecimal detailsAmount = new BigDecimal((Double) map.get("detailsAmount"));
+            Double detailsAmountDouble = Double.valueOf(detailsAmount.toString());
+            doubleTotalAmount += detailsAmountDouble;
+            bmstruckDetailsStatementMapper.insertSelective(bmstruckDetailsStatement);
+        }
+        if (orderType == 1) {
+            // 备注
+            bmstruckStatement.setStatementRemark("计时汽运费账单");
+        } else if (orderType == 2) {
+            // 备注
+            bmstruckStatement.setStatementRemark("计数汽运费账单");
+        } else if (orderType == 3) {
+            // 备注
+            bmstruckStatement.setStatementRemark("计重汽运费账单");
+        } else if (orderType == 4) {
+            // 备注
+            bmstruckStatement.setStatementRemark("包月汽运费账单");
+        }
+        bmstruckStatement.setStatementExcludTax(new BigDecimal(doubleTotalAmount));
+        return bmstruckStatementMapper.insertSelective(bmstruckStatement);
+    }
+
+    @Override
+    public int delete(BigDecimal statementId) {
+        //通过账单id获取详单
+        List<BigDecimal> list = bmstruckStatementMapper.getDetailById(statementId);
+        for (BigDecimal detailsId : list
+        ) {
+            BmstruckDetailsOrder bmstruckDetailsOrder = new BmstruckDetailsOrder();
+            bmstruckDetailsOrder.setDetailsId(detailsId);
+            bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(0));
+            bmstruckDetailsOrder.setUpdateTime(new Date());
+            bmstruckDetailsOrder.setUpdateUsername("admin");
+            bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
+        }
+        return bmstruckStatementMapper.deleteByPrimaryKey(statementId);
+    }
+
+    @Override
+    public int update(BigDecimal statementId) {
+        BmstruckStatement bmstruckStatement = new BmstruckStatement();
+        bmstruckStatement.setStatementType(new BigDecimal(1));
+        bmstruckStatement.setUpdateTime(new Date());
+        bmstruckStatement.setUpdateUsername("admin");
+        return bmstruckStatementMapper.updateByPrimaryKeySelective(bmstruckStatement);
+    }
 }

+ 4 - 5
src/main/resources/application-dev.yml

@@ -1,9 +1,8 @@
 spring:
   datasource:
-    url: jdbc:oracle:thin:@192.168.1.51:1521:steerinfo
-    password: st#0901
-    username: DIL0901
+    url: jdbc:oracle:thin:@172.16.33.163:1521:ilsdbpri
+    password: dil
+    username: Dil123789
     driver-class-name: oracle.jdbc.OracleDriver
   application:
-    name: dil-bmstruck-api-dev
-
+    name: dil-bmstruck-api-dev

+ 3 - 3
src/main/resources/application-prod.yml

@@ -1,8 +1,8 @@
 spring:
   datasource:
-    url: jdbc:oracle:thin:@192.168.1.51:1521:steerinfo
-    password: st#0901
-    username: DIL0901
+    url: jdbc:oracle:thin:@172.16.33.163:1521:ilsdbpri
+    password: dil
+    username: Dil123789
     driver-class-name: oracle.jdbc.OracleDriver
   application:
     name: dil-bmstruck-api-dev

+ 6 - 2
src/main/resources/bootstrap.yml

@@ -14,13 +14,17 @@ spring:
 
 openfeign:
   ColumnDataFeign:
-    url: ${COLUMNDATAFEIGN_URL:192.168.0.108:8083}
+    url: ${COLUMNDATAFEIGN_URL:localhost:8083}
 
 #eureka设置
 eureka:
   client:
     service-url:
-      defaultZone: http://root:root@discovery.steerinfo.com/eureka/
+      defaultZone: http://root:root@${EUREKA_HOST:172.16.33.161}:${EUREKA_PORT:8061}/eureka/
+  instance:
+    prefer-ip-address: true
+    status-page-url: http://${spring.cloud.client.ip-address}:${server.port}/swagger-ui.html#/
+    instance-id: ${spring.cloud.client.ip-address}:${server.port}
 
 genxml:
   pth: com/a

+ 94 - 0
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -1029,4 +1029,98 @@
                            ON ttr.RESULT_TOTAL_ID = twr.RESULT_TOTAL_ID
         WHERE oo.ORDER_ID = #{orderId}
     </select>
+
+    <!--  查询未生成账单的计时详单  -->
+    <!--计时-->
+    <select id="getUnFinishedTimeTruckDetailsOrderList"  parameterType="java.util.Map" resultType="java.util.Map">
+    select bdo.details_no as "detailsNo",
+       bdo.order_id as "orderId",
+       bdo.details_time as "detailsTime",
+       rc.capacity_number as "capacityNumber",
+       rct.capacity_type_name as "capacityType",
+       air.requirement_type as "requirementType",
+       bdo.price_id as "priceId",
+       bdo.details_amount as "detailsAmount"
+from bmstruck_details_order bdo
+join omstruck_order oo on bdo.order_id=oo.order_id
+join rms_capacity rc on oo.capacity_id=rc.capacity_id
+join rms_capacity_type rct on rc.capacity_type_id=rct.capacity_type_id
+join amstruck_inward_plan aip on oo.order_plan_id=aip.plan_id
+join amstruck_requirement_plan arp on aip.plan_id=arp.plan_id
+join amstruck_inward_requirement air on arp.requirement_plan_id=air.requirement_id
+join rms_line rl on air.line_id=rl.line_id
+where air.requirement_type=1 and bdo.wether_to_statement=0 and oo.order_type=4
+    </select>
+    <!--计数-->
+    <select id="getUnFinishedNumTruckDetailsOrderList"  parameterType="java.util.Map" resultType="java.util.Map">
+    select bdo.details_no as "detailsNo",
+       bdo.order_id as "orderId",
+       bdo.details_time as "detailsTime",
+       rc.capacity_number as "capacityNumber",
+       rct.capacity_type_name as "capacityType",
+       air.requirement_type as "requirementType",
+       bdo.price_id as "priceId",
+       bdo.details_amount as "detailsAmount"
+from bmstruck_details_order bdo
+join omstruck_order oo on bdo.order_id=oo.order_id
+join rms_capacity rc on oo.capacity_id=rc.capacity_id
+join rms_capacity_type rct on rc.capacity_type_id=rct.capacity_type_id
+join amstruck_inward_plan aip on oo.order_plan_id=aip.plan_id
+join amstruck_requirement_plan arp on aip.plan_id=arp.plan_id
+join amstruck_inward_requirement air on arp.requirement_plan_id=air.requirement_id
+join rms_line rl on air.line_id=rl.line_id
+where air.requirement_type=2 and bdo.wether_to_statement=0 and oo.order_type=4
+    </select>
+    <!--计重-->
+    <select id="getUnFinishedWeightTruckDetailsOrderList"  parameterType="java.util.Map" resultType="java.util.Map">
+    select bdo.details_no as "detailsNo",
+       bdo.order_id as "orderId",
+       bdo.details_time as "detailsTime",
+       rc.capacity_number as "capacityNumber",
+       rct.capacity_type_name as "capacityType",
+       air.requirement_type as "requirementType",
+       bdo.price_id as "priceId",
+       bdo.details_amount as "detailsAmount"
+from bmstruck_details_order bdo
+join omstruck_order oo on bdo.order_id=oo.order_id
+join rms_capacity rc on oo.capacity_id=rc.capacity_id
+join rms_capacity_type rct on rc.capacity_type_id=rct.capacity_type_id
+join amstruck_inward_plan aip on oo.order_plan_id=aip.plan_id
+join amstruck_requirement_plan arp on aip.plan_id=arp.plan_id
+join amstruck_inward_requirement air on arp.requirement_plan_id=air.requirement_id
+join rms_line rl on air.line_id=rl.line_id
+where air.requirement_type=0 and bdo.wether_to_statement=0 and oo.order_type=4
+    </select>
+    <!--包月-->
+    <select id="getUnFinishedMonthTruckDetailsOrderList"  parameterType="java.util.Map" resultType="java.util.Map">
+    select bdo.details_no as "detailsNo",
+       bdo.order_id as "orderId",
+       bdo.details_time as "detailsTime",
+       rc.capacity_number as "capacityNumber",
+       rct.capacity_type_name as "capacityType",
+       air.requirement_type as "requirementType",
+       bdo.price_id as "priceId",
+       bdo.details_amount as "detailsAmount"
+from bmstruck_details_order bdo
+join omstruck_order oo on bdo.order_id=oo.order_id
+join rms_capacity rc on oo.capacity_id=rc.capacity_id
+join rms_capacity_type rct on rc.capacity_type_id=rct.capacity_type_id
+join amstruck_inward_plan aip on oo.order_plan_id=aip.plan_id
+join amstruck_requirement_plan arp on aip.plan_id=arp.plan_id
+join amstruck_inward_requirement air on arp.requirement_plan_id=air.requirement_id
+join rms_line rl on air.line_id=rl.line_id
+where air.requirement_type=3 and bdo.wether_to_statement=0 and oo.order_type=4
+    </select>
+
+<!--  通过运单id获取需求类型(需求类型(0:计重;1:计时;2:计次;3:包月))-->
+    <select id="getSettlement" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select air.requirement_type as "requirementType",
+               oom.material_id as "materialId"
+        from omstruck_order oo
+               left join omstruck_order_material oom on oo.order_id=oom.order_id
+               left join amstruck_inward_plan aip on oo.order_plan_id=aip.plan_id
+               left join amstruck_requirement_plan arp on arp.plan_id=aip.plan_id
+               left join amstruck_inward_requirement air on arp.requirement_id=air.requirement_id
+        where oo.order_id=#{orderId}
+    </select>
 </mapper>

+ 10 - 2
src/main/resources/com/steerinfo/dil/mapper/BmstruckStatementMapper.xml

@@ -522,7 +522,7 @@
         LEFT JOIN BMSTRUCK_DETAILS_STATEMENT bds
         ON bdo.DETAILS_ID = bds.DETAILS_ID
         WHERE bds.STATEMENT_ID = #{statementId}
-        AND bdo.WETHER_TO_STATEMENT = 0
+        AND bdo.WETHER_TO_STATEMENT = 1
         )
         <where>
             <if test="detailsNo!= null">
@@ -582,5 +582,13 @@
         </where>
         <include refid="orderBy"></include>
     </select>
-
+<!--    //通过账单id获取账单对应的详单信息-->
+<!--    List<BmstruckDetailsOrder> getDetailById(BigDecimal statementId);-->
+    <select id="getDetailById" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select bdo.details_id
+        from bmstruck_statement bs
+                 left join bmstruck_statement_detail_list bsdl on bs.statement_id = bsdl.cost_id
+                 left join bmstruck_details_order bdo on bsdl.list_id=bdo.details_id
+        where bs.statement_id=#{statementId}
+    </select>
 </mapper>