Explorar o código

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU1/DAL-DAZHOU-BMSTRUCK-API

luobang %!s(int64=2) %!d(string=hai) anos
pai
achega
25352437c8

+ 1 - 1
pom.xml

@@ -116,7 +116,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
-<!--                        <param>BMSTRUCK_DETAILS_ORDER</param>&lt;!&ndash;运力&ndash;&gt;-->
+                        <param>BMSTRUCK_DETAILS_ORDER</param><!--运力-->
                     </tables>
                 </configuration>
                 <executions>

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

@@ -522,4 +522,28 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         }
         return setString;
     }
+
+    @ApiOperation("直接修改详单金额")
+    @PostMapping("updateTruckDetail")
+    public RESTfulResult updateTruckDetail(@RequestBody Map<String,Object> map) {
+        try{
+            bmstruckDetailsOrderService.updateDetailsDirect(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return failed("修改失败");
+        }
+        return success("修改成功");
+    }
+
+    @ApiOperation("新增详单,计量实绩为空(冲红)")
+    @PostMapping("addTruckDetail")
+    public RESTfulResult addTruckDetail(@RequestBody Map<String,Object> map) {
+        try{
+            bmstruckDetailsOrderService.addTruckDetail(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return failed("新增失败");
+        }
+        return success("新增成功");
+    }
 }

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

@@ -222,4 +222,6 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
 
     int cancelMakeSure(Integer orderId);
 
+    int updateTruckDetails(Map<String,Object> map);
+
 }

+ 78 - 16
src/main/java/com/steerinfo/dil/model/BmstruckDetailsOrder.java

@@ -100,32 +100,40 @@ public class BmstruckDetailsOrder implements IBasePO<BigDecimal> {
     private BigDecimal orderId;
 
     /**
-     *单价IDS(用于保存多条数据)
+     * 单价IDS(用于保存多条数据)(PRICEIDS,VARCHAR,20)
      */
-    @ApiModelProperty(value="单价IDS",required=false)
+    @ApiModelProperty(value="单价IDS(用于保存多条数据)",required=false)
     private String priceids;
 
     /**
-     *修改前的运费
+     * 历史单价(HISTORY_DETAILS_AMOUNT,DECIMAL,0)
      */
-    @ApiModelProperty(value="修改前的运费",required=false)
+    @ApiModelProperty(value="历史单价",required=false)
     private BigDecimal historyDetailsAmount;
 
-    public BigDecimal getHistoryDetailsAmount() {
-        return historyDetailsAmount;
-    }
+    /**
+     * 账单ID(STATEMENT_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="账单ID",required=false)
+    private BigDecimal statementId;
 
-    public void setHistoryDetailsAmount(BigDecimal historyDetailsAmount) {
-        this.historyDetailsAmount = historyDetailsAmount;
-    }
+    /**
+     * 修改凭证图片(PHOTO,VARCHAR,700)
+     */
+    @ApiModelProperty(value="修改凭证图片",required=false)
+    private String photo;
 
-    public String getPriceids() {
-        return priceids;
-    }
+    /**
+     * 修改备注(REMARK,VARCHAR,255)
+     */
+    @ApiModelProperty(value="修改备注",required=false)
+    private String remark;
 
-    public void setPriceids(String priceids) {
-        this.priceids = priceids;
-    }
+    /**
+     * 单价值,直接修改单价的值(PRICE_VALUE,DECIMAL,0)
+     */
+    @ApiModelProperty(value="单价值,直接修改单价的值",required=false)
+    private BigDecimal priceValue;
 
     private static final long serialVersionUID = 1L;
 
@@ -259,6 +267,54 @@ public class BmstruckDetailsOrder implements IBasePO<BigDecimal> {
         this.orderId = orderId;
     }
 
+    public String getPriceids() {
+        return priceids;
+    }
+
+    public void setPriceids(String priceids) {
+        this.priceids = priceids == null ? null : priceids.trim();
+    }
+
+    public BigDecimal getHistoryDetailsAmount() {
+        return historyDetailsAmount;
+    }
+
+    public void setHistoryDetailsAmount(BigDecimal historyDetailsAmount) {
+        this.historyDetailsAmount = historyDetailsAmount;
+    }
+
+    public BigDecimal getStatementId() {
+        return statementId;
+    }
+
+    public void setStatementId(BigDecimal statementId) {
+        this.statementId = statementId;
+    }
+
+    public String getPhoto() {
+        return photo;
+    }
+
+    public void setPhoto(String photo) {
+        this.photo = photo == null ? null : photo.trim();
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark == null ? null : remark.trim();
+    }
+
+    public BigDecimal getPriceValue() {
+        return priceValue;
+    }
+
+    public void setPriceValue(BigDecimal priceValue) {
+        this.priceValue = priceValue;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -280,6 +336,12 @@ public class BmstruckDetailsOrder implements IBasePO<BigDecimal> {
         sb.append(", wetherToStatement=").append(wetherToStatement);
         sb.append(", easAmount=").append(easAmount);
         sb.append(", orderId=").append(orderId);
+        sb.append(", priceids=").append(priceids);
+        sb.append(", historyDetailsAmount=").append(historyDetailsAmount);
+        sb.append(", statementId=").append(statementId);
+        sb.append(", photo=").append(photo);
+        sb.append(", remark=").append(remark);
+        sb.append(", priceValue=").append(priceValue);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 16 - 1
src/main/java/com/steerinfo/dil/model/BmstruckStatement.java

@@ -123,11 +123,17 @@ public class BmstruckStatement implements IBasePO<BigDecimal> {
     private BigDecimal carrierId;
 
     /**
-     * 发票图片(PHOTO,VARCHAR,255)
+     * 发票图片(PHOTO,VARCHAR,700)
      */
     @ApiModelProperty(value="发票图片",required=false)
     private String photo;
 
+    /**
+     * 账单日期(STATEMENT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="账单日期",required=false)
+    private Date statementTime;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -300,6 +306,14 @@ public class BmstruckStatement implements IBasePO<BigDecimal> {
         this.photo = photo == null ? null : photo.trim();
     }
 
+    public Date getStatementTime() {
+        return statementTime;
+    }
+
+    public void setStatementTime(Date statementTime) {
+        this.statementTime = statementTime;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -326,6 +340,7 @@ public class BmstruckStatement implements IBasePO<BigDecimal> {
         sb.append(", consigneeId=").append(consigneeId);
         sb.append(", carrierId=").append(carrierId);
         sb.append(", photo=").append(photo);
+        sb.append(", statementTime=").append(statementTime);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

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

@@ -132,4 +132,10 @@ public interface IBmstruckDetailsOrderService {
 
     //新增单价信息
     int insertPriceValue(List<Map<String,Object>> mapList);
+
+    //直接修改单价
+    int updateDetailsDirect(Map<String,Object> map) throws Exception;
+
+    //新增冲红
+    int addTruckDetail(Map<String,Object> map) throws Exception;
 }

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

@@ -359,6 +359,25 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         return calSufExpr(s);
     }
 
+    /**
+     * 钢材直接修改计算运费
+     * @param priceValue
+     * @param weightTaskResultId
+     * @return
+     * @throws Exception
+     */
+    public BigDecimal generateTruckFeesForDirect(BigDecimal priceValue,BigDecimal weightTaskResultId) throws Exception {
+        BigDecimal netWeight = getNetWeight(weightTaskResultId);
+        // 得到计费公式
+        String formula_string = null;
+        formula_string = bmstruckFormulaService.getTruckFormula(new BigDecimal(10));
+        // 替换采购汽运运计算公式
+        formula_string = formula_string.replace("运输单价",priceValue.toString())
+                .replace("物资净重",netWeight.toString());
+        String s = toSufExpr(formula_string);
+        return calSufExpr(s);
+    }
+
     /**
      * 替换汽运费公式并进行计算(专为计费详单服务)
      * @param orderId
@@ -1121,4 +1140,123 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         }
         return i;
     }
+
+    @Override
+    public int updateDetailsDirect(Map<String, Object> mapValue) throws Exception {
+        List<BigDecimal> orderIds = (List<BigDecimal>) mapValue.get("orderList");
+        BigDecimal priceValue = DataChange.dataToBigDecimal(mapValue.get("detailAmount"));//以java变量名为准,这里是所填写的单价值
+        if(priceValue.intValue() <= 0){
+            throw new Exception("单价不能小于等于0");
+        }
+        String detailRemark = mapValue.get("detailRemark").toString();
+        String userId = mapValue.get("userId").toString();
+        String url = mapValue.get("url").toString();
+        int result = 0;
+        for(int i=0;i<orderIds.size();i++){
+            BigDecimal orderId = DataChange.dataToBigDecimal(orderIds.get(i));
+            //校验
+            BigDecimal orderType = bmstruckDetailsOrderMapper.getOrderType(orderId);
+            if(orderType.intValue() != 1){
+                throw new Exception("订单类型错误,不允许生成汽运计费详单");
+            }
+            //查询订单计量详情
+            List<Map<String,Object>> weightTaskResultIdList = bmstruckDetailsOrderMapper.getSteelWeightTaskResultId(orderId);
+            for (Map<String, Object> map : weightTaskResultIdList) {
+                BigDecimal weightTaskResultId = DataChange.dataToBigDecimal(map.get("weightTaskResultId"));
+                //计算总费用
+                BigDecimal  detailsAmountOld = generateTruckFeesForDirect(priceValue, weightTaskResultId);
+                Double amount = detailsAmountOld.doubleValue();
+                BigDecimal detailsAmount = new BigDecimal(amount).setScale(2,RoundingMode.HALF_UP);
+                //判断该计量实绩有没有结算数据
+                if(bmstruckDetailsOrderMapper.getIsHaveDetailsOrder(weightTaskResultId) > 0 ){
+                    //如果有,更新
+                    Map<String,Object> temp =new HashMap<>();
+                    temp.put("orderId",orderId);
+                    temp.put("weightTaskResultId",weightTaskResultId);
+                    temp.put("priceValue",priceValue);
+                    temp.put("detailAmount",detailsAmount);
+                    temp.put("detailRemark",detailRemark);
+                    temp.put("url",url);
+                    temp.put("userId",userId);
+                    result +=bmstruckDetailsOrderMapper.updateTruckDetails(temp);
+                    continue;
+                }
+                //否则,新增详单
+                try {
+                    BmstruckDetailsOrder bmstruckDetailsOrder = new BmstruckDetailsOrder();
+                    bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(0));
+                    // 得到最大id
+                    BigDecimal detailsId = selectMaxId();
+                    String detailsNo = noUtil.setResultNo("QYXD", detailsId);
+                    bmstruckDetailsOrder.setDetailsId(detailsId);
+                    bmstruckDetailsOrder.setWeightTaskResultId(weightTaskResultId);
+                    bmstruckDetailsOrder.setOrderId(orderId);
+                    bmstruckDetailsOrder.setDetailsNo(detailsNo);
+                    bmstruckDetailsOrder.setDetailsAmount(detailsAmount);
+                    bmstruckDetailsOrder.setDetailsTime(new Date());
+                    bmstruckDetailsOrder.setPriceValue(priceValue);//填写的单价
+                    bmstruckDetailsOrder.setPhoto(url);//上传的凭证图片路径
+                    bmstruckDetailsOrder.setRemark(detailRemark);//凭证备注
+                    // 设置常规字段
+                    bmstruckDetailsOrder.setInsertTime(new Date());
+                    bmstruckDetailsOrder.setUpdateTime(new Date());
+                    bmstruckDetailsOrder.setInsertUsername(userId);
+                    bmstruckDetailsOrder.setUpdateUsername("admin");
+                    bmstruckDetailsOrder.setInsertUpdateRemark("无");
+                    result += bmstruckDetailsOrderMapper.insertSelective(bmstruckDetailsOrder);
+                }catch (Exception e){
+                    //不打印给控制台(有可能是正常情况)
+                    e.printStackTrace();
+                }
+            }
+        }
+        return result;
+    }
+
+
+    @Override
+    public int addTruckDetail(Map<String, Object> mapValue) throws Exception {
+        List<BigDecimal> orderIds = (List<BigDecimal>) mapValue.get("orderList");
+        BigDecimal detailsAmount = DataChange.dataToBigDecimal(mapValue.get("detailAmount"));
+        String detailRemark = mapValue.get("detailRemark").toString();
+        String userId = mapValue.get("userId").toString();
+        int result = 0;
+        for(int i=0;i<orderIds.size();i++){
+            BigDecimal orderId = DataChange.dataToBigDecimal(orderIds.get(i));
+            //校验
+            BigDecimal orderType = bmstruckDetailsOrderMapper.getOrderType(orderId);
+            if(orderType.intValue() != 1){
+                throw new Exception("订单类型错误,不允许生成汽运计费详单");
+            }
+            List<Map<String,Object>> weightTaskResultIdList = bmstruckDetailsOrderMapper.getSteelWeightTaskResultId(orderId);
+            if(weightTaskResultIdList.size()<=0){
+                throw new Exception("没有计量实绩,无法冲红");
+            }
+            //新增详单
+            try {
+                // 得到最大id
+                BigDecimal detailsId = selectMaxId();
+                BmstruckDetailsOrder bmstruckDetailsOrder = new BmstruckDetailsOrder();
+                bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(0));
+                String detailsNo = noUtil.setResultNo("QYXD", detailsId);
+                bmstruckDetailsOrder.setWeightTaskResultId(DataChange.dataToBigDecimal(weightTaskResultIdList.get(0).get("weightTaskResultId")));
+                bmstruckDetailsOrder.setDetailsId(detailsId);
+                bmstruckDetailsOrder.setOrderId(orderId);
+                bmstruckDetailsOrder.setDetailsNo(detailsNo);
+                bmstruckDetailsOrder.setDetailsAmount(detailsAmount);
+                bmstruckDetailsOrder.setDetailsTime(new Date());
+                bmstruckDetailsOrder.setRemark(detailRemark);//凭证备注
+                // 设置常规字段
+                bmstruckDetailsOrder.setInsertTime(new Date());
+                bmstruckDetailsOrder.setUpdateTime(new Date());
+                bmstruckDetailsOrder.setInsertUsername(userId);
+                bmstruckDetailsOrder.setUpdateUsername("admin");
+                bmstruckDetailsOrder.setInsertUpdateRemark("无");
+                result += bmstruckDetailsOrderMapper.insertSelective(bmstruckDetailsOrder);
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+        return result;
+    }
 }

+ 2 - 9
src/main/java/com/steerinfo/dil/service/impl/BmstruckStatementServiceImpl.java

@@ -100,6 +100,8 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
         bmstruckStatement.setConsigneeId(DataChange.dataToBigDecimal(companys.get(0).get("consigneeId")));
         bmstruckStatement.setCarrierId(DataChange.dataToBigDecimal(companys.get(0).get("carrierId")));
         bmstruckStatement.setStatementExcludTax(excludeTax.setScale(2,BigDecimal.ROUND_HALF_UP));
+        String statementTime=""+map.get("statementTime");
+        bmstruckStatement.setStatementTime(new Date(Long.parseLong(statementTime)));
         bmstruckStatement.setPhoto(url);
         // 汽运账单主键
         BigDecimal statementId = bmstruckStatementMapper.selectStatementId();
@@ -121,15 +123,6 @@ public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
         //详单绑定账单ID
         map.put("statementId",statementId);
         bmstruckStatementMapper.batchUpdateDetails(map);
-//        // 调用金蝶接口
-//        List<Map<String, Object>> entries = joinApiFeign.getSaleDetailsOrder(statementId.intValue());
-//        Map<String,Object> head = joinApiFeign.getStatement(statementId.intValue());
-//        Map<String,Object> input = new HashMap<>();
-//        input.put("entries",entries);
-//        input.put("head",head);
-//        Map<String, Object> totalMap = easUtil.getTotalMap();
-//        totalMap.put("input",input);
-//        joinApiFeign.WSFaceWay(totalMap);
         return code;
     }
 

+ 174 - 19
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -17,18 +17,24 @@
         <result column="WETHER_TO_STATEMENT" jdbcType="DECIMAL" property="wetherToStatement" />
         <result column="EAS_AMOUNT" jdbcType="DECIMAL" property="easAmount" />
         <result column="ORDER_ID" jdbcType="DECIMAL" property="orderId" />
-        <result column="PRICEIDS" jdbcType="VARCHAR" property="priceids"/>
-        <result column="HISTORY_DETAILS_AMOUNT" jdbcType="DECIMAL" property="historyDetailsAmount"></result>
+        <result column="PRICEIDS" jdbcType="VARCHAR" property="priceids" />
+        <result column="HISTORY_DETAILS_AMOUNT" jdbcType="DECIMAL" property="historyDetailsAmount" />
+        <result column="STATEMENT_ID" jdbcType="DECIMAL" property="statementId" />
+        <result column="PHOTO" jdbcType="VARCHAR" property="photo" />
+        <result column="REMARK" jdbcType="VARCHAR" property="remark" />
+        <result column="PRICE_VALUE" jdbcType="DECIMAL" property="priceValue" />
     </resultMap>
     <sql id="columns">
-        DETAILS_ID, PURCHASE_ORDER_ID, WEIGHT_TASK_RESULT_ID, DETAILS_NO, DETAILS_TIME, PRICE_ID, 
-    DETAILS_AMOUNT, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, 
-    WETHER_TO_STATEMENT, EAS_AMOUNT, ORDER_ID, HISTORY_DETAILS_AMOUNT
+        DETAILS_ID, PURCHASE_ORDER_ID, WEIGHT_TASK_RESULT_ID, DETAILS_NO, DETAILS_TIME, PRICE_ID,
+    DETAILS_AMOUNT, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
+    WETHER_TO_STATEMENT, EAS_AMOUNT, ORDER_ID, PRICEIDS, HISTORY_DETAILS_AMOUNT, STATEMENT_ID,
+    PHOTO, REMARK, PRICE_VALUE
     </sql>
     <sql id="columns_alias">
-        t.DETAILS_ID, t.PURCHASE_ORDER_ID, t.WEIGHT_TASK_RESULT_ID, t.DETAILS_NO, t.DETAILS_TIME, 
-    t.PRICE_ID, t.DETAILS_AMOUNT, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, 
-    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.WETHER_TO_STATEMENT, t.EAS_AMOUNT, t.ORDER_ID ,t.HISTORY_DETAILS_AMOUNT
+        t.DETAILS_ID, t.PURCHASE_ORDER_ID, t.WEIGHT_TASK_RESULT_ID, t.DETAILS_NO, t.DETAILS_TIME,
+    t.PRICE_ID, t.DETAILS_AMOUNT, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME,
+    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.WETHER_TO_STATEMENT, t.EAS_AMOUNT, t.ORDER_ID,
+    t.PRICEIDS, t.HISTORY_DETAILS_AMOUNT, t.STATEMENT_ID, t.PHOTO, t.REMARK, t.PRICE_VALUE
     </sql>
     <sql id="select">
         SELECT <include refid="columns" /> FROM BMSTRUCK_DETAILS_ORDER
@@ -83,6 +89,24 @@
             <if test="orderId != null">
                 and ORDER_ID = #{orderId}
             </if>
+            <if test="priceids != null and priceids != ''">
+                and PRICEIDS = #{priceids}
+            </if>
+            <if test="historyDetailsAmount != null">
+                and HISTORY_DETAILS_AMOUNT = #{historyDetailsAmount}
+            </if>
+            <if test="statementId != null">
+                and STATEMENT_ID = #{statementId}
+            </if>
+            <if test="photo != null and photo != ''">
+                and PHOTO = #{photo}
+            </if>
+            <if test="remark != null and remark != ''">
+                and REMARK = #{remark}
+            </if>
+            <if test="priceValue != null">
+                and PRICE_VALUE = #{priceValue}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -132,9 +156,27 @@
             <if test="orderId != null">
                 and ORDER_ID = #{orderId}
             </if>
+            <if test="priceids != null and priceids != ''">
+                and PRICEIDS LIKE '%${priceids}%'
+            </if>
+            <if test="historyDetailsAmount != null">
+                and HISTORY_DETAILS_AMOUNT = #{historyDetailsAmount}
+            </if>
+            <if test="statementId != null">
+                and STATEMENT_ID = #{statementId}
+            </if>
+            <if test="photo != null and photo != ''">
+                and PHOTO LIKE '%${photo}%'
+            </if>
+            <if test="remark != null and remark != ''">
+                and REMARK LIKE '%${remark}%'
+            </if>
+            <if test="priceValue != null">
+                and PRICE_VALUE = #{priceValue}
+            </if>
         </where>
     </sql>
-    <delete id="deleteByPrimaryKey" parameterType="DECIMAL">
+    <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
         delete from BMSTRUCK_DETAILS_ORDER
         where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
     </delete>
@@ -183,19 +225,41 @@
         <if test="orderId != null">
             or ORDER_ID = #{orderId}
         </if>
+        <if test="priceids != null and priceids != ''">
+            or PRICEIDS = #{priceids}
+        </if>
+        <if test="historyDetailsAmount != null">
+            or HISTORY_DETAILS_AMOUNT = #{historyDetailsAmount}
+        </if>
+        <if test="statementId != null">
+            or STATEMENT_ID = #{statementId}
+        </if>
+        <if test="photo != null and photo != ''">
+            or PHOTO = #{photo}
+        </if>
+        <if test="remark != null and remark != ''">
+            or REMARK = #{remark}
+        </if>
+        <if test="priceValue != null">
+            or PRICE_VALUE = #{priceValue}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.BmstruckDetailsOrder">
         insert into BMSTRUCK_DETAILS_ORDER (DETAILS_ID, PURCHASE_ORDER_ID, WEIGHT_TASK_RESULT_ID,
                                             DETAILS_NO, DETAILS_TIME, PRICE_ID,
                                             DETAILS_AMOUNT, INSERT_USERNAME, INSERT_TIME,
                                             UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
-                                            WETHER_TO_STATEMENT, EAS_AMOUNT, ORDER_ID
+                                            WETHER_TO_STATEMENT, EAS_AMOUNT, ORDER_ID,
+                                            PRICEIDS, HISTORY_DETAILS_AMOUNT, STATEMENT_ID,
+                                            PHOTO, REMARK, PRICE_VALUE
         )
         values (#{detailsId,jdbcType=DECIMAL}, #{purchaseOrderId,jdbcType=DECIMAL}, #{weightTaskResultId,jdbcType=DECIMAL},
                 #{detailsNo,jdbcType=VARCHAR}, #{detailsTime,jdbcType=TIMESTAMP}, #{priceId,jdbcType=DECIMAL},
                 #{detailsAmount,jdbcType=DECIMAL}, #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
                 #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR},
-                #{wetherToStatement,jdbcType=DECIMAL}, #{easAmount,jdbcType=DECIMAL}, #{orderId,jdbcType=DECIMAL}
+                #{wetherToStatement,jdbcType=DECIMAL}, #{easAmount,jdbcType=DECIMAL}, #{orderId,jdbcType=DECIMAL},
+                #{priceids,jdbcType=VARCHAR}, #{historyDetailsAmount,jdbcType=DECIMAL}, #{statementId,jdbcType=DECIMAL},
+                #{photo,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{priceValue,jdbcType=DECIMAL}
                )
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmstruckDetailsOrder">
@@ -246,6 +310,24 @@
             <if test="orderId != null">
                 ORDER_ID,
             </if>
+            <if test="priceids != null">
+                PRICEIDS,
+            </if>
+            <if test="historyDetailsAmount != null">
+                HISTORY_DETAILS_AMOUNT,
+            </if>
+            <if test="statementId != null">
+                STATEMENT_ID,
+            </if>
+            <if test="photo != null">
+                PHOTO,
+            </if>
+            <if test="remark != null">
+                REMARK,
+            </if>
+            <if test="priceValue != null">
+                PRICE_VALUE,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="detailsId != null">
@@ -293,6 +375,24 @@
             <if test="orderId != null">
                 #{orderId,jdbcType=DECIMAL},
             </if>
+            <if test="priceids != null">
+                #{priceids,jdbcType=VARCHAR},
+            </if>
+            <if test="historyDetailsAmount != null">
+                #{historyDetailsAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="statementId != null">
+                #{statementId,jdbcType=DECIMAL},
+            </if>
+            <if test="photo != null">
+                #{photo,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="priceValue != null">
+                #{priceValue,jdbcType=DECIMAL},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmstruckDetailsOrder">
@@ -310,7 +410,13 @@
             INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
             WETHER_TO_STATEMENT = #{wetherToStatement,jdbcType=DECIMAL},
             EAS_AMOUNT = #{easAmount,jdbcType=DECIMAL},
-            ORDER_ID = #{orderId,jdbcType=DECIMAL}
+            ORDER_ID = #{orderId,jdbcType=DECIMAL},
+            PRICEIDS = #{priceids,jdbcType=VARCHAR},
+            HISTORY_DETAILS_AMOUNT = #{historyDetailsAmount,jdbcType=DECIMAL},
+            STATEMENT_ID = #{statementId,jdbcType=DECIMAL},
+            PHOTO = #{photo,jdbcType=VARCHAR},
+            REMARK = #{remark,jdbcType=VARCHAR},
+            PRICE_VALUE = #{priceValue,jdbcType=DECIMAL}
         where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmstruckDetailsOrder">
@@ -358,16 +464,28 @@
             <if test="orderId != null">
                 ORDER_ID = #{orderId,jdbcType=DECIMAL},
             </if>
-            <if test="priceids !=null">
+            <if test="priceids != null">
                 PRICEIDS = #{priceids,jdbcType=VARCHAR},
             </if>
-            <if test="historyDetailsAmount !=null">
-                HISTORY_DETAILS_AMOUNT =#{historyDetailsAmount,jdbcType=DECIMAL}
+            <if test="historyDetailsAmount != null">
+                HISTORY_DETAILS_AMOUNT = #{historyDetailsAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="statementId != null">
+                STATEMENT_ID = #{statementId,jdbcType=DECIMAL},
+            </if>
+            <if test="photo != null">
+                PHOTO = #{photo,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                REMARK = #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="priceValue != null">
+                PRICE_VALUE = #{priceValue,jdbcType=DECIMAL},
             </if>
         </set>
         where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
     </update>
-    <select id="selectByPrimaryKey" parameterType="DECIMAL" resultMap="BaseResultMap">
+    <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
         <include refid="select" />
         where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
     </select>
@@ -388,7 +506,9 @@
         INSERT_TIME, UPDATE_USERNAME,
         UPDATE_TIME, INSERT_UPDATE_REMARK,
         WETHER_TO_STATEMENT, EAS_AMOUNT,
-        ORDER_ID)
+        ORDER_ID, PRICEIDS, HISTORY_DETAILS_AMOUNT,
+        STATEMENT_ID, PHOTO, REMARK,
+        PRICE_VALUE)
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.detailsId,jdbcType=DECIMAL},
@@ -398,7 +518,9 @@
         #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR},
         #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR},
         #{item.wetherToStatement,jdbcType=DECIMAL}, #{item.easAmount,jdbcType=DECIMAL},
-        #{item.orderId,jdbcType=DECIMAL} from dual
+        #{item.orderId,jdbcType=DECIMAL}, #{item.priceids,jdbcType=VARCHAR}, #{item.historyDetailsAmount,jdbcType=DECIMAL},
+        #{item.statementId,jdbcType=DECIMAL}, #{item.photo,jdbcType=VARCHAR}, #{item.remark,jdbcType=VARCHAR},
+        #{item.priceValue,jdbcType=DECIMAL} from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -464,12 +586,35 @@
         <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
             when #{item.detailsId,jdbcType=DECIMAL} then #{item.orderId,jdbcType=DECIMAL}
         </foreach>
+        ,PRICEIDS=
+        <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.priceids,jdbcType=VARCHAR}
+        </foreach>
+        ,HISTORY_DETAILS_AMOUNT=
+        <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.historyDetailsAmount,jdbcType=DECIMAL}
+        </foreach>
+        ,STATEMENT_ID=
+        <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.statementId,jdbcType=DECIMAL}
+        </foreach>
+        ,PHOTO=
+        <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.photo,jdbcType=VARCHAR}
+        </foreach>
+        ,REMARK=
+        <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.remark,jdbcType=VARCHAR}
+        </foreach>
+        ,PRICE_VALUE=
+        <foreach close="end" collection="list" index="index" item="item" open="case DETAILS_ID" separator=" ">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.priceValue,jdbcType=DECIMAL}
+        </foreach>
         where DETAILS_ID in
         <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.detailsId,jdbcType=DECIMAL}
         </foreach>
     </update>
-
     <delete id="batchDelete" parameterType="java.util.List">
         delete from BMSTRUCK_DETAILS_ORDER
         where DETAILS_ID in
@@ -2411,4 +2556,14 @@
         SET BDO.WETHER_TO_STATEMENT = 0
         WHERE BDO.ORDER_ID = #{orderId}
     </update>
+    <update id="updateTruckDetails">
+        UPDATE BMSTRUCK_DETAILS_ORDER BDO
+        SET
+            BDO.DETAILS_AMOUNT = #{detailAmount},
+            BDO.PRICE_VALUE = #{priceValue},
+            BDO.PHOTO = #{url},
+            BDO.UPDATE_USERNAME = #{userId},
+            BDO.REMARK = #{detailRemark}
+        WHERE BDO.ORDER_ID = #{orderId} AND BDO.WEIGHT_TASK_RESULT_ID=#{weightTaskResultId}
+    </update>
 </mapper>

+ 69 - 21
src/main/resources/com/steerinfo/dil/mapper/BmstruckStatementMapper.xml

@@ -22,18 +22,19 @@
         <result column="CONSIGNEE_ID" jdbcType="DECIMAL" property="consigneeId" />
         <result column="CARRIER_ID" jdbcType="DECIMAL" property="carrierId" />
         <result column="PHOTO" jdbcType="VARCHAR" property="photo" />
+        <result column="STATEMENT_TIME" jdbcType="TIMESTAMP" property="statementTime" />
     </resultMap>
     <sql id="columns">
         STATEMENT_ID, STATEMENT_NUMBER, COST_ID, STATEMENT_PAYMENT_UNIT, STATEMENT_EXCLUD_TAX,
     STATEMENT_INCLUD_TAX, STATEMENT_REMARK, STATEMENT_SETTLEMENT_STATUS, INSERT_USERNAME,
     INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, STATEMENT_TYPE,
-    EAS_AMOUNT, SUM_AMOUNT, CAR_NUM, CONSIGNEE_ID, CARRIER_ID, PHOTO
+    EAS_AMOUNT, SUM_AMOUNT, CAR_NUM, CONSIGNEE_ID, CARRIER_ID, PHOTO, STATEMENT_TIME
     </sql>
     <sql id="columns_alias">
         t.STATEMENT_ID, t.STATEMENT_NUMBER, t.COST_ID, t.STATEMENT_PAYMENT_UNIT, t.STATEMENT_EXCLUD_TAX,
     t.STATEMENT_INCLUD_TAX, t.STATEMENT_REMARK, t.STATEMENT_SETTLEMENT_STATUS, t.INSERT_USERNAME,
     t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.STATEMENT_TYPE,
-    t.EAS_AMOUNT, t.SUM_AMOUNT, t.CAR_NUM, t.CONSIGNEE_ID, t.CARRIER_ID, t.PHOTO
+    t.EAS_AMOUNT, t.SUM_AMOUNT, t.CAR_NUM, t.CONSIGNEE_ID, t.CARRIER_ID, t.PHOTO, t.STATEMENT_TIME
     </sql>
     <sql id="select">
         SELECT <include refid="columns" /> FROM BMSTRUCK_STATEMENT
@@ -103,6 +104,9 @@
             <if test="photo != null and photo != ''">
                 and PHOTO = #{photo}
             </if>
+            <if test="statementTime != null">
+                and TO_CHAR(STATEMENT_TIME,'yyyy-MM-dd') = #{statementTime}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -167,6 +171,9 @@
             <if test="photo != null and photo != ''">
                 and PHOTO LIKE '%${photo}%'
             </if>
+            <if test="statementTime != null">
+                and TO_CHAR(STATEMENT_TIME,'yyyy-MM-dd') = #{statementTime}
+            </if>
         </where>
     </sql>
     <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -233,6 +240,9 @@
         <if test="photo != null and photo != ''">
             or PHOTO = #{photo}
         </if>
+        <if test="statementTime != null">
+            or TO_CHAR(STATEMENT_TIME,'yyyy-MM-dd') = '#{statementTime}'
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.BmstruckStatement">
         insert into BMSTRUCK_STATEMENT (STATEMENT_ID, STATEMENT_NUMBER, COST_ID,
@@ -241,16 +251,16 @@
                                         INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
                                         UPDATE_TIME, INSERT_UPDATE_REMARK, STATEMENT_TYPE,
                                         EAS_AMOUNT, SUM_AMOUNT, CAR_NUM,
-                                        CONSIGNEE_ID, CARRIER_ID, PHOTO
-        )
+                                        CONSIGNEE_ID, CARRIER_ID, PHOTO,
+                                        STATEMENT_TIME)
         values (#{statementId,jdbcType=DECIMAL}, #{statementNumber,jdbcType=VARCHAR}, #{costId,jdbcType=DECIMAL},
                 #{statementPaymentUnit,jdbcType=VARCHAR}, #{statementExcludTax,jdbcType=DECIMAL},
                 #{statementIncludTax,jdbcType=DECIMAL}, #{statementRemark,jdbcType=VARCHAR}, #{statementSettlementStatus,jdbcType=VARCHAR},
                 #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR},
                 #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{statementType,jdbcType=DECIMAL},
                 #{easAmount,jdbcType=DECIMAL}, #{sumAmount,jdbcType=DECIMAL}, #{carNum,jdbcType=DECIMAL},
-                #{consigneeId,jdbcType=DECIMAL}, #{carrierId,jdbcType=DECIMAL}, #{photo,jdbcType=VARCHAR}
-               )
+                #{consigneeId,jdbcType=DECIMAL}, #{carrierId,jdbcType=DECIMAL}, #{photo,jdbcType=VARCHAR},
+                #{statementTime,jdbcType=TIMESTAMP})
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmstruckStatement">
         insert into BMSTRUCK_STATEMENT
@@ -315,6 +325,9 @@
             <if test="photo != null">
                 PHOTO,
             </if>
+            <if test="statementTime != null">
+                STATEMENT_TIME,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="statementId != null">
@@ -377,6 +390,9 @@
             <if test="photo != null">
                 #{photo,jdbcType=VARCHAR},
             </if>
+            <if test="statementTime != null">
+                #{statementTime,jdbcType=TIMESTAMP},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmstruckStatement">
@@ -399,7 +415,8 @@
             CAR_NUM = #{carNum,jdbcType=DECIMAL},
             CONSIGNEE_ID = #{consigneeId,jdbcType=DECIMAL},
             CARRIER_ID = #{carrierId,jdbcType=DECIMAL},
-            PHOTO = #{photo,jdbcType=VARCHAR}
+            PHOTO = #{photo,jdbcType=VARCHAR},
+            STATEMENT_TIME = #{statementTime,jdbcType=TIMESTAMP}
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmstruckStatement">
@@ -462,6 +479,9 @@
             <if test="photo != null">
                 PHOTO = #{photo,jdbcType=VARCHAR},
             </if>
+            <if test="statementTime != null">
+                STATEMENT_TIME = #{statementTime,jdbcType=TIMESTAMP},
+            </if>
         </set>
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
@@ -487,8 +507,8 @@
         UPDATE_USERNAME, UPDATE_TIME,
         INSERT_UPDATE_REMARK, STATEMENT_TYPE,
         EAS_AMOUNT, SUM_AMOUNT, CAR_NUM,
-        CONSIGNEE_ID, CARRIER_ID, PHOTO
-        )
+        CONSIGNEE_ID, CARRIER_ID, PHOTO,
+        STATEMENT_TIME)
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.statementId,jdbcType=DECIMAL},
@@ -499,8 +519,8 @@
         #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
         #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.statementType,jdbcType=DECIMAL},
         #{item.easAmount,jdbcType=DECIMAL}, #{item.sumAmount,jdbcType=DECIMAL}, #{item.carNum,jdbcType=DECIMAL},
-        #{item.consigneeId,jdbcType=DECIMAL}, #{item.carrierId,jdbcType=DECIMAL}, #{item.photo,jdbcType=VARCHAR}
-        from dual
+        #{item.consigneeId,jdbcType=DECIMAL}, #{item.carrierId,jdbcType=DECIMAL}, #{item.photo,jdbcType=VARCHAR},
+        #{item.statementTime,jdbcType=TIMESTAMP} from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -586,6 +606,10 @@
         <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.photo,jdbcType=VARCHAR}
         </foreach>
+        ,STATEMENT_TIME=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.statementTime,jdbcType=TIMESTAMP}
+        </foreach>
         where STATEMENT_ID in
         <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.statementId,jdbcType=DECIMAL}
@@ -613,7 +637,7 @@
             BS.CAR_NUM "carNum",
             RC.CONSIGNEE_COMPANY_NAME "consigneeName",
             RCA.CARRIER_NAME "carrierName",
-            BS.INSERT_TIME "insertTime",
+            BS.STATEMENT_TIME "insertTime",
             BS.CONSIGNEE_ID "consigneeId",
             BS .CARRIER_ID "carrierId"
             FROM BMSTRUCK_STATEMENT BS
@@ -625,17 +649,17 @@
                     and SU.USER_ID=#{userId}
                 </if>
                 <if test="oneDate != null">
-                    and to_char(to_date(#{oneDate}, 'yyyy-mm-dd'),'yyyy-mm') = to_char(BS.INSERT_TIME,'yyyy-mm')
+                    and to_char(to_date(#{oneDate}, 'yyyy-mm-dd'),'yyyy-mm') = to_char(BS.STATEMENT_TIME,'yyyy-mm')
                 </if>
                 <if test="startDate != null">
-                    and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(BS.INSERT_TIME,'yyyy-mm-dd'),'yyyy-mm-dd')
-                    and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(BS.INSERT_TIME,'yyyy-mm-dd'),'yyyy-mm-dd')
+                    and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(BS.STATEMENT_TIME,'yyyy-mm-dd'),'yyyy-mm-dd')
+                    and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(BS.STATEMENT_TIME,'yyyy-mm-dd'),'yyyy-mm-dd')
                 </if>
             </where>
         )
         <where>
             <if test="con!= null and con!=''.toString()">
-                and "consigneeName" like CONCAT('%',CONCAT(#{con},'%'))
+                and "consigneeName" || "carrierName" like CONCAT('%',CONCAT(#{con},'%'))
             </if>
             <if test="consigneeName!= null">
                 and "consigneeName" in
@@ -704,8 +728,14 @@
         rs.SHIPPER_NAME as "shipperName",
         RC2.CARRIER_NAME as "carrierName",
         rco.CONSIGNEE_COMPANY_NAME as "consigneeReceiveAddress",
-        actp.PRICE_VALUE as "priceValue",
-        bdo.DETAILS_AMOUNT as "detailsAmount"
+        (CASE
+        WHEN BDO.DETAILS_ID IS NULL and TLFR.RESULT_OUT_GATE_TIME is not null
+        THEN null
+        WHEN BDO.PRICE_VALUE IS NOT NULL
+        THEN ROUND(BDO.PRICE_VALUE,2)
+        ELSE ROUND(ACTP.PRICE_VALUE,2)
+        END) AS "priceValue",
+        ROUND(BDO.DETAILS_AMOUNT,2) "detailsAmount",
         FROM BMSTRUCK_DETAILS_ORDER bdo
         LEFT JOIN OMSTRUCK_ORDER oo
         ON oo.ORDER_ID = bdo.ORDER_ID
@@ -792,7 +822,7 @@
     </select>
 <!--    //通过账单id获取账单对应的详单信息-->
 <!--    List<BmstruckDetailsOrder> getDetailById(BigDecimal statementId);-->
-    <select id="getDetailById" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+    <select id="getDetailById" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
         select bdo.details_id
         from bmstruck_statement bs
                  left join bmstruck_statement_detail_list bsdl on bs.statement_id = bsdl.cost_id
@@ -890,8 +920,22 @@
         END)
         "carrierName",
         OO.ORDER_NUMBER "orderNo",
-        TO_CHAR(ACTP.PRICE_VALUE,'9999999990.99') AS "priceValue",
-        TO_CHAR(BDO.DETAILS_AMOUNT,'9999999990.99') "detailsAmount",
+        (CASE WHEN
+        ASM.SALE_MAKE_DATE IS NULL
+        THEN null
+        WHEN  ASM.IS_POUND_SALE = 0
+        THEN TWR.RESULT_NET_WEIGHT
+        WHEN ASM.IS_POUND_SALE = 1
+        THEN ASM.MATERIAL_WEIGHT
+        END) "materialAcWeight",
+        (CASE
+        WHEN BDO.DETAILS_ID IS NULL and TLFR.RESULT_OUT_GATE_TIME is not null
+        THEN null
+        WHEN BDO.PRICE_VALUE IS NOT NULL
+        THEN ROUND(BDO.PRICE_VALUE,2)
+        ELSE ROUND(ACTP.PRICE_VALUE,2)
+        END) AS "priceValue",
+        ROUND(BDO.DETAILS_AMOUNT,2) "detailsAmount",
         case
         when nvl(ASOM.HISTORY_SHIPPING_ADDRESS_ID,0) !=0
         then (select RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT||RRA.ADDRESS_TOWN
@@ -943,6 +987,8 @@
         ASO.sale_remark "saleRemark",
         DECODE(OO.PRINTNUMBER,1,'已打印','未打印') "isPrintDelivery",
         BDO.PRICEIDS "priceIds",
+        BDO.REMARK "detailsRemark",
+        BDO.PHOTO "photo",
         --理重
         ASM.MATERIAL_WEIGHT "materialWeight",
         --收款客户
@@ -955,6 +1001,8 @@
         RRP.UNLOAD_TYPE "unloadType",
         --计划件数
         ASM.MATERIAL_PLAN_NUMBER "materialPlanNumber",
+        --操作人
+        OO.RECORD_USERNAME "recordUserName",
         --制单时间
         ASM.SALE_MAKE_DATE "saleMakeDate"
         FROM AMS_SALE_ORDER ASO