luobang 2 yıl önce
ebeveyn
işleme
9da8f077b0

+ 21 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -146,4 +146,25 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
     public RESTfulResult testJarSuccess() {
     public RESTfulResult testJarSuccess() {
         return success("jar包发布成功");
         return success("jar包发布成功");
     }
     }
+
+    /**
+     * 根据车牌号修改运输订单号并返回
+     * @param map
+     * @return
+     */
+    @PostMapping("/changeOrderNumber")
+    public RESTfulResult changeOrderNumber(@RequestBody(required = false) Map<String, Object> map) {
+        String s = null;
+        try {
+            s = tmstruckWeightResultServiceImpl.changeOrderNumber(map);
+        } catch (Exception e) {
+            e.printStackTrace();
+            if(e.getMessage()==null || e.getMessage().contains("Exception")){
+                return failed("未知异常");
+            }else{
+                return failed(e.getMessage());
+            }
+        }
+        return success(s);
+    }
 }
 }

+ 1 - 0
src/main/java/com/steerinfo/dil/mapper/AmsSaleOrderMapper.java

@@ -28,6 +28,7 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     BigDecimal getShipperId(String shipperUnit);
     BigDecimal getShipperId(String shipperUnit);
     // 关闭未进厂的订单
     // 关闭未进厂的订单
     int closeOrderNotIn(BigDecimal saleOrderId);
     int closeOrderNotIn(BigDecimal saleOrderId);
+    List<Map<String,Object>> getCloseOrderNotIn(BigDecimal saleOrderId);
     // 得到仓库集合
     // 得到仓库集合
     List<Map<String,Object>> getWareHouse(BigDecimal saleOrderId);
     List<Map<String,Object>> getWareHouse(BigDecimal saleOrderId);
     // 将不可作业的运输订单改为已接收状态
     // 将不可作业的运输订单改为已接收状态

+ 1 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -17,6 +17,7 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     @Select("select seq_omstruck_order.nextval from dual")
     @Select("select seq_omstruck_order.nextval from dual")
     BigDecimal selectMaxId();
     BigDecimal selectMaxId();
 
 
+    Map<String,Object> findOrderDetailByCapacityNumber(Map<String,Object> map);
 
 
     Map<String,Object> findCarNumberByOrderId(BigDecimal saleOrderMaterialId);
     Map<String,Object> findCarNumberByOrderId(BigDecimal saleOrderMaterialId);
 
 

+ 29 - 0
src/main/java/com/steerinfo/dil/mapper/SaleLogMapper.java

@@ -0,0 +1,29 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.SaleLog;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface SaleLogMapper extends IBaseMapper<SaleLog, BigDecimal> {
+    @Select("select SEQ_SALE_LOG.nextval from dual")
+    BigDecimal selectMaxId();
+
+    //查询所有日志
+    List<Map<String,Object>> selectAllLog(Map<String,Object> map);
+
+    //查询用户名
+    String getUserNameById(Map<String,Object> map);
+
+    //查询所有订单Id
+    List<BigDecimal> getOrderIds(@Param("orderNumber") String orderNumber);
+
+    //根据总实绩查询订单ID
+    BigDecimal getOrderIdByTotal(Map<String,Object> map);
+}

+ 151 - 0
src/main/java/com/steerinfo/dil/model/SaleLog.java

@@ -0,0 +1,151 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="销售日志表")
+public class SaleLog implements IBasePO<BigDecimal> {
+    @ApiModelProperty(value="",required=true)
+    private BigDecimal resultId;
+
+    /**
+     * 运单ID(ORDER_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="运单ID",required=false)
+    private BigDecimal orderId;
+
+    /**
+     * 销售订单ID(SALE_ORDER_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="销售订单ID",required=false)
+    private BigDecimal saleOrderId;
+
+    /**
+     * 日志描述(DESCRIPTION,VARCHAR,255)
+     */
+    @ApiModelProperty(value="日志描述",required=false)
+    private String description;
+
+    /**
+     * 操作类型(OPRATION_TYPE,VARCHAR,20)
+     */
+    @ApiModelProperty(value="操作类型",required=false)
+    private String oprationType;
+
+    /**
+     * 可能存在的JSON数据(JSON_DATA,VARCHAR,255)
+     */
+    @ApiModelProperty(value="可能存在的JSON数据",required=false)
+    private String jsonData;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.resultId;
+    }
+
+    @Override
+    public void setId(BigDecimal resultId) {
+        this.resultId = resultId;
+    }
+
+    public BigDecimal getResultId() {
+        return resultId;
+    }
+
+    public void setResultId(BigDecimal resultId) {
+        this.resultId = resultId;
+    }
+
+    public BigDecimal getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(BigDecimal orderId) {
+        this.orderId = orderId;
+    }
+
+    public BigDecimal getSaleOrderId() {
+        return saleOrderId;
+    }
+
+    public void setSaleOrderId(BigDecimal saleOrderId) {
+        this.saleOrderId = saleOrderId;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description == null ? null : description.trim();
+    }
+
+    public String getOprationType() {
+        return oprationType;
+    }
+
+    public void setOprationType(String oprationType) {
+        this.oprationType = oprationType == null ? null : oprationType.trim();
+    }
+
+    public String getJsonData() {
+        return jsonData;
+    }
+
+    public void setJsonData(String jsonData) {
+        this.jsonData = jsonData == null ? null : jsonData.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", resultId=").append(resultId);
+        sb.append(", orderId=").append(orderId);
+        sb.append(", saleOrderId=").append(saleOrderId);
+        sb.append(", description=").append(description);
+        sb.append(", oprationType=").append(oprationType);
+        sb.append(", jsonData=").append(jsonData);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 30 - 1
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.druid.support.json.JSONUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.feign.SSOFeign;
 import com.steerinfo.dil.feign.SSOFeign;
+import com.steerinfo.dil.util.SaleLogUtil;
 import com.steerinfo.dil.util.newFileTool;
 import com.steerinfo.dil.util.newFileTool;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonObject;
 import com.steerinfo.dil.feign.AmsFeign;
 import com.steerinfo.dil.feign.AmsFeign;
@@ -78,6 +79,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
 
 
     Logger logger = LoggerFactory.getLogger(getClass());
     Logger logger = LoggerFactory.getLogger(getClass());
 
 
+    @Autowired
+    SaleLogUtil saleLogUtil;
     /**
     /**
      * 查询销售订单
      * 查询销售订单
      * @param saleOrderId
      * @param saleOrderId
@@ -194,7 +197,6 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             amsSaleOrder.setDeleted(new BigDecimal(2));
             amsSaleOrder.setDeleted(new BigDecimal(2));
             amsSaleOrder.setUpdateTime(new Date());
             amsSaleOrder.setUpdateTime(new Date());
-
             amsSaleOrder.setInsertUpdateRemark("关闭销售订单整单");
             amsSaleOrder.setInsertUpdateRemark("关闭销售订单整单");
             if (reason != null) {
             if (reason != null) {
                 amsSaleOrder.setInsertUpdateRemark(reason.toString());
                 amsSaleOrder.setInsertUpdateRemark(reason.toString());
@@ -210,11 +212,23 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             if (warehouseList != null && warehouseList.size() != 0 && warehouseList.get(0) != null) {
             if (warehouseList != null && warehouseList.size() != 0 && warehouseList.get(0) != null) {
                 Object warehouse = warehouseList.get(0).get("warehouse");
                 Object warehouse = warehouseList.get(0).get("warehouse");
                 if (warehouse != null && "副产品库".equals(warehouse)) {
                 if (warehouse != null && "副产品库".equals(warehouse)) {
+                    try{
+                        //记录日志
+                        saleLogUtil.logOrderBatch(amsSaleOrderMapper.getCloseOrderNotIn(amsSaleOrder.getSaleOrderId()),"金蝶关闭整单,运单同步关闭",SaleLogUtil.CLOSE);
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
                     result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
                     result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
                 }
                 }
             }
             }
             //如果是钢材订单
             //如果是钢材订单
             if(amsSaleOrder.getSaleType() != null && amsSaleOrder.getSaleType().intValue() == 1){
             if(amsSaleOrder.getSaleType() != null && amsSaleOrder.getSaleType().intValue() == 1){
+                try{
+                    //记录日志
+                    saleLogUtil.logOrderBatch(amsSaleOrderMapper.getCloseOrderNotIn(amsSaleOrder.getSaleOrderId()),"金蝶关闭整单,运单同步关闭",SaleLogUtil.CLOSE);
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
                 //获取该钢材销售订单下所有的运输订单ID,状态
                 //获取该钢材销售订单下所有的运输订单ID,状态
                 result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
                 result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
             }
             }
@@ -248,18 +262,22 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             amsSaleOrder.setDeleted(new BigDecimal(0));
             amsSaleOrder.setDeleted(new BigDecimal(0));
             BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
             BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
+            amsSaleOrder.setUpdateTime(new Date());
             if (reason != null) {
             if (reason != null) {
                 amsSaleOrder.setInsertUpdateRemark(reason.toString());
                 amsSaleOrder.setInsertUpdateRemark(reason.toString());
             }
             }
             if (userName != null){
             if (userName != null){
                 insertUpdateRemark = userName + amsSaleOrder.getInsertUpdateRemark() + "反关闭销售订单整单";
                 insertUpdateRemark = userName + amsSaleOrder.getInsertUpdateRemark() + "反关闭销售订单整单";
                 amsSaleOrder.setInsertUpdateRemark(insertUpdateRemark);
                 amsSaleOrder.setInsertUpdateRemark(insertUpdateRemark);
+                amsSaleOrder.setUpdateUsername(userName.toString());
             }
             }
             // 反关闭销售订单下的所有分录
             // 反关闭销售订单下的所有分录
             result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
             result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
             //反关闭这个销售订单下面被关闭的运单
             //反关闭这个销售订单下面被关闭的运单
             try {
             try {
                 List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
                 List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
+                //记录日志
+                saleLogUtil.logOrderBatch(orderMapList,"金蝶反关闭整单,物流同步反关闭销售订单下的整单",SaleLogUtil.OPEN);
                 for (Map<String,Object> orderMap :orderMapList) {
                 for (Map<String,Object> orderMap :orderMapList) {
                     OmstruckOrder omstruckOrder = new OmstruckOrder();
                     OmstruckOrder omstruckOrder = new OmstruckOrder();
                     if(orderMap.get("factoryResultId") != null) {
                     if(orderMap.get("factoryResultId") != null) {
@@ -307,13 +325,21 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             amsSaleOrder.setDeleted(new BigDecimal(1));
             amsSaleOrder.setDeleted(new BigDecimal(1));
             amsSaleOrder.setInsertUpdateRemark("反审批销售订单");
             amsSaleOrder.setInsertUpdateRemark("反审批销售订单");
+            amsSaleOrder.setUpdateTime(new Date());
             if(userName != null) {
             if(userName != null) {
                 insertUpdateRemark = userName + "反审批销售订单";
                 insertUpdateRemark = userName + "反审批销售订单";
                 amsSaleOrder.setInsertUpdateRemark(insertUpdateRemark);
                 amsSaleOrder.setInsertUpdateRemark(insertUpdateRemark);
+                amsSaleOrder.setUpdateUsername(userName.toString());
             }
             }
             result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
             result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
             //反审的订单需将下面的运输订单关闭
             //反审的订单需将下面的运输订单关闭
             try {
             try {
+                try{
+                    //记录日志
+                    saleLogUtil.logOrderBatch(amsSaleOrderMapper.getCloseOrderNotIn(amsSaleOrder.getSaleOrderId()),"金蝶反审批销售订单,物流同步关闭",SaleLogUtil.CLOSE);
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
                 amsSaleOrderMapper.reverseApprovalOrder(amsSaleOrder.getSaleOrderId());
                 amsSaleOrderMapper.reverseApprovalOrder(amsSaleOrder.getSaleOrderId());
             } catch (Exception e) {
             } catch (Exception e) {
                 e.printStackTrace();
                 e.printStackTrace();
@@ -323,6 +349,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
             amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
             amsSaleOrder.setDeleted(new BigDecimal(0));
             amsSaleOrder.setDeleted(new BigDecimal(0));
+            amsSaleOrder.setUpdateTime(new Date());
             result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
             result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
             BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
             BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
             try {
             try {
@@ -357,6 +384,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             //反关闭这个销售订单下面被关闭的运单
             //反关闭这个销售订单下面被关闭的运单
             try {
             try {
                 List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
                 List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
+                //记录日志
+                saleLogUtil.logOrderBatch(orderMapList,"金蝶反关闭整单,物流同步反关闭销售订单下的整单",SaleLogUtil.OPEN);
                 for (Map<String,Object> orderMap :orderMapList) {
                 for (Map<String,Object> orderMap :orderMapList) {
                     OmstruckOrder omstruckOrder = new OmstruckOrder();
                     OmstruckOrder omstruckOrder = new OmstruckOrder();
                     if(orderMap.get("factoryResultId") != null) {
                     if(orderMap.get("factoryResultId") != null) {

+ 40 - 3
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -4,12 +4,15 @@ import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.feign.TmstruckFeign;
 import com.steerinfo.dil.feign.TmstruckFeign;
 import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.mapper.*;
+import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.model.TmstruckReceiveResult;
 import com.steerinfo.dil.model.TmstruckReceiveResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.DataChange;
+import com.steerinfo.dil.util.SaleLogUtil;
 import com.steerinfo.dil.util.newFileTool;
 import com.steerinfo.dil.util.newFileTool;
 import org.apache.commons.lang.time.FastDateFormat;
 import org.apache.commons.lang.time.FastDateFormat;
+import org.apache.ibatis.exceptions.TooManyResultsException;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,10 +63,16 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     @Autowired
     @Autowired
     TmstruckReceiveResultMapper tmstruckReceiveResultMapper;
     TmstruckReceiveResultMapper tmstruckReceiveResultMapper;
 
 
+    @Autowired
+    OmstruckOrderMapper omstruckOrderMapper;
+
 
 
     @Autowired
     @Autowired
     TmstrainWeightResultServiceImpl tmstrainWeightResultService;
     TmstrainWeightResultServiceImpl tmstrainWeightResultService;
 
 
+    @Autowired
+    SaleLogUtil saleLogUtil;
+
     //属于采购订单的订单类型(先计毛后计皮)
     //属于采购订单的订单类型(先计毛后计皮)
     final private List<Integer> judgeOrderTypeList = Arrays.asList(5, 6, 7, 8, 9, 12, 15, 17, 18,23,24,19);
     final private List<Integer> judgeOrderTypeList = Arrays.asList(5, 6, 7, 8, 9, 12, 15, 17, 18,23,24,19);
 
 
@@ -771,6 +780,8 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             if(orderMes == null) {
             if(orderMes == null) {
                 return "failed";
                 return "failed";
             }
             }
+            //新增日志表
+            saleLogUtil.logOrder(DataChange.dataToBigDecimal(orderMes.get("orderId")),"计量联动删除","计量系统",SaleLogUtil.DELETE);
             BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMes.get("resultTotalId"));
             BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMes.get("resultTotalId"));
             BigDecimal orderId = DataChange.dataToBigDecimal(orderMes.get("orderId"));
             BigDecimal orderId = DataChange.dataToBigDecimal(orderMes.get("orderId"));
             Integer orderType = DataChange.dataToBigDecimal(orderMes.get("orderType")).intValue();
             Integer orderType = DataChange.dataToBigDecimal(orderMes.get("orderType")).intValue();
@@ -842,7 +853,6 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 return map.get("ArrivalBillNo") + "系统没有此订单号!失败";
                 return map.get("ArrivalBillNo") + "系统没有此订单号!失败";
             }
             }
             mesMap.put("orderNumber", map.get("orderNumber"));
             mesMap.put("orderNumber", map.get("orderNumber"));
-
             try{
             try{
                 new Thread( new Runnable() {
                 new Thread( new Runnable() {
                     public void run(){
                     public void run(){
@@ -859,6 +869,8 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             }catch (Exception e) {
             }catch (Exception e) {
                 e.printStackTrace();
                 e.printStackTrace();
             }
             }
+            saleLogUtil.logOrder(map.get("orderNumber")+"","计量联动换采购订单","计量系统",SaleLogUtil.UPDATE);
+
             if(orderType == 20 || orderType == 15 || orderType == 16 || orderType == 23 || orderType == 24){
             if(orderType == 20 || orderType == 15 || orderType == 16 || orderType == 23 || orderType == 24){
                 //20订单修改的表不一样呀,找寻该采购订单对应的最新需求id和计划id
                 //20订单修改的表不一样呀,找寻该采购订单对应的最新需求id和计划id
                 BigDecimal planId = tmstruckWeightResultMapper.selectNewPlanId(mesMap);
                 BigDecimal planId = tmstruckWeightResultMapper.selectNewPlanId(mesMap);
@@ -1041,6 +1053,31 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return "success";
         return "success";
     }
     }
 
 
-
-
+    @Transactional(rollbackFor = Exception.class)
+    public String changeOrderNumber(Map<String,Object> map) throws Exception{
+        //校验
+        if(map==null || map.get("capacityNumber")==null){
+            throw new Exception("缺乏车牌号:capacityNumber");
+        }
+        //查询车辆对应订单信息
+        Map<String,Object> details = null;
+        try{
+            details = omstruckOrderMapper.findOrderDetailByCapacityNumber(map);
+        }catch (TooManyResultsException e){
+            e.printStackTrace();
+            throw new Exception("查询到多个实绩");
+        }
+        if(details==null || details.get("orderId")==null){
+            throw new Exception("没有查询到正在执行的运单!");
+        }
+        //生成新的运输订单号
+        BigDecimal orderId=omstruckOrderMapper.selectMaxId();
+        String result=DataChange.generateEightDigitsNumber("WYSDD", orderId.intValue());
+        //更新
+        OmstruckOrder omstruckOrder=new OmstruckOrder();
+        omstruckOrder.setOrderId(DataChange.dataToBigDecimal(details.get("orderId")));
+        omstruckOrder.setOrderNumber(result);
+        omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        return result;
+    }
 }
 }

+ 275 - 0
src/main/java/com/steerinfo/dil/util/SaleLogUtil.java

@@ -0,0 +1,275 @@
+package com.steerinfo.dil.util;
+
+import com.steerinfo.dil.mapper.SaleLogMapper;
+import com.steerinfo.dil.model.SaleLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class SaleLogUtil {
+    @Autowired
+    private SaleLogMapper saleLogMapper;
+
+    public final static int INSERT = 1;
+
+    public final static int UPDATE = 2;
+
+    public final static int DELETE = 3;
+
+    public final static int OPEN = 4;
+
+    public final static int CLOSE = 5;
+
+    /**
+     * 插入运输订单的操作日志
+     * @param orderId
+     * @param descriptoin
+     * @param oprationType 操作类型
+     * @param map 可以传null
+     * @return
+     */
+    public int logOrder(BigDecimal orderId,String descriptoin,Map<String,Object> map,int oprationType){
+        try{
+            SaleLog saleLog=new SaleLog();
+            saleLog.setResultId(saleLogMapper.selectMaxId());
+            saleLog.setOrderId(orderId);
+            saleLog.setDescription(descriptoin);
+            //saleLog.setJsonData(""+map);
+            saleLog.setInsertTime(new Date());
+            saleLog.setInsertUsername(getUserName(map));
+            switch (oprationType){
+                case INSERT:
+                    saleLog.setOprationType("新增");
+                    break;
+                case UPDATE:
+                    saleLog.setOprationType("修改");
+                    break;
+                case DELETE:
+                    saleLog.setOprationType("删除");
+                    break;
+                case OPEN:
+                    saleLog.setOprationType("启用");
+                    break;
+                case CLOSE:
+                    saleLog.setOprationType("关闭");
+                    break;
+                default:
+                    saleLog.setOprationType("未知操作");
+            }
+            return saleLogMapper.insertSelective(saleLog);
+        }catch (Exception e){
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+    public int logOrder(BigDecimal orderId,String descriptoin,String userName,int oprationType){
+        try{
+            SaleLog saleLog=new SaleLog();
+            saleLog.setResultId(saleLogMapper.selectMaxId());
+            saleLog.setOrderId(orderId);
+            saleLog.setDescription(descriptoin);
+            //saleLog.setJsonData(""+map);
+            saleLog.setInsertTime(new Date());
+            saleLog.setInsertUsername(userName);
+            switch (oprationType){
+                case INSERT:
+                    saleLog.setOprationType("新增");
+                    break;
+                case UPDATE:
+                    saleLog.setOprationType("修改");
+                    break;
+                case DELETE:
+                    saleLog.setOprationType("删除");
+                    break;
+                case OPEN:
+                    saleLog.setOprationType("启用");
+                    break;
+                case CLOSE:
+                    saleLog.setOprationType("关闭");
+                    break;
+                default:
+                    saleLog.setOprationType("未知操作");
+            }
+            return saleLogMapper.insertSelective(saleLog);
+        }catch (Exception e){
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+    public int logOrder(String orderNumber,String descriptoin,String userName,int oprationType){
+        try{
+            List<BigDecimal> orderIds = saleLogMapper.getOrderIds(orderNumber);
+            List<SaleLog> list =new ArrayList<>();
+            for(BigDecimal orderId:orderIds){
+                SaleLog saleLog=new SaleLog();
+                saleLog.setResultId(saleLogMapper.selectMaxId());
+                saleLog.setOrderId(orderId);
+                saleLog.setDescription(descriptoin);
+                //saleLog.setJsonData(""+map);
+                saleLog.setInsertTime(new Date());
+                saleLog.setInsertUsername(userName);
+                switch (oprationType){
+                    case INSERT:
+                        saleLog.setOprationType("新增");
+                        break;
+                    case UPDATE:
+                        saleLog.setOprationType("修改");
+                        break;
+                    case DELETE:
+                        saleLog.setOprationType("删除");
+                        break;
+                    case OPEN:
+                        saleLog.setOprationType("启用");
+                        break;
+                    case CLOSE:
+                        saleLog.setOprationType("关闭");
+                        break;
+                    default:
+                        saleLog.setOprationType("未知操作");
+                }
+                list.add(saleLog);
+            }
+            return saleLogMapper.batchInsert(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+
+    /**
+     * 插入运输订单的操作日志
+     * @param descriptoin
+     * @param oprationType 操作类型
+     * @param map 必传
+     * @return
+     */
+    public int logOrder(Map<String,Object> map,String descriptoin,int oprationType){
+        try{
+            SaleLog saleLog=new SaleLog();
+            saleLog.setResultId(saleLogMapper.selectMaxId());
+            saleLog.setOrderId(getOrderId(map));
+            saleLog.setDescription(descriptoin);
+            saleLog.setInsertTime(new Date());
+            saleLog.setInsertUsername(getUserName(map));
+            switch (oprationType){
+                case INSERT:
+                    saleLog.setOprationType("新增");
+                    break;
+                case UPDATE:
+                    saleLog.setOprationType("修改");
+                    break;
+                case DELETE:
+                    saleLog.setOprationType("删除");
+                    break;
+                case OPEN:
+                    saleLog.setOprationType("启用");
+                    break;
+                case CLOSE:
+                    saleLog.setOprationType("关闭");
+                    break;
+                default:
+                    saleLog.setOprationType("未知操作");
+            }
+            return saleLogMapper.insertSelective(saleLog);
+        }catch (Exception e){
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+    /**
+     * 批量插入
+     * @param list
+     * @param descriptoin
+     * @param oprationType
+     * @return
+     */
+    public int logOrderBatch(List<Map<String,Object>> list,String descriptoin,int oprationType){
+        try{
+            if(list==null || list.size()<=0){
+                return 0;
+            }
+            List<SaleLog> saleLogs=new ArrayList<>();
+            String oprationTypeStr;
+            switch (oprationType){
+                case INSERT:
+                    oprationTypeStr="新增";
+                    break;
+                case UPDATE:
+                    oprationTypeStr="修改";
+                    break;
+                case DELETE:
+                    oprationTypeStr="删除";
+                    break;
+                case OPEN:
+                    oprationTypeStr="启用";
+                    break;
+                case CLOSE:
+                    oprationTypeStr="关闭";
+                    break;
+                default:
+                    oprationTypeStr="未知操作";
+            }
+            for(Map<String,Object> map:list){
+                SaleLog saleLog=new SaleLog();
+                saleLog.setResultId(saleLogMapper.selectMaxId());
+                saleLog.setOrderId(getOrderId(map));
+                saleLog.setDescription(descriptoin);
+                saleLog.setInsertTime(new Date());
+                saleLog.setInsertUsername(getUserName(map));
+                saleLog.setOprationType(oprationTypeStr);
+                saleLogs.add(saleLog);
+            }
+            return saleLogMapper.batchInsert(saleLogs);
+        }catch (Exception e){
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+    /**
+     * 处理插入用户名
+     * @param map
+     * @return
+     */
+    private String getUserName(Map<String,Object> map){
+        try{
+            if(map==null){
+                return "system";
+            }else if(map.get("userName")!=null){
+                return ""+map.get("userName");
+            }else if(map.get("userId")!=null){
+                return saleLogMapper.getUserNameById(map);
+            }else{
+                return "未知用户";
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return "未知用户";
+        }
+    }
+
+    /**
+     * 获取OrderId
+     * @param map
+     * @return
+     */
+    private BigDecimal getOrderId(Map<String,Object> map) throws Exception {
+        if(map.get("orderId")!=null){
+            return DataChange.dataToBigDecimal(map.get("orderId"));
+        }else if(map.get("resultTotalId")!=null){
+            return saleLogMapper.getOrderIdByTotal(map);
+        }else{
+            throw new Exception("没有订单Id,保存日志失败");
+        }
+    }
+}

+ 17 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml

@@ -941,6 +941,23 @@
         AND TWR.RESULT_NET_WEIGHT IS NULL
         AND TWR.RESULT_NET_WEIGHT IS NULL
     )
     )
   </update>
   </update>
+  <select id="getCloseOrderNotIn" resultType="java.util.Map" parameterType="DECIMAL">
+    SELECT OO.ORDER_ID "orderId"
+    FROM AMS_SALE_ORDER_MATERIAL ASOM
+           LEFT JOIN OMSTRUCK_ORDER OO
+                     ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+           LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                     ON TTR.ORDER_ID = OO.ORDER_ID
+           LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
+                     ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+           LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+                     ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    WHERE ASOM.SALE_ORDER_ID = #{saleOrderId}
+      AND OO.ORDER_ID IS NOT NULL
+      AND OO.ORDER_STATUS BETWEEN 4 AND 5
+      AND OO.ORDER_TYPE BETWEEN 1 AND 2
+      AND TWR.RESULT_NET_WEIGHT IS NULL
+  </select>
 
 
   <select id="getWareHouse" parameterType="DECIMAL" resultType="java.util.Map">
   <select id="getWareHouse" parameterType="DECIMAL" resultType="java.util.Map">
     SELECT ASM.SALE_WAREHOUSE AS "warehouse"
     SELECT ASM.SALE_WAREHOUSE AS "warehouse"

+ 13 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -1003,4 +1003,17 @@
         SET OOM.MATERIAL_PRIORITY = null
         SET OOM.MATERIAL_PRIORITY = null
         WHERE OOM.ORDER_ID = #{orderId}
         WHERE OOM.ORDER_ID = #{orderId}
     </update>
     </update>
+    <select id="findOrderDetailByCapacityNumber" resultType="java.util.Map">
+        SELECT DISTINCT
+            OO.order_ID "orderId",
+            RC.CAPACITY_NUMBER "capacityNumber",
+            OO.ORDER_NUMBER "orderNumber",
+            OO.ORDER_TYPE "orderType"
+        FROM
+            OMSTRUCK_ORDER OO
+                LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
+        WHERE
+            RC.CAPACITY_NUMBER = #{capacityNumber}
+          AND OO.order_status = 5
+    </select>
 </mapper>
 </mapper>

+ 340 - 0
src/main/resources/com/steerinfo/dil/mapper/SaleLogMapper.xml

@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.steerinfo.dil.mapper.SaleLogMapper">
+  <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.SaleLog">
+    <id column="RESULT_ID" jdbcType="DECIMAL" property="resultId" />
+    <result column="ORDER_ID" jdbcType="DECIMAL" property="orderId" />
+    <result column="SALE_ORDER_ID" jdbcType="DECIMAL" property="saleOrderId" />
+    <result column="DESCRIPTION" jdbcType="VARCHAR" property="description" />
+    <result column="OPRATION_TYPE" jdbcType="VARCHAR" property="oprationType" />
+    <result column="JSON_DATA" jdbcType="VARCHAR" property="jsonData" />
+    <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
+    <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
+  </resultMap>
+  <sql id="columns">
+    RESULT_ID, ORDER_ID, SALE_ORDER_ID, DESCRIPTION, OPRATION_TYPE, JSON_DATA, INSERT_TIME, 
+    INSERT_USERNAME
+  </sql>
+  <sql id="columns_alias">
+    t.RESULT_ID, t.ORDER_ID, t.SALE_ORDER_ID, t.DESCRIPTION, t.OPRATION_TYPE, t.JSON_DATA, 
+    t.INSERT_TIME, t.INSERT_USERNAME
+  </sql>
+  <sql id="select">
+    SELECT <include refid="columns"/> FROM SALE_LOG
+  </sql>
+  <sql id="select_alias">
+    SELECT <include refid="columns_alias"/> FROM SALE_LOG t
+  </sql>
+  <sql id="where">
+    <where> 
+      <if test="resultId != null">
+        and RESULT_ID = #{resultId}
+      </if>
+      <if test="orderId != null">
+        and ORDER_ID = #{orderId}
+      </if>
+      <if test="saleOrderId != null">
+        and SALE_ORDER_ID = #{saleOrderId}
+      </if>
+      <if test="description != null and description != ''">
+        and DESCRIPTION = #{description}
+      </if>
+      <if test="oprationType != null and oprationType != ''">
+        and OPRATION_TYPE = #{oprationType}
+      </if>
+      <if test="jsonData != null and jsonData != ''">
+        and JSON_DATA = #{jsonData}
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME = #{insertUsername}
+      </if>
+    </where>
+  </sql>
+  <sql id="whereLike">
+    <where> 
+      <if test="resultId != null">
+        and RESULT_ID = #{resultId}
+      </if>
+      <if test="orderId != null">
+        and ORDER_ID = #{orderId}
+      </if>
+      <if test="saleOrderId != null">
+        and SALE_ORDER_ID = #{saleOrderId}
+      </if>
+      <if test="description != null and description != ''">
+        and DESCRIPTION LIKE '%${description}%'
+      </if>
+      <if test="oprationType != null and oprationType != ''">
+        and OPRATION_TYPE LIKE '%${oprationType}%'
+      </if>
+      <if test="jsonData != null and jsonData != ''">
+        and JSON_DATA LIKE '%${jsonData}%'
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME LIKE '%${insertUsername}%'
+      </if>
+    </where>
+  </sql>
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+    delete from SALE_LOG
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </delete>
+  <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+    delete from SALE_LOG
+    where 1!=1 
+      <if test="orderId != null">
+        or ORDER_ID = #{orderId}
+      </if>
+      <if test="saleOrderId != null">
+        or SALE_ORDER_ID = #{saleOrderId}
+      </if>
+      <if test="description != null and description != ''">
+        or DESCRIPTION = #{description}
+      </if>
+      <if test="oprationType != null and oprationType != ''">
+        or OPRATION_TYPE = #{oprationType}
+      </if>
+      <if test="jsonData != null and jsonData != ''">
+        or JSON_DATA = #{jsonData}
+      </if>
+      <if test="insertTime != null">
+        or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        or INSERT_USERNAME = #{insertUsername}
+      </if>
+  </delete>
+  <insert id="insert" parameterType="com.steerinfo.dil.model.SaleLog">
+    insert into SALE_LOG (RESULT_ID, ORDER_ID, SALE_ORDER_ID, 
+      DESCRIPTION, OPRATION_TYPE, JSON_DATA, 
+      INSERT_TIME, INSERT_USERNAME)
+    values (#{resultId,jdbcType=DECIMAL}, #{orderId,jdbcType=DECIMAL}, #{saleOrderId,jdbcType=DECIMAL}, 
+      #{description,jdbcType=VARCHAR}, #{oprationType,jdbcType=VARCHAR}, #{jsonData,jdbcType=VARCHAR}, 
+      #{insertTime,jdbcType=TIMESTAMP}, #{insertUsername,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.steerinfo.dil.model.SaleLog">
+    insert into SALE_LOG
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="resultId != null">
+        RESULT_ID,
+      </if>
+      <if test="orderId != null">
+        ORDER_ID,
+      </if>
+      <if test="saleOrderId != null">
+        SALE_ORDER_ID,
+      </if>
+      <if test="description != null">
+        DESCRIPTION,
+      </if>
+      <if test="oprationType != null">
+        OPRATION_TYPE,
+      </if>
+      <if test="jsonData != null">
+        JSON_DATA,
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME,
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="resultId != null">
+        #{resultId,jdbcType=DECIMAL},
+      </if>
+      <if test="orderId != null">
+        #{orderId,jdbcType=DECIMAL},
+      </if>
+      <if test="saleOrderId != null">
+        #{saleOrderId,jdbcType=DECIMAL},
+      </if>
+      <if test="description != null">
+        #{description,jdbcType=VARCHAR},
+      </if>
+      <if test="oprationType != null">
+        #{oprationType,jdbcType=VARCHAR},
+      </if>
+      <if test="jsonData != null">
+        #{jsonData,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUsername != null">
+        #{insertUsername,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.SaleLog">
+    update SALE_LOG
+    set ORDER_ID = #{orderId,jdbcType=DECIMAL},
+      SALE_ORDER_ID = #{saleOrderId,jdbcType=DECIMAL},
+      DESCRIPTION = #{description,jdbcType=VARCHAR},
+      OPRATION_TYPE = #{oprationType,jdbcType=VARCHAR},
+      JSON_DATA = #{jsonData,jdbcType=VARCHAR},
+      INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR}
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.SaleLog">
+    update SALE_LOG
+    <set>
+      <if test="orderId != null">
+        ORDER_ID = #{orderId,jdbcType=DECIMAL},
+      </if>
+      <if test="saleOrderId != null">
+        SALE_ORDER_ID = #{saleOrderId,jdbcType=DECIMAL},
+      </if>
+      <if test="description != null">
+        DESCRIPTION = #{description,jdbcType=VARCHAR},
+      </if>
+      <if test="oprationType != null">
+        OPRATION_TYPE = #{oprationType,jdbcType=VARCHAR},
+      </if>
+      <if test="jsonData != null">
+        JSON_DATA = #{jsonData,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </update>
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+    <include refid="select"/>
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </select>
+  <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select"/>
+    <include refid="where"/>
+  </select>
+  <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select"/>
+    <include refid="whereLike"/>
+  </select>
+  <insert id="batchInsert" parameterType="java.util.List">
+    insert into SALE_LOG 
+      (RESULT_ID, 
+      ORDER_ID, SALE_ORDER_ID, DESCRIPTION, 
+      OPRATION_TYPE, JSON_DATA, INSERT_TIME, 
+      INSERT_USERNAME)
+    ( <foreach collection="list" item="item" separator="union all"> 
+   select  
+      #{item.resultId,jdbcType=DECIMAL}, 
+      #{item.orderId,jdbcType=DECIMAL}, #{item.saleOrderId,jdbcType=DECIMAL}, #{item.description,jdbcType=VARCHAR}, 
+      #{item.oprationType,jdbcType=VARCHAR}, #{item.jsonData,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP}, 
+      #{item.insertUsername,jdbcType=VARCHAR} from dual  
+   </foreach> )
+  </insert>
+  <update id="batchUpdate" parameterType="java.util.List">
+     update SALE_LOG
+     set
+       RESULT_ID=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.resultId,jdbcType=DECIMAL}
+       </foreach>
+       ,ORDER_ID=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.orderId,jdbcType=DECIMAL}
+       </foreach>
+       ,SALE_ORDER_ID=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.saleOrderId,jdbcType=DECIMAL}
+       </foreach>
+       ,DESCRIPTION=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.description,jdbcType=VARCHAR}
+       </foreach>
+       ,OPRATION_TYPE=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.oprationType,jdbcType=VARCHAR}
+       </foreach>
+       ,JSON_DATA=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.jsonData,jdbcType=VARCHAR}
+       </foreach>
+       ,INSERT_TIME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+       </foreach>
+       ,INSERT_USERNAME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+       </foreach>
+     where RESULT_ID in 
+     <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+    #{item.resultId,jdbcType=DECIMAL}
+     </foreach> 
+  </update>
+  <delete id="batchDelete" parameterType="java.util.List">
+    delete from SALE_LOG
+    where RESULT_ID in 
+    <foreach collection="list" item="id" open="(" close=")" separator=",">
+      #{id}
+    </foreach>
+  </delete>
+  <!-- 友情提示!!!-->
+  <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  <select id="selectAllLog" resultType="java.util.Map">
+    SELECT
+      OO .ORDER_NUMBER "orderNumber",
+      ASO .SALE_NUMBER "saleNumber",
+      RC .CAPACITY_NUMBER "capacityNumber",
+      SL .DESCRIPTION "description",
+      SL .OPRATION_TYPE "operationType",
+      SL .INSERT_USERNAME "insertUserName",
+      SL .INSERT_TIME "insertTime"
+    FROM SALE_LOG SL
+           LEFT JOIN OMSTRUCK_ORDER OO ON OO .ORDER_ID =SL .ORDER_ID
+           LEFT JOIN AMS_SALE_ORDER ASO ON ASO .SALE_ORDER_ID = SL .SALE_ORDER_ID
+           LEFT JOIN RMS_CAPACITY RC ON RC .CAPACITY_ID=OO .CAPACITY_ID
+    <where>
+    <if test="con!=null and con!=''.toString()">
+        OO .ORDER_NUMBER || ASO .SALE_NUMBER || RC .CAPACITY_NUMBER || SL .DESCRIPTION
+        LIKE CONCAT('%',CONCAT(#{con},'%'))
+    </if>
+    <if test="orderId!=null ">
+      AND SL .ORDER_ID = #{orderId}
+    </if>
+    <if test="saleOrderId!=null ">
+      AND SL .SALE_ORDER_ID = #{saleOrderId}
+    </if>
+    <if test="operationType!=null">
+      AND SL .OPRATION_TYPE in
+      <foreach collection="operationType" item="item" open="(" separator="," close=")" >
+          #{item}
+      </foreach>
+    </if>
+    <if test="capacityNumber!=null">
+      AND RC .CAPACITY_NUMBER in
+      <foreach collection="capacityNumber" item="item" open="(" separator="," close=")" >
+        #{item}
+      </foreach>
+    </if>
+    </where>
+  </select>
+    <select id="getUserNameById" resultType="java.lang.String">
+      SELECT USER_NAME FROM SSO.SYS_USER
+      WHERE USER_ID = #{userId}
+      FETCH NEXT 1 ROWS ONLY
+    </select>
+  <select id="getOrderIds" resultType="java.math.BigDecimal">
+    SELECT DISTINCT ORDER_ID FROM OMSTRUCK_ORDER WHERE ORDER_NUMBER = #{orderNumber}
+  </select>
+  <select id="getOrderIdByTotal" resultType="java.math.BigDecimal">
+    SELECT ORDER_ID FROM TMSTRUCK_TOTAL_RESULT
+    WHERE RESULT_TOTAL_ID = #{totalResultId}
+      FETCH NEXT 1 ROWS ONLY
+  </select>
+</mapper>