Redeem 1 tahun lalu
induk
melakukan
147ceb407f

+ 2 - 1
src/main/java/com/steerinfo/dil/config/SessionInterceptor.java

@@ -35,7 +35,8 @@ public class SessionInterceptor extends HandlerInterceptorAdapter {
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         HandlerMethod hm = (HandlerMethod) handler;
         String requestUrl = "" + request.getRequestURL();
-        if(!requestUrl.contains("/api/v1/bp/bpLogin") && !requestUrl.contains("/api/v1/uc/getAppVersion") && (request.getAttribute("userId")==null || request.getAttribute("userName")==null)){
+        if(!requestUrl.contains("/api/v1/bp/bpLogin") && !requestUrl.contains("/api/v1/ams/dispatch") && !requestUrl.contains("/api/v1/uc/") && !requestUrl.contains("/api/v1/systemfiles/") && !requestUrl.contains("/api/v1/rms/insertPersonnel")
+                && (request.getAttribute("userId")==null || request.getAttribute("userName")==null)){
             //无权访问
             response.setCharacterEncoding("UTF-8");
             response.setContentType("application/json; charset=utf-8");

+ 29 - 0
src/main/java/com/steerinfo/dil/controller/AMScontroller.java

@@ -304,6 +304,14 @@ public class AMScontroller  extends BaseRESTfulController {
         return amsFeign.purchaseTrainPlanDelete(map);
     }
 
+
+    @ApiOperation(value = "采购火运计划批量删除接口", notes = "采购火运计划批量删除接口")
+    @PostMapping(value = "/purchaseTrainPlanBatchDel")
+    @LogAround(foreignKeys = {"transPlanId"},foreignKeyTypes = {"采购计划"})
+    public Map<String, Object> purchaseTrainPlanBatchDel(@RequestBody(required = false) Map<String ,Object> map) {
+        return amsFeign.purchaseTrainPlanBatchDel(map);
+    }
+
     @ApiOperation(value="同步销售订单")    @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
     @PostMapping(value = "/saleOrderSync")
     @LogAround(foreignKeys = {"orderId"}, foreignKeyTypes = {"销售订单"})
@@ -970,4 +978,25 @@ public class AMScontroller  extends BaseRESTfulController {
     public Map<String, Object> readFixedNeedsExcel(MultipartFile file) throws Exception {
         return amsFeign.readFixedNeedsExcel(file);
     }
+
+    @ApiOperation("导入")
+    @PostMapping("/importTransPrice")
+    public Map<String, Object> importTransPrice(@RequestBody MultipartFile file,
+                                                    String userId,
+                                                    String userName) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        //获取Excel中包含的对象数组
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
+        map.put("list", list);
+        map.put("setList",list);
+        map.put("userId",userId);
+        map.put("userName",userName);
+        return amsFeign.importTransPrice(map);
+    }
+
+    @ApiOperation("派车")
+    @PostMapping("/dispatch")
+    public Map<String, Object> dispatch() throws Exception {
+        return amsFeign.dispatch();
+    }
 }

+ 6 - 0
src/main/java/com/steerinfo/dil/controller/ReportController.java

@@ -137,4 +137,10 @@ public class ReportController {
                                    Integer pageSize) {
         return reportFeign.selecttype1(mapValue, apiId, pageNum, pageSize);
     }
+
+    @ApiOperation(value="每日汇总")
+    @PostMapping(value = "/dailySummary")
+    Map<String, Object> dailySummary(@RequestBody(required=false) Map<String,Object> params) {
+        return reportFeign.dailySummary(params);
+    }
 }

+ 35 - 4
src/main/java/com/steerinfo/dil/controller/TMSController.java

@@ -550,6 +550,13 @@ public class TMSController extends BaseRESTfulController {
         return tmsFeign.updateTrainLoad(map);
     }
 
+    @ApiOperation(value = "删除火运装车", notes = "删除火运装车")
+    @PostMapping(value = "/deleteTrainLoad")
+    @LogAround(foreignKeys = {"transOrderId"},foreignKeyTypes = {"运输订单"})
+    public Map<String, Object> deleteTrainLoad(@RequestBody(required = false) Map<String ,Object> map) {
+        return tmsFeign.deleteTrainLoad(map);
+    }
+
     @ApiOperation(value = "修改火运装车序号")
     @PostMapping("/updateTrainLoadSeq")
     public Map<String, Object> updateTrainLoadSeq(@RequestBody(required = false) Map<String, Object> map){
@@ -894,7 +901,7 @@ public class TMSController extends BaseRESTfulController {
 
     @ApiOperation("导入通行登记单")
     @PostMapping("/importTrasitOrder")
-    public RESTfulResult importTrasitOrder(@RequestBody MultipartFile file,
+    public Map<String, Object> importTrasitOrder(@RequestBody MultipartFile file,
                                        String userId,
                                        String userName) throws Exception {
         Map<String, Object> map = new HashMap<>();
@@ -903,12 +910,36 @@ public class TMSController extends BaseRESTfulController {
         map.put("list", list);
         for (Map<String, Object> item : list) {
             //校验行
-            if(item.get("车牌号") == null  || item.get("通行卡类型") == null || item.get("开始时间") == null || item.get("结束时间") == null){
+            if (item.get("车牌号") == null || item.get("通行卡类型") == null || item.get("开始时间") == null || item.get("结束时间") == null) {
                 throw new Exception("单元格数据异常,请检查模板或数据是否正确!");
             }
         }
-        map.put("userId",userId);
-        map.put("userName",userName);
+        map.put("userId", userId);
+        map.put("userName", userName);
         return tmsFeign.importTrasitOrder(map);
     }
+
+    @ApiOperation(value = "查询请车批车")
+    @PostMapping("/getPleaseApproveList")
+    public Map<String, Object> getPleaseApproveList(@RequestBody(required = false) Map<String, Object> map,
+                                                 Integer apiId,
+                                                 Integer pageNum,
+                                                 Integer pageSize) {
+        return tmsFeign.getPleaseApproveList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
+    }
+
+    @PostMapping("/addPleaseApprove")
+    public Map<String,Object> addPleaseApprove(@RequestBody Map<String,Object> map) {
+        return tmsFeign.addPleaseApprove(map);
+    }
+
+    @PostMapping("/updPleaseApprove")
+    public Map<String,Object> updPleaseApprove(@RequestBody Map<String,Object> map) {
+        return tmsFeign.updPleaseApprove(map);
+    }
+
+    @PostMapping("/delPleaseApprove")
+    public Map<String,Object> delPleaseApprove(@RequestBody Map<String,Object> map) {
+        return tmsFeign.delPleaseApprove(map);
+    }
 }

+ 37 - 5
src/main/java/com/steerinfo/dil/controller/UniversalController.java

@@ -20,14 +20,20 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartRequest;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
+import javax.xml.crypto.Data;
+import java.awt.*;
+import java.awt.image.BufferedImage;
 import java.io.*;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.List;
 
 import static com.steerinfo.dil.util.EasyExcelUitl.exportExcelFile;
 import static com.steerinfo.dil.util.HTTPRequestUtils.getJsonData;
@@ -113,6 +119,14 @@ public class UniversalController extends BaseRESTfulController {
         return success(list);
     }
 
+    @ApiModelProperty(value = "边输边查作业点")
+    @PostMapping("/getOperationPointByLikeNoCode")
+    public RESTfulResult getOperationPointByLikeNoCode(@RequestBody(required = false) Map<String,Object> map) {
+        //System.out.println(map.get("id"));
+        List<Map<String, Object>> list = universalMapper.getOperationPointByLikeNoCode(map);
+        return success(list);
+    }
+
     @ApiModelProperty(value = "边输边查人员")
     @PostMapping("/getPersonnelByLike")
     public RESTfulResult getPersonnelByLike(@RequestBody(required = false) Map<String,Object> map) {
@@ -189,6 +203,15 @@ public class UniversalController extends BaseRESTfulController {
         }
     }
 
+    @ApiOperation("水印测试")
+    @PostMapping("/paintTest")
+    public RESTfulResult uploadFile(MultipartFile file,HttpServletResponse response) throws Exception {
+        File targetFile = DataChange.paintWater(file,"地点:xxxx省市县\n时间:"+new Date(),50,-100);
+        Thread.sleep(10000);
+        targetFile.delete();
+        return success("上传成功");
+    }
+
 
     @ApiOperation("表格查询显示和隐藏")
     @PostMapping("/getColumnShowHidden")
@@ -278,11 +301,18 @@ public class UniversalController extends BaseRESTfulController {
     @ApiOperation("获取通知单号")
     @PostMapping("/getRequirementNo")
     public RESTfulResult getRequirementNo(@RequestBody Map<String,Object> map) {
-        BigDecimal requirementId = universalMapper.transRequirementId();
-        String requirementNo = DataChange.generateEightDigitsNumber(map.get("businessFlag").toString(),requirementId.intValue());
         Map<String, Object> requireMap = new HashMap<>();
-        requireMap.put("requirementId",requirementId);
-        requireMap.put("requirementNo",requirementNo);
+        BigDecimal requirementId = universalMapper.transRequirementId();
+        if (map.get("businessFlag").toString().equals("XS")) {
+            //获取当天最大的作业记录号
+            String serialNumber = universalMapper.getMaxSerialNumber();
+            requireMap.put("requirementId", requirementId);
+            requireMap.put("requirementNo", serialNumber);
+        } else {
+            String requirementNo = DataChange.generateEightDigitsNumber(map.get("businessFlag").toString(), requirementId.intValue());
+            requireMap.put("requirementId", requirementId);
+            requireMap.put("requirementNo", requirementNo);
+        }
         return success(requireMap);
     }
 
@@ -361,7 +391,9 @@ public class UniversalController extends BaseRESTfulController {
         }
         byte[] stream1 = exportExcelFile(columnMaps, listMap);
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String path = "/data/file/"+  map.get("userName") + "-" + simpleDateFormat.format(new Date()) + "-" + map.get("exclename").toString() + ".xlsx";
+        Random random = new Random();
+        String path = "/data/file/"+  map.get("userName") + "-" + simpleDateFormat.format(new Date()) + "-"
+                + map.get("exclename").toString()+ Util.RandomCreate(8) + ".xlsx";
         FileOutputStream outputStream1 = new FileOutputStream(new File(path));
         outputStream1.write(stream1);
         outputStream1.flush();

+ 11 - 1
src/main/java/com/steerinfo/dil/feign/AmsFeign.java

@@ -106,6 +106,9 @@ public interface AmsFeign {
     @PostMapping(value = "api/v1/ams/amstransplans/purchaseTrainPlanDelete")
     Map<String, Object> purchaseTrainPlanDelete(Map<String, Object> map);
 
+    @PostMapping(value = "api/v1/ams/amstransplans/purchaseTrainPlanBatchDel")
+    Map<String, Object> purchaseTrainPlanBatchDel(Map<String, Object> map);
+
     @PostMapping("api/v1/ams/amsorders/saleOrderSync")
     Map<String, Object> saleOrderSync(@RequestBody(required = false) Map<String, Object> map);
 
@@ -345,4 +348,11 @@ public interface AmsFeign {
 
 
     @PostMapping(value = "api/v1/ams/amsfixedneedss/readFixedNeedsExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    Map<String, Object> readFixedNeedsExcel(MultipartFile file );}
+    Map<String, Object> readFixedNeedsExcel(MultipartFile file );
+
+    @PostMapping(value = "api/v1/ams/amstransprices/importTransPrice")
+    Map<String, Object> importTransPrice(Map<String, Object> map);
+
+    @PostMapping(value = "api/v1/ams/amstransrequirements/dispatch")
+    Map<String, Object> dispatch();
+}

+ 3 - 0
src/main/java/com/steerinfo/dil/feign/ReportFeign.java

@@ -69,4 +69,7 @@ public interface ReportFeign {
                                    @RequestParam Integer apiId,
                                    @RequestParam  Integer pageNum,
                                    @RequestParam  Integer pageSize);
+
+    @PostMapping(value = "api/v1/report/dailySummary/dailySummary")
+    Map<String, Object> dailySummary(Map<String, Object> map);
 }

+ 19 - 1
src/main/java/com/steerinfo/dil/feign/TmsFeign.java

@@ -181,6 +181,9 @@ public interface TmsFeign {
     @PostMapping("api/v1/tms/tmsloadresults/updateTrainLoad")
     Map<String, Object> updateTrainLoad(@RequestBody(required = false) Map<String, Object> map);
 
+    @PostMapping("api/v1/tms/tmsloadresults/deleteTrainLoad")
+    Map<String, Object> deleteTrainLoad(@RequestBody(required = false) Map<String, Object> map);
+
     @PostMapping("api/v1/tms/tmsloadresults/updateTrainLoadSeq")
     Map<String, Object> updateTrainLoadSeq(Map<String, Object> map);
 
@@ -310,7 +313,22 @@ public interface TmsFeign {
     Map<String, Object> insertTmsTransitOrder(Map<String, Object> map);
 
     @PostMapping(value = "api/v1/tms/tmstransitorders/importTrasitOrder")
-    RESTfulResult importTrasitOrder(Map<String, Object> map);
+    Map<String, Object> importTrasitOrder(Map<String, Object> map);
+
+    @PostMapping(value = "api/v1/tms/tmspleaseapproves/getPleaseApproveList")
+    Map<String, Object> getPleaseApproveList(@RequestBody Map<String, Object> objectMap,
+                                          @RequestParam Integer apiId,
+                                          @RequestParam Integer pageNum,
+                                          @RequestParam Integer pageSize);
+
+    @PostMapping(value = "api/v1/tms/tmspleaseapproves/addPleaseApprove")
+    Map<String, Object> addPleaseApprove(Map<String, Object> map);
+
+    @PostMapping(value = "api/v1/tms/tmspleaseapproves/updPleaseApprove")
+    Map<String, Object> updPleaseApprove(Map<String, Object> map);
+
+    @PostMapping(value = "api/v1/tms/tmspleaseapproves/delPleaseApprove")
+    Map<String, Object> delPleaseApprove(Map<String, Object> map);
 }
 
 

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/UniversalMapper.java

@@ -32,6 +32,8 @@ public interface UniversalMapper {
 
     List<Map<String, Object>> getOperationPointByLike(Map<String, Object> map);
 
+    List<Map<String, Object>> getOperationPointByLikeNoCode(Map<String, Object> map);
+
     List<Map<String, Object>> getCategoryCodeByLike(Map<String, Object> map);
 
 
@@ -106,4 +108,6 @@ public interface UniversalMapper {
     Map<String,Object> getDriverInfo(Map<String, Object> map);
 
     List<Map<String, Object>> getRequireByLike(Map<String, Object> map);
+
+    String getMaxSerialNumber();
 }

+ 62 - 1
src/main/java/com/steerinfo/dil/util/DataChange.java

@@ -1,6 +1,14 @@
 package com.steerinfo.dil.util;
 
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileOutputStream;
 import java.math.BigDecimal;
+import java.text.DateFormat;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
@@ -16,7 +24,7 @@ import java.util.regex.Pattern;
 
 public class DataChange {
 
-
+    static String tempDir = "/temp/";
     /**
      * 时间转换类
      * 处理了三种类型 yyyy-MM-dd HH:mm:ss  yyyy/MM/dd HH:mm:ss  时间戳类型(带毫秒数时间戳13位)
@@ -289,4 +297,57 @@ public class DataChange {
         map.put("lastDay",lastDay);
 
     }
+
+    public static File paintWater(MultipartFile file, String text,int xOffset ,int yOffset)  throws Exception{
+        //将文件对象转化为图片对象
+        Image srcImg = ImageIO.read(file.getInputStream());
+        //获取图片的宽
+        int srcImgWidth = srcImg.getWidth(null);
+        //获取图片的高
+        int srcImgHeight = srcImg.getHeight(null);
+        // 加水印
+        BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
+        //创建画笔
+        Graphics2D graphics = bufImg.createGraphics();
+        //srcImg 为上面获取到的原始图片的图片对象
+        graphics.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
+        //根据图片的背景设置水印颜色
+        graphics.setColor(new Color(255,0,0,255));
+        //设置字体  画笔字体样式为微软雅黑,加粗,文字大小为60pt
+        graphics.setFont(new Font("微软雅黑", Font.BOLD, 40));
+        //设置水印的坐标
+        int x = 0;
+        if(xOffset >= 0){
+            x = xOffset;
+        }else{
+            x = srcImgWidth + (xOffset % srcImgWidth);
+        }
+        int y = 0;
+        if(yOffset >= 0){
+            y = yOffset;
+        }else {
+            y = srcImgHeight + (yOffset % srcImgWidth);
+        }
+        //自定义水印 第一个参数是水印内容,第二个参数是x轴坐标,第三个参数是y轴坐标
+        graphics.drawString(text, x, y);
+        //时间水印
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        graphics.drawString(df.format(new Date()), x, y + 50);
+        graphics.dispose();
+        //待存储的地址
+        File fileDir = new File(tempDir);
+        if(!fileDir.exists() || !fileDir.isDirectory()){
+            fileDir.mkdir();
+        }
+        String tarImgPath = tempDir + file.getOriginalFilename();
+        // 输出图片
+        FileOutputStream outImgStream = new FileOutputStream(tarImgPath);
+        ImageIO.write(bufImg, "png", outImgStream);
+        outImgStream.flush();
+        outImgStream.close();
+        //返回目标图片
+        File targetFile = new File(tarImgPath);
+//        targetFile.delete();//临时文件返回后,保存在其他地方然后及时删除
+        return targetFile;
+    }
 }

+ 20 - 0
src/main/java/com/steerinfo/dil/util/Util.java

@@ -0,0 +1,20 @@
+package com.steerinfo.dil.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/5/26 8:59
+ * @Version 1.0
+ * 工具类
+ */
+public class Util {
+    public static String RandomCreate(int i) {
+        String str = "";
+        for (int k = 0; k < i; k++) {
+            str += (int) (Math.random() * 10);// [1-10)随机数 即0-9
+        }
+        return str;
+    }
+}

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

@@ -1,14 +0,0 @@
-package com.steerinfo.dil.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @Author zhangnan
- * @Date 2021/5/26 8:59
- * @Version 1.0
- * 工具类
- */
-public class util {
-
-}

+ 66 - 3
src/main/resources/com/steerinfo/dil/mapper/UniversalMapper.xml

@@ -312,7 +312,8 @@
         OPERATION_POINT_CODE || '-' || OPERATION_POINT_NAME "label",
         OPERATION_POINT_CODE || '-' || OPERATION_POINT_NAME "text",
         OPERATION_POINT_CODE "code",
-        REMARK "remark"
+        REMARK "remark",
+        alternate_fields3 "f3"
         from RMS_OPERATION_POINT
         <where>
             DELETED = 0
@@ -343,14 +344,69 @@
             OPERATION_POINT_CODE || '-' || OPERATION_POINT_NAME "label",
             OPERATION_POINT_CODE || '-' || OPERATION_POINT_NAME "text",
             OPERATION_POINT_CODE "code",
-            REMARK "remark"
+            REMARK "remark",
+            alternate_fields3 "f3"
             from RMS_OPERATION_POINT
             where  OPERATION_POINT_ID in
             <foreach collection="id" item="item"  open="(" close=")" separator="," >
                 #{item}
             </foreach>
         </if>
-      )  order by LENGTH("OPERATION_POINT_NAME") desc
+      )  order by "f3", LENGTH("OPERATION_POINT_NAME") desc
+    </select>
+
+
+    <select id="getOperationPointByLikeNoCode" resultType="java.util.Map">
+        select * from (
+        SELECT * FROM (
+        select
+        OPERATION_POINT_ID "id",
+        OPERATION_POINT_ID "value",
+        OPERATION_POINT_NAME "OPERATION_POINT_NAME",
+        OPERATION_POINT_NAME "label",
+        OPERATION_POINT_NAME "text",
+        OPERATION_POINT_CODE "code",
+        REMARK "remark",
+        alternate_fields3 "f3"
+        from RMS_OPERATION_POINT
+        <where>
+            DELETED = 0
+            <if test="operationPointType!=null and operationPointType!=''">
+                AND REGEXP_LIKE(OPERATION_POINT_TYPE, #{operationPointType})
+            </if>
+            <if test="receivingPointId!=null and receivingPointId!=''">
+                AND OPERATION_POINT_ID = #{receivingPointId}
+            </if>
+            <if test="shippingPointId!=null and shippingPointId!=''">
+                AND OPERATION_POINT_ID =  #{shippingPointId}
+            </if>
+            <if test="index!=null and index!=''">
+                AND REGEXP_LIKE(OPERATION_POINT_CODE || OPERATION_POINT_NAME, #{index})
+            </if>
+            <if test="sourceFlag != null and sourceFlag !=''">
+                AND ALTERNATE_FIELDS1 = #{sourceFlag}
+            </if>
+        </where>
+        order by alternate_fields3,LENGTH(OPERATION_POINT_NAME)
+        FETCH NEXT 50 ROWS ONLY
+        )
+        <if test="id!=null and id.size>0">
+            UNION select
+            OPERATION_POINT_ID "id",
+            OPERATION_POINT_ID "value",
+            OPERATION_POINT_NAME "OPERATION_POINT_NAME",
+            OPERATION_POINT_NAME "label",
+            OPERATION_POINT_NAME "text",
+            OPERATION_POINT_CODE "code",
+            REMARK "remark",
+            alternate_fields3 "f3"
+            from RMS_OPERATION_POINT
+            where
+            <foreach collection="id" item="item"  open="(" close=")" separator="," >
+                REGEXP_LIKE(OPERATION_POINT_NAME, #{item})
+            </foreach>
+        </if>
+        )  order by "f3", LENGTH("OPERATION_POINT_NAME") desc
     </select>
 
     <select id="getPersonnelByLike" resultType="java.util.Map">
@@ -1831,4 +1887,11 @@
             </foreach>
         </if>
     </select>
+
+    <select id="getMaxSerialNumber" resultType="java.lang.String">
+        select 'XX' || nvl(to_number(substr(max(t.serial_number), 3)) + 1,
+                           to_char(sysdate, 'yyyyMMdd') || '001')
+        from ams_trans_requirement t
+        where substr(t.serial_number, 1, 10) = 'XX' || to_char(sysdate, 'yyyyMMdd')
+    </select>
 </mapper>