Browse Source

问题修改

zhs 2 years ago
parent
commit
8502c41e39

+ 2 - 2
src/main/java/com/tld/config/MyRedissonConfig.java

@@ -16,8 +16,8 @@ public class MyRedissonConfig {
     public RedissonClient redissonClient(){
         // 创建配置 指定redis地址及节点信息
         Config config = new Config();
-//        config.useSingleServer().setAddress("redis://8.142.144.205:6379").setPassword("#09SilverB");
-        config.useSingleServer().setAddress("redis://10.2.111.91:6379").setPassword("#09SilverB");
+        config.useSingleServer().setAddress("redis://8.142.144.205:6379").setPassword("#09SilverB");
+//        config.useSingleServer().setAddress("redis://10.2.111.91:6379").setPassword("#09SilverB");
         //redis集群使用
 //        config.useClusterServers().addNodeAddress("redis://8.142.144.205:6379");
         // 根据config创建出RedissonClient实例

+ 98 - 0
src/main/java/com/tld/controller/TraceBackController.java

@@ -0,0 +1,98 @@
+package com.tld.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.tld.excel.ExcelUtils;
+import com.tld.model.StorageLocation;
+import com.tld.model.TraceBack;
+import com.tld.service.TraceBackService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 商机追溯
+ */
+@RestController
+@RequestMapping("traceBack")
+@RequiredArgsConstructor
+public class TraceBackController {
+
+    @Autowired
+    private TraceBackService traceBackService;
+
+    /**
+     * 追溯导入
+     * @param file 文件流
+     * @return 返回结果
+     * @throws Exception 返回异常
+     */
+    @PostMapping("/import")
+    public Map<String, Object> importExcel(@RequestPart("file") MultipartFile file) throws Exception{
+        Map<String, Object> map = new HashMap<>();
+        JSONArray array = ExcelUtils.readMultipartFile(file);
+        List<TraceBack> list = new LinkedList<>();
+        for(int i = 0; i < array.size(); i++){
+            JSONObject jsonObject = array.getJSONObject(i);
+            TraceBack traceBack = new TraceBack()
+                    .setDeliveryOrder(jsonObject.get("交货单号(发货任务号)").toString())
+                    .setDeliveryTime(jsonObject.get("发货日期").toString())
+                    .setDeliveryType(jsonObject.get("订单类型").toString())
+                    .setDeliveryCode(jsonObject.get("销售订单编号").toString())
+                    .setSubsidiaryName(jsonObject.get("负责子公司").toString())
+                    .setDeliveryCompany(jsonObject.get("销售公司编号").toString())
+                    .setDeliveryDepartment(jsonObject.get("销售部门名称").toString())
+                    .setCustomerName(jsonObject.get("客户名称").toString())
+                    .setCommercialOpportunityCode(jsonObject.get("商机编号").toString())
+                    .setCommercialOpportunityName(jsonObject.get("商机名称").toString())
+                    .setPowerStationName(jsonObject.get("电站名称").toString())
+                    .setMaterialCode(jsonObject.get("物料编号").toString())
+                    .setMaterialName(jsonObject.get("物料名称").toString())
+                    .setWbs(jsonObject.get("WBS编号").toString())
+                    .setNum(jsonObject.get("发货数量").toString())
+                    .setProvince(jsonObject.get("省").toString())
+                    .setCity(jsonObject.get("市").toString())
+                    .setAddress(jsonObject.get("详细地址").toString());
+            list.add(traceBack);
+        }
+        traceBackService.importExcel(list);
+        map.put("msg", "200");
+        map.put("data", array.size());
+        return map;
+    }
+
+    /**
+     * 删除追溯单
+     * @param id 参数
+     * @return 返回结果
+     */
+    @DeleteMapping("delTraceBack")
+    public Map<String, Object> delTraceBack(String id){
+        return traceBackService.delTraceBack(id);
+    }
+
+    /**
+     * 查询交货单追溯
+     * @param traceBack 参数
+     * @return 返回结果
+     */
+    @GetMapping("getTraceBack")
+    public Map<String, Object> getTraceBack(TraceBack traceBack){
+        return traceBackService.getTraceBack(traceBack);
+    }
+
+    /**
+     * 导出
+     * @param response 参数
+     */
+    @GetMapping("export")
+    public void userExport(TraceBack traceBack, HttpServletResponse response){
+        traceBackService.export(traceBack, response);
+    }
+}

+ 18 - 0
src/main/java/com/tld/mapper/TraceBackMapper.java

@@ -0,0 +1,18 @@
+package com.tld.mapper;
+
+import com.tld.model.TraceBack;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface TraceBackMapper {
+    void importExcel(List<TraceBack> list);
+
+    List<TraceBack> getTraceBack(TraceBack traceBack);
+
+    void delTraceBack(String id);
+
+    List<Map<String, Object>> export(TraceBack traceBack);
+}

+ 109 - 0
src/main/java/com/tld/model/TraceBack.java

@@ -0,0 +1,109 @@
+package com.tld.model;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 追溯
+ */
+@Data
+@Accessors(chain = true)
+@SuppressWarnings("serial")
+public class TraceBack {
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 发货单号
+     */
+    private String deliveryOrder;
+    /**
+     * 发货日期
+     */
+    private String deliveryTime;
+    /**
+     * 订单类型
+     */
+    private String deliveryType;
+    /**
+     * 销售订单编号
+     */
+    private String deliveryCode;
+    /**
+     * 负责子公司
+     */
+    private String subsidiaryName;
+    /**
+     * 销售公司编号
+     */
+    private String deliveryCompany;
+    /**
+     * 销售部门名称
+     */
+    private String deliveryDepartment;
+    /**
+     * 客户名称
+     */
+    private String customerName;
+    /**
+     * 商机编号
+     */
+    private String commercialOpportunityCode;
+    /**
+     * 商机名称
+     */
+    private String commercialOpportunityName;
+    /**
+     * 电站名称
+     */
+    private String powerStationName;
+    /**
+     * 物料编号
+     */
+    private String materialCode;
+    /**
+     * 物料名称
+     */
+    private String materialName;
+    /**
+     * WBS
+     */
+    private String wbs;
+    /**
+     * 发货数量
+     */
+    private String num;
+    /**
+     * 出库数量
+     */
+    private String outNum;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 市
+     */
+    private String city;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 开始时间
+     */
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    private String endTime;
+    /**
+     * 页数
+     */
+    private int page;
+    /**
+     * 条数
+     */
+    private int limit;
+}

+ 18 - 0
src/main/java/com/tld/service/TraceBackService.java

@@ -0,0 +1,18 @@
+package com.tld.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.tld.model.TraceBack;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+public interface TraceBackService {
+    void importExcel(List<TraceBack> list);
+
+    Map<String, Object> delTraceBack(String id);
+
+    Map<String, Object> getTraceBack(TraceBack traceBack);
+
+    void export(TraceBack traceBack, HttpServletResponse response);
+}

+ 1 - 1
src/main/java/com/tld/service/impl/AskGoodsServiceImpl.java

@@ -169,7 +169,7 @@ public class AskGoodsServiceImpl implements AskGoodsService {
             for(Inventory inventory : askGoodsMapper.getMaterialCk(askGoods)){
                 AskGoods askGoods1 = askGoodsMapper.getAsk(inventory);
                 if(askGoods1 != null){
-                    if(  Double.doubleToLongBits(Double.parseDouble(askGoods1.getNum()))  != Double.doubleToLongBits(Double.parseDouble(inventory.getAmount())) ){
+                    if(Double.doubleToLongBits(Double.parseDouble(askGoods1.getNum()))  != Double.doubleToLongBits(Double.parseDouble(inventory.getAmount())) ){
                         list.add(inventory);
                     }
                 } else {

+ 92 - 0
src/main/java/com/tld/service/impl/TraceBackServiceImpl.java

@@ -0,0 +1,92 @@
+package com.tld.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.tld.excel.ExcelUtils;
+import com.tld.mapper.TraceBackMapper;
+import com.tld.model.TraceBack;
+import com.tld.service.TraceBackService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Service
+public class TraceBackServiceImpl implements TraceBackService {
+
+    @Autowired
+    private TraceBackMapper traceBackMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void importExcel(List<TraceBack> list) {
+        traceBackMapper.importExcel(list);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> delTraceBack(String id) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            List<TraceBack> list = traceBackMapper.getTraceBack(new TraceBack().setId(id));
+            TraceBack traceBack = list.get(0);
+            if(!traceBack.getOutNum().equals("0")){
+                map.put("msg", "500");
+                map.put("errMsg","此订单已出库,无法删除!");
+                return map;
+            }
+            traceBackMapper.delTraceBack(id);
+        }catch (Exception e){
+            map.put("msg", "500");
+            map.put("errMsg","服务器请求异常,请稍后再试");
+            e.printStackTrace();
+        }
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> getTraceBack(TraceBack traceBack) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            PageHelper.startPage(traceBack.getPage(), traceBack.getLimit());
+            PageInfo<TraceBack> list = new PageInfo<>(traceBackMapper.getTraceBack(traceBack));
+            map.put("data", list);
+            map.put("msg", "200");
+        }catch (Exception e){
+            map.put("msg", "500");
+            map.put("errMsg","服务器请求异常,请稍后再试");
+            e.printStackTrace();
+        }
+        return map;
+    }
+
+    @Override
+    public void export(TraceBack traceBack, HttpServletResponse response) {
+        try{
+            //导出数据汇总
+            List<List<Object>> sheetDataList = new ArrayList<>();
+            //表头数据
+            List<Object> head = Arrays.asList("交货单号(发货任务号)", "发货日期", "订单类型", "销售订单编号", "负责子公司", "销售公司编号",
+                    "销售部门名称", "客户名称", "商机编号", "商机名称", "电站名称", "物料编号", "物料名称", "WBS编号", "发货数量", "省", "市", "详细地址");
+            //查询数据
+            List<Map<String, Object>> list = traceBackMapper.export(traceBack);
+            sheetDataList.add(head);
+            for(Map<String, Object> userMap : list){
+                List<Object> listSheet = new ArrayList<>();
+                for(String key: userMap.keySet()){
+                    listSheet.add(userMap.get(key));
+                }
+                sheetDataList.add(listSheet);
+            }
+            //当前时间
+            Date time = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss");
+            ExcelUtils.export(response, "发货任务" + sdf.format(time), sheetDataList);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+}

+ 8 - 8
src/main/resources/application.yml

@@ -16,16 +16,16 @@ spring:
         master:
           username: root
           password: "#09SilverB"
-          url: jdbc:mysql://10.2.111.91:3306/tld?useUnicode=true&characterEncoding=utf-8&useSSL=true&rewriteBatchedStatements=true&allowMultiQueries=true
+          url: jdbc:mysql://8.142.144.205:3306/tld?useUnicode=true&characterEncoding=utf-8&useSSL=true&rewriteBatchedStatements=true&allowMultiQueries=true
           driver-class-name: com.mysql.cj.jdbc.Driver
         # 从数据源
-        slave:
-          # 从数据源开关/默认关闭
-          enabled: true
-          url: jdbc:mysql://10.2.111.92:3306/tld?useUnicode=true&characterEncoding=utf-8&useSSL=true&rewriteBatchedStatements=true&allowMultiQueries=true
-          username: root
-          password: "#09SilverB"
-          driver-class-name: com.mysql.cj.jdbc.Driver
+#        slave:
+#          # 从数据源开关/默认关闭
+#          enabled: true
+#          url: jdbc:mysql://10.2.111.92:3306/tld?useUnicode=true&characterEncoding=utf-8&useSSL=true&rewriteBatchedStatements=true&allowMultiQueries=true
+#          username: root
+#          password: "#09SilverB"
+#          driver-class-name: com.mysql.cj.jdbc.Driver
         # sqlserver
 #        ds2:
 #          username: sa

+ 1 - 1
src/main/resources/mapper/AskGoodsMapper.xml

@@ -191,7 +191,7 @@
         FROM tld_ask_goods_vitrual a
                  join tld_material b on a.wllb_code = b.code and b.tld_id = #{materialId}
         where a.storage_location_code = #{storageLocationCode}
-          and a.serial = #{serial}
+          and a.serial = #{serial} and wbs = #{wbs} and account_sleeve = #{companyNumber}
     </select>
     <!-- 查询是否扫描 -->
     <select id="getScanIsNot" resultType="java.util.Map">

+ 194 - 0
src/main/resources/mapper/TraceBackMapper.xml

@@ -0,0 +1,194 @@
+<?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.tld.mapper.TraceBackMapper">
+    <!-- 新增销售发货单 -->
+    <insert id="importExcel">
+        insert into tld_trace_back(delivery_order,delivery_time,delivery_type,delivery_code,subsidiary_code,delivery_company,delivery_department,
+                                   customer_name,commercial_opportunity_code,commercial_opportunity_name,power_station_name,material_code,material_name,wbs,num,out_num,province,city,address)
+                                   values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.deliveryOrder},#{item.deliveryTime},#{item.deliveryType},#{item.deliveryCode},#{item.subsidiaryName},#{item.deliveryCompany},#{item.deliveryDepartment},#{item.customerName},#{item.commercialOpportunityCode},#{item.commercialOpportunityName}
+            ,#{item.powerStationName},#{item.materialCode},#{item.materialName},#{item.wbs},#{item.num},"0",#{item.province},#{item.city},#{item.address})
+        </foreach>
+    </insert>
+    <!-- 查询销售发货单 -->
+    <select id="getTraceBack" resultType="com.tld.model.TraceBack">
+        select
+            id,
+            delivery_order,
+            delivery_time,
+            delivery_type,
+            delivery_code,
+            subsidiary_code,
+            delivery_company,
+            delivery_department,
+            customer_name,
+            commercial_opportunity_code,
+            commercial_opportunity_name,
+            power_station_name,
+            material_code,
+            material_name,
+            wbs,
+            num,
+            out_num,
+            province,
+            city,
+            address
+        from tld_trace_back
+        <trim prefix="WHERE" prefixOverrides="and |or">
+            <if test="id != null and id != ''">
+                and id = #{id}
+            </if>
+            <if test="deliveryOrder != null and deliveryOrder != ''">
+                and delivery_order like CONCAT(CONCAT('%', #{deliveryOrder}), '%')
+            </if>
+            <if test="startTime != null and startTime != ''">
+                and delivery_time <![CDATA[>=]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                and delivery_time <![CDATA[<=]]> #{endTime}
+            </if>
+            <if test="deliveryType != null and deliveryType != ''">
+                and delivery_type like CONCAT(CONCAT('%', #{deliveryType}), '%')
+            </if>
+            <if test="deliveryCode != null and deliveryCode != ''">
+                and delivery_code like CONCAT(CONCAT('%', #{deliveryCode}), '%')
+            </if>
+            <if test="subsidiaryName != null and subsidiaryName != ''">
+                and subsidiary_code = #{subsidiaryName}
+            </if>
+            <if test="deliveryCompany != null and deliveryCompany != ''">
+                and delivery_company = #{deliveryCompany}
+            </if>
+            <if test="deliveryDepartment != null and deliveryDepartment != ''">
+                and delivery_department like CONCAT(CONCAT('%', #{deliveryDepartment}), '%')
+            </if>
+            <if test="customerName != null and customerName != ''">
+                and customer_name like CONCAT(CONCAT('%', #{customerName}), '%')
+            </if>
+            <if test="commercialOpportunityCode != null and commercialOpportunityCode != ''">
+                and commercial_opportunity_code like CONCAT(CONCAT('%', #{commercialOpportunityCode}), '%')
+            </if>
+            <if test="commercialOpportunityName != null and commercialOpportunityName != ''">
+                and commercial_opportunity_name like CONCAT(CONCAT('%', #{commercialOpportunityName}), '%')
+            </if>
+            <if test="powerStationName != null and powerStationName != ''">
+                and power_station_name like CONCAT(CONCAT('%', #{powerStationName}), '%')
+            </if>
+            <if test="materialCode != null and materialCode != ''">
+                and material_code = #{materialCode}
+            </if>
+            <if test="materialName != null and materialName != ''">
+                and material_name = #{materialName}
+            </if>
+            <if test="wbs != null and wbs != ''">
+                and wbs like CONCAT(CONCAT('%', #{wbs}), '%')
+            </if>
+            <if test="province != null and province != ''">
+                and province like CONCAT(CONCAT('%', #{province}), '%')
+            </if>
+            <if test="city != null and city != ''">
+                and city like CONCAT(CONCAT('%', #{city}), '%')
+            </if>
+            <if test="address != null and address != ''">
+                and address like CONCAT(CONCAT('%', #{address}), '%')
+            </if>
+            <if test="num != null and num != ''">
+                and (num + 0) <![CDATA[>]]> out_num
+            </if>
+        </trim>
+        order by id desc
+    </select>
+    <!-- 删除交货单 -->
+    <delete id="delTraceBack">
+        delete from tld_trace_back where id = #{id}
+    </delete>
+    <!-- 导出查询 -->
+    <select id="export" resultType="java.util.LinkedHashMap">
+        select
+            delivery_order,
+            delivery_time,
+            delivery_type,
+            delivery_code,
+            subsidiary_code,
+            delivery_company,
+            delivery_department,
+            customer_name,
+            commercial_opportunity_code,
+            commercial_opportunity_name,
+            power_station_name,
+            material_code,
+            material_name,
+            wbs,
+            num,
+            out_num,
+            province,
+            city,
+            address
+        from tld_trace_back
+        <trim prefix="WHERE" prefixOverrides="and |or">
+            <if test="id != null and id != ''">
+                and id = #{id}
+            </if>
+            <if test="deliveryOrder != null and deliveryOrder != ''">
+                and delivery_order like CONCAT(CONCAT('%', #{deliveryOrder}), '%')
+            </if>
+            <if test="startTime != null and startTime != ''">
+                and delivery_time <![CDATA[>=]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                and delivery_time <![CDATA[<=]]> #{endTime}
+            </if>
+            <if test="deliveryType != null and deliveryType != ''">
+                and delivery_type like CONCAT(CONCAT('%', #{deliveryType}), '%')
+            </if>
+            <if test="deliveryCode != null and deliveryCode != ''">
+                and delivery_code like CONCAT(CONCAT('%', #{deliveryCode}), '%')
+            </if>
+            <if test="subsidiaryName != null and subsidiaryName != ''">
+                and subsidiary_code = #{subsidiaryName}
+            </if>
+            <if test="deliveryCompany != null and deliveryCompany != ''">
+                and delivery_company = #{deliveryCompany}
+            </if>
+            <if test="deliveryDepartment != null and deliveryDepartment != ''">
+                and delivery_department like CONCAT(CONCAT('%', #{deliveryDepartment}), '%')
+            </if>
+            <if test="customerName != null and customerName != ''">
+                and customer_name like CONCAT(CONCAT('%', #{customerName}), '%')
+            </if>
+            <if test="commercialOpportunityCode != null and commercialOpportunityCode != ''">
+                and commercial_opportunity_code like CONCAT(CONCAT('%', #{commercialOpportunityCode}), '%')
+            </if>
+            <if test="commercialOpportunityName != null and commercialOpportunityName != ''">
+                and commercial_opportunity_name like CONCAT(CONCAT('%', #{commercialOpportunityName}), '%')
+            </if>
+            <if test="powerStationName != null and powerStationName != ''">
+                and power_station_name like CONCAT(CONCAT('%', #{powerStationName}), '%')
+            </if>
+            <if test="materialCode != null and materialCode != ''">
+                and material_code = #{materialCode}
+            </if>
+            <if test="materialName != null and materialName != ''">
+                and material_name = #{materialName}
+            </if>
+            <if test="wbs != null and wbs != ''">
+                and wbs like CONCAT(CONCAT('%', #{wbs}), '%')
+            </if>
+            <if test="province != null and province != ''">
+                and province like CONCAT(CONCAT('%', #{province}), '%')
+            </if>
+            <if test="city != null and city != ''">
+                and city like CONCAT(CONCAT('%', #{city}), '%')
+            </if>
+            <if test="address != null and address != ''">
+                and address like CONCAT(CONCAT('%', #{address}), '%')
+            </if>
+            <if test="num != null and num != ''">
+                and (num + 0) <![CDATA[>]]> out_num
+            </if>
+        </trim>
+        order by id desc
+    </select>
+</mapper>