Selaa lähdekoodia

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

luobang 2 vuotta sitten
vanhempi
commit
dc686c4a35

+ 64 - 30
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -806,6 +806,11 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
+        try {
+            newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         if (s == null || s.size() == 0) {
             try{
                 //失败,存入重试队列,准备重试
@@ -1031,6 +1036,11 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
             String json = JSONUtils.toJSONString(totalMap);
             System.out.println(json);
             Map<String, Object> s = joinFeign.pushCarNumberToEas(totalMap);
+            try {
+                newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
             System.out.println("-------------------------------------");
             System.out.println(s);
             System.out.println("-------------------------------------");
@@ -1158,6 +1168,11 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
                 System.out.println(json);
                 System.out.println("--------------------------------------------");
                 Map<String, Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+                try {
+                    newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
                 System.out.println("--------------------------------------------");
                 System.out.println(resultMap);
                 //Map<String,Object> outMap = (Map<String,Object>) resultMap.get("output");
@@ -1199,6 +1214,11 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> resultMap = joinFeign.pushSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("pushSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println(resultMap);
         return success(result);
     }
@@ -1414,6 +1434,11 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println(resultMap);
         return success(result);
     }
@@ -1489,7 +1514,11 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
                     String json = JSONUtils.toJSONString(totalMap);
                     System.out.println(json);
                     Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
-
+                    try {
+                        newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
                     System.out.println(resultMap);
                 }
             }catch (Exception e){
@@ -1650,35 +1679,40 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
     /**
      * 重试上传车牌号到金蝶,5min一次
      */
-    @Scheduled(fixedRate=1000*60*5)
-    public void retryPushCarNumberToEas(){
-        List<List<Map<String,Object>>> newRetry=new ArrayList<>();
-        if(retryQueen.size()<=0){
-            //没有需要重传的,直接退出
-            return;
-        }
-        System.out.println("开始重传,目前失败数量:"+retryQueen.size());
-        for(List<Map<String,Object>> mapList:retryQueen){
-            // 调用EAS接口将车牌号传给金蝶
-            Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
-            Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
-            totalMap.put("input",input);
-            System.out.println(totalMap);
-            String json = JSONUtils.toJSONString(totalMap);
-            System.out.println(json);
-            Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
-            if (s == null || s.size() == 0) {
-                //失败,存入新的重试队列,准备下一次重试
-                newRetry.add(mapList);
-                System.out.println("重试:登录金蝶失败");
-            }else{
-                System.out.println("重试:上传车牌成功");
-            }
-        }
-        //结束,替换掉旧的队列
-        retryQueen=newRetry;
-        System.out.println("重传结束,剩余失败数量:"+retryQueen.size());
-    }
+//    @Scheduled(fixedRate=1000*60*5)
+//    public void retryPushCarNumberToEas(){
+//        List<List<Map<String,Object>>> newRetry=new ArrayList<>();
+//        if(retryQueen.size()<=0){
+//            //没有需要重传的,直接退出
+//            return;
+//        }
+//        System.out.println("开始重传,目前失败数量:"+retryQueen.size());
+//        for(List<Map<String,Object>> mapList:retryQueen){
+//            // 调用EAS接口将车牌号传给金蝶
+//            Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
+//            Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
+//            totalMap.put("input",input);
+//            System.out.println(totalMap);
+//            String json = JSONUtils.toJSONString(totalMap);
+//            System.out.println(json);
+//            Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
+//            try {
+//                newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
+//            }catch (Exception e){
+//                e.printStackTrace();
+//            }
+//            if (s == null || s.size() == 0) {
+//                //失败,存入新的重试队列,准备下一次重试
+//                newRetry.add(mapList);
+//                System.out.println("重试:登录金蝶失败");
+//            }else{
+//                System.out.println("重试:上传车牌成功");
+//            }
+//        }
+//        //结束,替换掉旧的队列
+//        retryQueen=newRetry;
+//        System.out.println("重传结束,剩余失败数量:"+retryQueen.size());
+//    }
 
     @ApiOperation("查询制单日期")
     @PostMapping("getMakeOrderDate")

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

@@ -1,11 +1,13 @@
 package com.steerinfo.dil.controller;
 
 import com.steerinfo.dil.feign.ESFeign;
+import com.steerinfo.dil.mapper.SaleLogMapper;
 import com.steerinfo.dil.model.DilNotice;
 import com.steerinfo.dil.service.IDilNoticeService;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.dil.util.ColumnDataUtil;
 import com.steerinfo.dil.util.PageListAdd;
+import com.steerinfo.dil.util.SaleLogUtil;
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.service.pagehelper.PageHelper;
 import io.swagger.annotations.ApiImplicitParam;
@@ -42,7 +44,10 @@ public class DilNoticeController extends BaseRESTfulController {
     ColumnDataUtil columnDataUtil;
     @Autowired
     ESFeign esFeign;
-
+    @Autowired
+    SaleLogUtil saleLogUtil;
+    @Autowired
+    SaleLogMapper saleLogMapper;
 
 
 
@@ -342,4 +347,32 @@ public class DilNoticeController extends BaseRESTfulController {
     }
 
 
+    /**
+     * 查询所有日志
+     * @param mapValue
+     * @param pageNum
+     * @param pageSize
+     * @param apiId=522
+     * @return
+     */
+    @PostMapping(value = "/selectAllLog")
+    public RESTfulResult test(@RequestBody(required = false) Map<String, Object> mapValue,
+                              @RequestParam("pageNum") Integer pageNum,
+                              @RequestParam("pageSize") Integer pageSize,
+                              @RequestParam("apiId") Integer apiId) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<Map<String, Object>> list = saleLogMapper.selectAllLog(mapValue);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, null, list);
+        return success(data);
+    }
+
+    /**
+     * TEST ADD LOG
+     * @param mapValue
+     * @return
+     */
+    @PostMapping(value = "/addSaleLog")
+    public void test(@RequestBody(required = false) Map<String, Object> mapValue) {
+        saleLogUtil.logOrder(new BigDecimal(1),"测试",mapValue,SaleLogUtil.INSERT);
+    }
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/feign/JoinFeign.java

@@ -38,4 +38,8 @@ public interface JoinFeign {
     //根据数组查询车牌号、承运商和金蝶分录
     @PostMapping("/api/v1/join/amssaleorder/findCarNumberByOrderList")
     Map<String, Object> findCarNumberByOrderList(@RequestBody List<Map<String, Object>> mapList);
+
+    //注册收货客户
+    @PostMapping("/api/v1/join/rmsconsignee/registerConsignee")
+    Map<String, Object> registerConsignee(@RequestBody Map<String, Object> map);
 }

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

@@ -0,0 +1,22 @@
+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.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);
+}

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

+ 98 - 17
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -109,6 +109,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Autowired
     BmstruckFeign bmstruckFeign;
 
+    @Autowired
+    SaleLogUtil saleLogUtil;
+
     @Override
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
         return amsSaleOrderMapper.getSaleOrderInfo(map);
@@ -262,6 +265,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         System.out.println(json);
         // 得到金蝶返回结果
         Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("pushSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         String status = (String) s.get("status");
         if ("-1".equals(status)) {
             throw new Exception(amsSaleOrder.getSaleNumber() + "上传金蝶失败!");
@@ -559,22 +567,32 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         if (receiveId == null || receiveId.intValue() == 0) {
             receiveId = amsSaleOrderMapper.findReceiveId(mapValue.get("receiveName"));
             if (receiveId == null) {
-                throw new RuntimeException("您输入的下单客户:" + mapValue.get("receiveName") + "不存在!!");
-            }else {
-                //判断该收货客户有没有绑定片区
-                BigDecimal saleAreaId = amsSaleOrderMapper.selectSaleAreaId(receiveId);
-                if(saleAreaId == null){
-                    //如果片区为null,则绑定片区
-                    //根据片区名称去查找片区ID
-                    if(mapValue.get("saleArea") != null){
-                        String saleAreaName = (String) mapValue.get("saleArea");
-                        saleAreaId = amsSaleOrderMapper.selectSaleAreaIdByName(saleAreaName);
-                        if(saleAreaId == null){
-                            throw new Exception("您输入的销售片区:" + mapValue.get("saleArea") +"不存在!!");
-                        }else{
-                            //更新收货客户下的销售片区
-                            amsSaleOrderMapper.bindSaleArea(receiveId,saleAreaId);
-                        }
+                if(mapValue.get("receiveName")!=null){
+                    //自动注册收货客户
+                    Map<String, Object> res = joinFeign.registerConsignee(mapValue);
+                    if("succeed".equals(res.get("status"))){
+                        receiveId=DataChange.dataToBigDecimal(res.get("data"));
+                    }else{
+                        System.out.println(res);
+                        throw new Exception("注册收货客户失败!请手动注册!");
+                    }
+                }else{
+                    throw new Exception("没有输入下单客户!!!");
+                }
+            }
+            //判断该收货客户有没有绑定片区
+            BigDecimal saleAreaId = amsSaleOrderMapper.selectSaleAreaId(receiveId);
+            if(saleAreaId == null){
+                //如果片区为null,则绑定片区
+                //根据片区名称去查找片区ID
+                if(mapValue.get("saleArea") != null){
+                    String saleAreaName = (String) mapValue.get("saleArea");
+                    saleAreaId = amsSaleOrderMapper.selectSaleAreaIdByName(saleAreaName);
+                    if(saleAreaId == null){
+                        throw new Exception("您输入的销售片区:" + mapValue.get("saleArea") +"不存在!!");
+                    }else{
+                        //更新收货客户下的销售片区
+                        amsSaleOrderMapper.bindSaleArea(receiveId,saleAreaId);
                     }
                 }
             }
@@ -1033,6 +1051,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setInsertTime(new Date());
                 omstruckOrder.setInsertUsername("");
                 result += omstruckOrderMapper.insertSelective(omstruckOrder);
+                //插入日志
+                saleLogUtil.logOrder(orderId,"普通派单",map,SaleLogUtil.INSERT);
             } else {
                 omstruckOrder = omstruckOrders.get(0);
             }
@@ -1149,6 +1169,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             omstruckOrder.setInsertTime(new Date());
             omstruckOrder.setInsertUsername("continue");
             result += omstruckOrderMapper.insertSelective(omstruckOrder);
+            //插入日志
+            saleLogUtil.logOrder(orderId,"继续装派单",map,SaleLogUtil.INSERT);
             for (Map<String, Object> materialMap : materialList) {
                 BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
                 BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
@@ -1325,6 +1347,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             String json = JSONUtils.toJSONString(totalMap);
             System.out.println(json);
             Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+            try {
+                newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
             System.out.println(resultMap);
         }else if(amsSaleOrder1.getSaleOrderStatus().intValue() == 1 || amsSaleOrder1.getSaleOrderStatus().intValue() == 2){
             String reason = "修改物资关闭上一条销售订单";
@@ -1401,6 +1428,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             String json = JSONUtils.toJSONString(totalMap);
             System.out.println(json);
             Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
+            try {
+                newFileTool.newFile("pushSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
             String status = (String) s.get("status");
             if ("-1".equals(status)) {
                 continue;
@@ -1664,6 +1696,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setOptionerCode(operateName);
             }
             omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            //插入日志
+            saleLogUtil.logOrder(orderId,"修改收货地址",mapValue,SaleLogUtil.UPDATE);
             // 得到销售订单物资表主键
             List<Map<String,Object>> saleMaterialIdList = amsSaleOrderMapper.getSaleMaterialId(saleOrderMaterialId);
             for (Map<String, Object> map : saleMaterialIdList) {
@@ -1832,6 +1866,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         omstruckOrder.setOrderId(orderId);
         omstruckOrder.setCanWork(new BigDecimal(1));
         omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        //插入日志
+        saleLogUtil.logOrder(orderId,"修改销售订单中的物资:改为不可作业",mapValue,SaleLogUtil.UPDATE);
         // 得到运单中的物资
         List<Map<String, Object>> oldList = omstruckOrderMaterialMapper.getMaterialList(orderId);
         Map<String, Object> toTmsMap = new HashMap<>();
@@ -1957,6 +1993,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println(resultMap);
         AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
         amsSaleOrder.setSaleOrderId(saleOrderId);
@@ -2061,6 +2102,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         wysdd.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
         wysdd.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD", omstruckOrderMapper.selectMaxId().intValue()));
         omstruckOrderMapper.updateByPrimaryKeySelective(wysdd);
+        //插入日志
+        saleLogUtil.logOrder(wysdd.getOrderId(),"修改车牌号",mapValue,SaleLogUtil.UPDATE);
         if (lineSequence == null || "0".equals(lineSequence.toString()) || "1".equals(lineSequence.toString()) || "2".equals(lineSequence.toString())) {
             String capacityids="";
             Integer capacityid1= (Integer) mapValue.get("capacityIds");
@@ -2251,6 +2294,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setUpdateTime(new Date());
                 omstruckOrder.setInsertUpdateRemark("关闭分录,同步关闭运输订单");
                 result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                //插入日志
+                saleLogUtil.logOrder(omstruckOrder.getOrderId(),"关闭分录,同步关闭运输订单",mapValue,SaleLogUtil.UPDATE);
         }
         result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
         if(netWeightCount == 0) {
@@ -2356,6 +2401,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setUpdateTime(new Date());
                 omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
             }
+            //插入日志
+            saleLogUtil.logOrder(omstruckOrder.getOrderId(),"反关闭分录,运单同步开启",null,SaleLogUtil.UPDATE);
         }
         // 设置反关闭分录id
         head.put("unCloseEntryId",amsSaleMaterial.getEasPrimaryId());
@@ -2376,6 +2423,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println(resultMap);
         return result;
     }
@@ -2415,6 +2467,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println(resultMap);
         return result;
     }
@@ -2454,6 +2511,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setOptionerCode(operateName);
             }
             omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            //插入日志
+            saleLogUtil.logOrder(omstruckOrder.getOrderId(),"反关闭",null,SaleLogUtil.UPDATE);
             // 根据车序号主键修改子表
             amsSaleMaterialMapper.updateSaleMaterial(saleOrderMaterialId);
             //查询分录ID,修改金蝶
@@ -2475,6 +2534,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 String json = JSONUtils.toJSONString(totalMap);
                 System.out.println(json);
                 Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+                try {
+                    newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
                 System.out.println(resultMap);
             }
             return 0;
@@ -2495,6 +2559,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println(resultMap);
         String outPutMap = (String) resultMap.get("output");
         JSONObject jsonObject = JSON.parseObject(outPutMap);
@@ -2576,13 +2645,15 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setInsertUpdateRemark("反关闭分录,运单同步开启");
                 omstruckOrder.setUpdateTime(new Date());
                 omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
-            }else{
+              }else{
                 omstruckOrder.setOrderId(orderId);
                 omstruckOrder.setOrderStatus(new BigDecimal(5));
                 omstruckOrder.setInsertUpdateRemark("反关闭分录,运单同步开启");
                 omstruckOrder.setUpdateTime(new Date());
                 omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
             }
+            //插入日志
+            saleLogUtil.logOrder(orderId,"反关闭分录,运单同步开启",null,SaleLogUtil.UPDATE);
         }
         return result;
     }
@@ -2607,6 +2678,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         JSONObject jsonObject = new JSONObject(totalMap);
         System.out.println(jsonObject);
         Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        try {
+            newFileTool.newFile("deleteSaleOrderToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         System.out.println("返回");
         System.out.println(resultMap);
         String outPut = (String) resultMap.get("output");
@@ -2881,6 +2957,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
+        try {
+            newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         if (s == null || s.size() == 0) {
             throw new Exception("登录金蝶失败!请重试派车!");
         }else{

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

@@ -0,0 +1,90 @@
+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.Date;
+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;
+        }
+    }
+
+    /**
+     * 处理插入用户名
+     * @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 "未知用户";
+        }
+    }
+}

+ 44 - 0
src/main/java/com/steerinfo/dil/util/newFileTool.java

@@ -0,0 +1,44 @@
+package com.steerinfo.dil.util;
+
+import org.apache.commons.lang.time.FastDateFormat;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Date;
+
+public class newFileTool {
+    public static void newFile(String jsonString,String type){
+        try{
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try{
+                        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                        FastDateFormat format = FastDateFormat.getInstance("yyyy-MM-dd");
+                        String date  = format.format(new Date());
+                        File file = new File("/shared/" + date + "-" + type + ".txt");
+                        //File file = new File("/shared/test.txt");
+                        FileWriter fileWriter = new FileWriter(file,true);
+                        FastDateFormat format1 = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
+                        fileWriter.append("\n");
+                        fileWriter.append(format1.format(new Date()) + "-----------------------");
+                        fileWriter.append("\n");
+                        fileWriter.append(jsonString);
+                        fileWriter.append("\n");
+                        fileWriter.append(format1.format(new Date()) + "-----------------------");
+                        fileWriter.append("\n");
+                        fileWriter.flush();
+                        fileWriter.close();
+                    }catch (Exception e){
+                        System.out.println("IO异常");
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+        }catch (Exception e){
+            System.out.println("读写线程异常");
+            e.printStackTrace();
+        }
+    }
+}

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

@@ -0,0 +1,332 @@
+<?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>
+</mapper>