liyg 2 lat temu
rodzic
commit
937621452f

+ 1 - 1
pom.xml

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

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

@@ -527,7 +527,7 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
     @PostMapping("updateTruckDetail")
     public RESTfulResult updateTruckDetail(@RequestBody Map<String,Object> map) {
         try{
-            bmstruckDetailsOrderMapper.updateTruckDetails(map);
+            bmstruckDetailsOrderService.updateDetailsDirect(map);
         }catch (Exception e){
             e.printStackTrace();
             return failed("修改失败");

+ 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();

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

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

+ 91 - 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,76 @@ 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;
+    }
 }

+ 166 - 23
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
@@ -2415,12 +2560,10 @@
         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 IN
-        <foreach collection="orderList" open="(" item="orderId" close=")" separator=",">
-            #{orderId}
-        </foreach>
+        WHERE BDO.ORDER_ID = #{orderId} AND BDO.WEIGHT_TASK_RESULT_ID=#{weightTaskResultId}
     </update>
 </mapper>

+ 17 - 5
src/main/resources/com/steerinfo/dil/mapper/BmstruckStatementMapper.xml

@@ -728,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
@@ -816,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
@@ -922,8 +928,14 @@
         WHEN ASM.IS_POUND_SALE = 1
         THEN ASM.MATERIAL_WEIGHT
         END) "materialAcWeight",
-        TO_CHAR(ACTP.PRICE_VALUE,'9999999990.99') AS "priceValue",
-        TO_CHAR(BDO.DETAILS_AMOUNT,'9999999990.99') "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",
         case
         when nvl(ASOM.HISTORY_SHIPPING_ADDRESS_ID,0) !=0
         then (select RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT||RRA.ADDRESS_TOWN