浏览代码

2024年6月5日15:48:26

纪新园 1 年之前
父节点
当前提交
9ef1437d3c
共有 17 个文件被更改,包括 684 次插入53 次删除
  1. 22 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TCorpsController.java
  2. 24 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TGoodsController.java
  3. 31 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TWarehouseController.java
  4. 14 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java
  5. 34 0
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/TWarehouseImport.java
  6. 49 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TCorpsImport.java
  7. 65 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TGoodsImport.java
  8. 2 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITCorpsService.java
  9. 3 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITGoodsService.java
  10. 3 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITWarehouseService.java
  11. 65 20
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TCorpsServiceImpl.java
  12. 58 13
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TGoodsServiceImpl.java
  13. 55 5
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TWarehouseServiceImpl.java
  14. 12 0
      ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/domain/TWhgenleg.java
  15. 2 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java
  16. 235 10
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java
  17. 10 3
      ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

+ 22 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TCorpsController.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.warehouse.basicData;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.basicData.domain.TCorps;
+import com.ruoyi.basicData.domain.TCorpsImport;
 import com.ruoyi.basicData.service.ITCorpsService;
 import com.ruoyi.basicData.service.ITCorpsService;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.annotation.RepeatSubmit;
@@ -14,10 +15,13 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.shipping.excel.TWarehousebillsCntritemsExcel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -146,4 +150,22 @@ public class TCorpsController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] fIds) {
     public AjaxResult remove(@PathVariable Long[] fIds) {
         return tCorpsService.deleteTCorpsByIds(fIds);
         return tCorpsService.deleteTCorpsByIds(fIds);
     }
     }
+    /**
+     * 下载客户信息导入模板
+     */
+    @GetMapping("/importCorpsTemplate")
+    public AjaxResult importCorpsTemplate()
+    {
+        ExcelUtil<TCorpsImport> util = new ExcelUtil<TCorpsImport>(TCorpsImport.class);
+        return util.exportExcel(new ArrayList<>(),"客户信息数据模板");
+    }
+
+    /**
+     * 导入【客户信息】Excel
+     */
+    @PostMapping(value = "/importCorps")
+    public AjaxResult importCorps(@RequestParam("file") MultipartFile file)
+    {
+        return tCorpsService.importCorps(file);
+    }
 }
 }

+ 24 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TGoodsController.java

@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.warehouse.basicData;
 package com.ruoyi.web.controller.warehouse.basicData;
 
 
+import com.ruoyi.basicData.domain.TCorpsImport;
 import com.ruoyi.basicData.domain.TGoods;
 import com.ruoyi.basicData.domain.TGoods;
+import com.ruoyi.basicData.domain.TGoodsImport;
 import com.ruoyi.basicData.service.ITGoodsService;
 import com.ruoyi.basicData.service.ITGoodsService;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.annotation.RepeatSubmit;
@@ -13,7 +15,9 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -103,4 +107,24 @@ public class TGoodsController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] fIds) {
     public AjaxResult remove(@PathVariable Long[] fIds) {
         return tGoodsService.deleteTGoodsByIds(fIds);
         return tGoodsService.deleteTGoodsByIds(fIds);
     }
     }
+
+
+    /**
+     * 下载商品信息导入模板
+     */
+    @GetMapping("/importGoodsTemplate")
+    public AjaxResult importGoodsTemplate()
+    {
+        ExcelUtil<TGoodsImport> util = new ExcelUtil<>(TGoodsImport.class);
+        return util.exportExcel(new ArrayList<>(),"商品信息数据模板");
+    }
+
+    /**
+     * 导入【商品信息】Excel
+     */
+    @PostMapping(value = "/importGoods")
+    public AjaxResult importGoods(@RequestParam("file") MultipartFile file)
+    {
+        return tGoodsService.importGoods(file);
+    }
 }
 }

+ 31 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TWarehouseController.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.warehouse.basicData;
 
 
 
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.ruoyi.basicData.domain.TCorpsImport;
 import com.ruoyi.basicData.service.ITWarehouseService;
 import com.ruoyi.basicData.service.ITWarehouseService;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.annotation.RepeatSubmit;
@@ -9,6 +10,7 @@ import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.TWarehouse;
 import com.ruoyi.common.core.domain.entity.TWarehouse;
+import com.ruoyi.common.core.domain.entity.TWarehouseImport;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -24,7 +26,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -64,6 +68,16 @@ public class TWarehouseController extends BaseController {
     }
     }
 
 
     /**
     /**
+     * 查询仓库列表
+     */
+    @GetMapping("/listPage")
+    public AjaxResult listPage(TWarehouse tWarehouse) {
+         startPage();
+        List<TWarehouse> list = tWarehouseService.selectTWarehouseList(tWarehouse);
+        return AjaxResult.success(list);
+    }
+
+    /**
      * 仓库懒加载列表
      * 仓库懒加载列表
      */
      */
     @PreAuthorize("@ss.hasPermi('basicdata:warehouse:list')")
     @PreAuthorize("@ss.hasPermi('basicdata:warehouse:list')")
@@ -258,5 +272,22 @@ public class TWarehouseController extends BaseController {
         return AjaxResult.success(tWarehouseService.buildDeptTreeSelect(tWarehouses));
         return AjaxResult.success(tWarehouseService.buildDeptTreeSelect(tWarehouses));
     }
     }
 
 
+    /**
+     * 下载仓库信息导入模板
+     */
+    @GetMapping("/importTWarehouseTemplate")
+    public AjaxResult importTWarehouseTemplate()
+    {
+        ExcelUtil<TWarehouseImport> util = new ExcelUtil<>(TWarehouseImport.class);
+        return util.exportExcel(new ArrayList<>(),"仓库信息数据模板");
+    }
 
 
+    /**
+     * 导入【仓库信息】Excel
+     */
+    @PostMapping(value = "/importTWarehouse")
+    public AjaxResult importTWarehouse(@RequestParam("file") MultipartFile file,@RequestParam("parentId") Long parentId)
+    {
+        return tWarehouseService.importTWarehouse(file,parentId);
+    }
 }
 }

+ 14 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java

@@ -89,9 +89,10 @@ public class TWarehouseInStockController extends BaseController {
         String filePath = "";
         String filePath = "";
         try {
         try {
             // 文件名
             // 文件名
-            String fileName = "入库模板.xlsx";
+//            String fileName = "入库模板.xlsx";
+            String fileName = "入库模板-绿辰.xlsx";
             // 请求地址以及文件名转换
             // 请求地址以及文件名转换
-            String url = "http://121.36.212.131:8080/file/" + URLEncoder.encode(fileName, "UTF-8");
+            String url = "https://ck.hturing.com/profile/" + URLEncoder.encode(fileName, "UTF-8");
             // 下载文件并返回文件名
             // 下载文件并返回文件名
             filePath = downLoadFromUrl(url, fileName, RuoYiConfig.getDownloadPath());
             filePath = downLoadFromUrl(url, fileName, RuoYiConfig.getDownloadPath());
         } catch (Exception e) {
         } catch (Exception e) {
@@ -193,6 +194,17 @@ public class TWarehouseInStockController extends BaseController {
     }
     }
 
 
     /**
     /**
+     * 导入【入库明细箱信息】Excel
+     * 待完成
+     */
+    @PostMapping(value = "/importInstockV1")
+    public AjaxResult importInstockV1(@RequestParam("file") MultipartFile file,@RequestParam(value = "fWarehouseid",required = false) Long fWarehouseid
+            ,@RequestParam(value = "billId",required = false) Long billId) {
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.importLibraryInformationV1(file,fWarehouseid,billId,loginUser);
+    }
+
+    /**
      * 入库暂存
      * 入库暂存
      */
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")

+ 34 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/TWarehouseImport.java

@@ -0,0 +1,34 @@
+package com.ruoyi.common.core.domain.entity;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 仓库对象 t_warehouse
+ *
+ * @author ruoyi
+ * @date 2021-01-07fGoodsType
+ */
+@Data
+public class TWarehouseImport extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Excel(name = "编号")
+    private String fNo;
+
+    /**
+     * 名称
+     */
+    @Excel(name = "名称")
+    private String fName;
+
+    /**
+     * 简称
+     */
+    @Excel(name = "简称")
+    private String fCname;
+}

+ 49 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TCorpsImport.java

@@ -0,0 +1,49 @@
+package com.ruoyi.basicData.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+
+/**
+ * 客户详情对象 t_corps
+ *
+ * @author ruoyi
+ * @date 2020-12-11
+ */
+@Data
+public class TCorpsImport extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 客户类别(拼接起来的)
+     */
+    @Excel(name = "客户类别")
+    private String fTypename;
+
+    /**
+     * 编号
+     */
+    @Excel(name = "编号")
+    private String fNo;
+
+    /**
+     * 名称
+     */
+    @Excel(name = "名称")
+    private String fName;
+
+    /**
+     * 简称
+     */
+    @Excel(name = "简称")
+    private String fCname;
+
+    /**
+     * 电话
+     */
+    @Excel(name = "电话")
+    private String fTel;
+
+
+}

+ 65 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TGoodsImport.java

@@ -0,0 +1,65 @@
+package com.ruoyi.basicData.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 商品详情对象 t_goods
+ *
+ * @author ruoyi
+ * @date 2020-12-11
+ */
+@Data
+public class TGoodsImport extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Excel(name = "编号")
+    private String fNo;
+
+    /**
+     * 名称
+     */
+    @Excel(name = "名称")
+    private String fName;
+
+    /**
+     * 规格
+     */
+    @Excel(name = "规格")
+    private String fSpecs;
+
+    /**
+     * 账册序号
+     */
+    @Excel(name = "备案序号")
+    private String fEmsSeqNo;
+    /**
+     * 海关编码
+     */
+    @Excel(name = "海关编码")
+    private String fHscode;
+
+    /**
+     * 申报单位(申报计量单位)
+     */
+    @Excel(name = "申报单位")
+    private String fWmsDclUnit;
+
+    /**
+     * 法定单位(法定计量单位)
+     */
+    @Excel(name = "法定单位")
+    private String fWmsLawUnit;
+
+    /**
+     * 包装类型,存储id 显示名称 下拉选择类型,一个商品名称对应一个包装类型,对应t_package的f_id
+     */
+    @Excel(name = "包装类型")
+    private String fPackageid;
+
+
+}

+ 2 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITCorpsService.java

@@ -3,6 +3,7 @@ package com.ruoyi.basicData.service;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -143,4 +144,5 @@ public interface ITCorpsService {
      */
      */
     public List<Map<String, Object>> biCustomerList();
     public List<Map<String, Object>> biCustomerList();
 
 
+    AjaxResult importCorps(MultipartFile file);
 }
 }

+ 3 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITGoodsService.java

@@ -2,6 +2,7 @@ package com.ruoyi.basicData.service;
 
 
 import com.ruoyi.basicData.domain.TGoods;
 import com.ruoyi.basicData.domain.TGoods;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.AjaxResult;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -78,4 +79,6 @@ public interface ITGoodsService {
      * @return
      * @return
      */
      */
     public List<Map<String,Object>> getGoodName();
     public List<Map<String,Object>> getGoodName();
+
+    AjaxResult importGoods(MultipartFile file);
 }
 }

+ 3 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITWarehouseService.java

@@ -13,6 +13,7 @@ import com.ruoyi.warehouseBusiness.domain.vo.WarehouseInfoVO;
 import com.ruoyi.warehouseBusiness.request.InventoryQueryRequest;
 import com.ruoyi.warehouseBusiness.request.InventoryQueryRequest;
 import com.ruoyi.warehouseBusiness.response.InventoryQueryResponse;
 import com.ruoyi.warehouseBusiness.response.InventoryQueryResponse;
 import com.ruoyi.warehouseBusiness.response.InventoryQueryTwoResponse;
 import com.ruoyi.warehouseBusiness.response.InventoryQueryTwoResponse;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -316,4 +317,6 @@ public interface ITWarehouseService {
      * 根据用户绑定的仓库查询仓库下拉
      * 根据用户绑定的仓库查询仓库下拉
      */
      */
     List<TWarehouse> nominateTreeselect(TWarehouse tWarehouse);
     List<TWarehouse> nominateTreeselect(TWarehouse tWarehouse);
+
+    AjaxResult importTWarehouse(MultipartFile file,Long parentId);
 }
 }

+ 65 - 20
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TCorpsServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.basicData.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.basicData.domain.TCorps;
+import com.ruoyi.basicData.domain.TCorpsImport;
 import com.ruoyi.basicData.domain.TCustomerContact;
 import com.ruoyi.basicData.domain.TCustomerContact;
 import com.ruoyi.basicData.mapper.TCorpsMapper;
 import com.ruoyi.basicData.mapper.TCorpsMapper;
 import com.ruoyi.basicData.mapper.TCustomerContactMapper;
 import com.ruoyi.basicData.mapper.TCustomerContactMapper;
@@ -10,13 +11,13 @@ import com.ruoyi.basicData.service.ITCorpsService;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.SysUserRole;
 import com.ruoyi.system.domain.SysUserRole;
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
@@ -26,10 +27,12 @@ import com.ruoyi.warehouseBusiness.domain.TEnclosure;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.mapper.TEnclosureMapper;
 import com.ruoyi.warehouseBusiness.mapper.TEnclosureMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.*;
 import java.util.*;
 
 
@@ -80,7 +83,7 @@ public class TCorpsServiceImpl implements ITCorpsService {
             return AjaxResult.error("未找到信息");
             return AjaxResult.error("未找到信息");
         }
         }
         map.put("corp", tCorps);
         map.put("corp", tCorps);
-       // List<TCustomerContact> customerContactList = tCustomerContactMapper.selectList(new EntityWrapper<TCustomerContact>().eq("f_pid", fId));
+        // List<TCustomerContact> customerContactList = tCustomerContactMapper.selectList(new EntityWrapper<TCustomerContact>().eq("f_pid", fId));
         TCustomerContact tCustomerContact = new TCustomerContact();
         TCustomerContact tCustomerContact = new TCustomerContact();
         tCustomerContact.setfPid(fId);
         tCustomerContact.setfPid(fId);
         map.put("customerContact", tCustomerContactMapper.selectTCustomerContactList(tCustomerContact));
         map.put("customerContact", tCustomerContactMapper.selectTCustomerContactList(tCustomerContact));
@@ -108,7 +111,7 @@ public class TCorpsServiceImpl implements ITCorpsService {
     @Override
     @Override
     public List<TCorps> selectTCorpsList(TCorps tCorps) {
     public List<TCorps> selectTCorpsList(TCorps tCorps) {
         if (StringUtils.isNotEmpty(tCorps.getfTypeid())) {
         if (StringUtils.isNotEmpty(tCorps.getfTypeid())) {
-            tCorps.setfTypeid("\""+tCorps.getfTypeid()+"\"");
+            tCorps.setfTypeid("\"" + tCorps.getfTypeid() + "\"");
         }
         }
         return tCorpsMapper.selectTCorpsList(tCorps);
         return tCorpsMapper.selectTCorpsList(tCorps);
     }
     }
@@ -120,13 +123,14 @@ public class TCorpsServiceImpl implements ITCorpsService {
 
 
     @Override
     @Override
     public AjaxResult selectAgreementCorpListNoParams() {
     public AjaxResult selectAgreementCorpListNoParams() {
-        Map<String,Object> map = new HashMap<>();
-        map.put("corpList",tCorpsMapper.selectAgreementCorpListNoData());
+        Map<String, Object> map = new HashMap<>();
+        map.put("corpList", tCorpsMapper.selectAgreementCorpListNoData());
         return AjaxResult.success(map);
         return AjaxResult.success(map);
     }
     }
 
 
     /**
     /**
-     *  车队使用,查询客户、司机信息、车队信息
+     * 车队使用,查询客户、司机信息、车队信息
+     *
      * @param fId
      * @param fId
      * @return
      * @return
      */
      */
@@ -136,7 +140,8 @@ public class TCorpsServiceImpl implements ITCorpsService {
     }
     }
 
 
     /**
     /**
-     *  车队使用,查询客户、车队信息
+     * 车队使用,查询客户、车队信息
+     *
      * @param tCorps
      * @param tCorps
      * @return
      * @return
      */
      */
@@ -167,16 +172,16 @@ public class TCorpsServiceImpl implements ITCorpsService {
             corps.setCreateTime(new Date());
             corps.setCreateTime(new Date());
             corps.setfStatus("0");
             corps.setfStatus("0");
             tCorpsMapper.insertTCorps(corps);
             tCorpsMapper.insertTCorps(corps);
-            fPid=corps.getfId();
+            fPid = corps.getfId();
         } else {
         } else {
-            fPid=corps.getfId();
+            fPid = corps.getfId();
             corps.setUpdateBy(user.getUserName());
             corps.setUpdateBy(user.getUserName());
             corps.setUpdateTime(new Date());
             corps.setUpdateTime(new Date());
-            if(corps.getfStatus().equals("1")){
-                TWarehouseBills tWarehouseBill =new TWarehouseBills();
+            if (corps.getfStatus().equals("1")) {
+                TWarehouseBills tWarehouseBill = new TWarehouseBills();
                 tWarehouseBill.setfCorpid(corps.getfId());
                 tWarehouseBill.setfCorpid(corps.getfId());
-                List<TWarehouseBills>   tWarehouseBillList=tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
-                if(tWarehouseBillList!=null && !tWarehouseBillList.isEmpty()){
+                List<TWarehouseBills> tWarehouseBillList = tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
+                if (tWarehouseBillList != null && !tWarehouseBillList.isEmpty()) {
                     return AjaxResult.error("客户在库存总账有记录不可变更状态");
                     return AjaxResult.error("客户在库存总账有记录不可变更状态");
                 }
                 }
             }
             }
@@ -306,10 +311,10 @@ public class TCorpsServiceImpl implements ITCorpsService {
     @Override
     @Override
     @Transactional
     @Transactional
     public AjaxResult updateTCorps(TCorps tCorps) {
     public AjaxResult updateTCorps(TCorps tCorps) {
-        TWarehouseBills tWarehouseBill =new TWarehouseBills();
+        TWarehouseBills tWarehouseBill = new TWarehouseBills();
         tWarehouseBill.setfCorpid(tCorps.getfId());
         tWarehouseBill.setfCorpid(tCorps.getfId());
-        List<TWarehouseBills>   tWarehouseBillList=tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
-        if(tWarehouseBillList!=null && !tWarehouseBillList.isEmpty()){
+        List<TWarehouseBills> tWarehouseBillList = tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
+        if (tWarehouseBillList != null && !tWarehouseBillList.isEmpty()) {
             return AjaxResult.error("客户在库存总账有记录不可变更状态");
             return AjaxResult.error("客户在库存总账有记录不可变更状态");
         }
         }
         tCorps.setUpdateTime(DateUtils.getNowDate());
         tCorps.setUpdateTime(DateUtils.getNowDate());
@@ -329,11 +334,11 @@ public class TCorpsServiceImpl implements ITCorpsService {
         //return tCorpsMapper.deleteTCorpsByIds(fIds);
         //return tCorpsMapper.deleteTCorpsByIds(fIds);
         // 查询仓库主表 是否有客户存在
         // 查询仓库主表 是否有客户存在
         int i = 1;
         int i = 1;
-        for(Long id:fIds){
-            TWarehouseBills tWarehouseBill =new TWarehouseBills();
+        for (Long id : fIds) {
+            TWarehouseBills tWarehouseBill = new TWarehouseBills();
             tWarehouseBill.setfCorpid(id);
             tWarehouseBill.setfCorpid(id);
-            List<TWarehouseBills>   tWarehouseBillList=tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
-            if(tWarehouseBillList!=null && !tWarehouseBillList.isEmpty()){
+            List<TWarehouseBills> tWarehouseBillList = tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
+            if (tWarehouseBillList != null && !tWarehouseBillList.isEmpty()) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("客户第" + i + "行仓库有货物不可删除");
                 return AjaxResult.error("客户第" + i + "行仓库有货物不可删除");
             }
             }
@@ -433,4 +438,44 @@ public class TCorpsServiceImpl implements ITCorpsService {
         return tCorpsMapper.biCustomerList(external);
         return tCorpsMapper.biCustomerList(external);
     }
     }
 
 
+    @Override
+    public AjaxResult importCorps(MultipartFile file) {
+        ExcelUtil<TCorpsImport> util = new ExcelUtil<>(TCorpsImport.class);
+        try {
+            LoginUser loginUser = SecurityUtils.getLoginUser();
+            List<TCorpsImport> tCorpsImportList = util.importExcel(file.getInputStream());
+            if (tCorpsImportList.isEmpty()) {
+                throw new RuntimeException("导入数据为空");
+            }
+            for (TCorpsImport item : tCorpsImportList) {
+                TCorps corps = new TCorps();
+                BeanUtils.copyProperties(item, corps);
+                if (UserConstants.NOT_UNIQUE.equals(this.checkUFNoUnique(corps))) {
+                    return AjaxResult.error("新增信息'" + corps.getfNo() + "'失败,编号已存在");
+                } else if (UserConstants.NOT_UNIQUE.equals(this.checkUFNnameUnique(corps))) {
+                    return AjaxResult.error("新增信息'" + corps.getfName() + "'失败,名称已存在");
+                } else if (UserConstants.NOT_UNIQUE.equals(this.checkUFCnameUnique(corps))) {
+                    return AjaxResult.error("新增信息'" + corps.getfCname() + "'失败,简称已存在");
+                }
+                corps.setDeptId("100");
+                SysUser user = loginUser.getUser();
+                TCorps tCorps1 = tCorpsMapper.checkFNoUnique(corps.getfNo());
+                if (tCorps1 == null) {
+                    corps.setCreateBy(user.getUserName());
+                    corps.setCreateTime(new Date());
+                    corps.setfStatus("0");
+                    tCorpsMapper.insertTCorps(corps);
+                } else {
+                    corps.setfId(tCorps1.getfId());
+                    corps.setUpdateBy(user.getUserName());
+                    corps.setUpdateTime(new Date());
+                    tCorpsMapper.updateTCorps(corps);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success();
+    }
+
 }
 }

+ 58 - 13
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TGoodsServiceImpl.java

@@ -2,24 +2,30 @@ package com.ruoyi.basicData.service.impl;
 
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.basicData.domain.TGoods;
 import com.ruoyi.basicData.domain.TGoods;
+import com.ruoyi.basicData.domain.TGoodsImport;
 import com.ruoyi.basicData.mapper.TGoodsMapper;
 import com.ruoyi.basicData.mapper.TGoodsMapper;
 import com.ruoyi.basicData.service.ITGoodsService;
 import com.ruoyi.basicData.service.ITGoodsService;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.reportManagement.domain.TWhgenleg;
 import com.ruoyi.reportManagement.domain.TWhgenleg;
 import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
 import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
-import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -72,7 +78,7 @@ public class TGoodsServiceImpl implements ITGoodsService {
     public int insertTGoods(TGoods tGoods) {
     public int insertTGoods(TGoods tGoods) {
         tGoods.setCreateTime(DateUtils.getNowDate());
         tGoods.setCreateTime(DateUtils.getNowDate());
         tGoods.setCreateBy(SecurityUtils.getUsername());
         tGoods.setCreateBy(SecurityUtils.getUsername());
-        if (ObjectUtils.isNull(tGoods.getStockWarning())){
+        if (ObjectUtils.isNull(tGoods.getStockWarning())) {
             tGoods.setStockWarning(new BigDecimal(0));
             tGoods.setStockWarning(new BigDecimal(0));
         }
         }
         return tGoodsMapper.insertTGoods(tGoods);
         return tGoodsMapper.insertTGoods(tGoods);
@@ -86,23 +92,23 @@ public class TGoodsServiceImpl implements ITGoodsService {
      */
      */
     @Override
     @Override
     public AjaxResult updateTGoods(TGoods tGoods) {
     public AjaxResult updateTGoods(TGoods tGoods) {
-        if(tGoods.getfStatus()!=null && tGoods.getfStatus().equals("1")){
-            TWarehousebillsitems tWarehousebillsitems =new TWarehousebillsitems();
+        if (tGoods.getfStatus() != null && tGoods.getfStatus().equals("1")) {
+            TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
             tWarehousebillsitems.setfGoodsid(tGoods.getfId());
             tWarehousebillsitems.setfGoodsid(tGoods.getfId());
-            List<TWarehousebillsitems> warehousebillsitemsList1 =tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
-            if(warehousebillsitemsList1!=null && !warehousebillsitemsList1.isEmpty()){
+            List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
+            if (warehousebillsitemsList1 != null && !warehousebillsitemsList1.isEmpty()) {
                 return AjaxResult.error("商品在库存总账有记录不可变更状态");
                 return AjaxResult.error("商品在库存总账有记录不可变更状态");
             }
             }
         }
         }
         TWhgenleg tWhgenleg = new TWhgenleg();
         TWhgenleg tWhgenleg = new TWhgenleg();
         tWhgenleg.setfGoodsid(tGoods.getfId());
         tWhgenleg.setfGoodsid(tGoods.getfId());
-        List<TWhgenleg> selectTWhgenlegList =tWhgenlegMapper.selectTWhgenlegV2(tWhgenleg);
+        List<TWhgenleg> selectTWhgenlegList = tWhgenlegMapper.selectTWhgenlegV2(tWhgenleg);
         for (TWhgenleg selectTWhgenleg : selectTWhgenlegList) {
         for (TWhgenleg selectTWhgenleg : selectTWhgenlegList) {
-            if (ObjectUtils.isNotNull(selectTWhgenleg) && selectTWhgenleg.getfQtyblc() != 0){
+            if (ObjectUtils.isNotNull(selectTWhgenleg) && selectTWhgenleg.getfQtyblc() != 0) {
                 return AjaxResult.error("该商品存在未出库库存,禁止修改");
                 return AjaxResult.error("该商品存在未出库库存,禁止修改");
             }
             }
         }
         }
-        if (ObjectUtils.isNull(tGoods.getStockWarning())){
+        if (ObjectUtils.isNull(tGoods.getStockWarning())) {
             tGoods.setStockWarning(new BigDecimal(0));
             tGoods.setStockWarning(new BigDecimal(0));
         }
         }
         tGoods.setUpdateTime(DateUtils.getNowDate());
         tGoods.setUpdateTime(DateUtils.getNowDate());
@@ -122,11 +128,11 @@ public class TGoodsServiceImpl implements ITGoodsService {
     public AjaxResult deleteTGoodsByIds(Long[] fIds) {
     public AjaxResult deleteTGoodsByIds(Long[] fIds) {
         // return tGoodsMapper.deleteTGoodsByIds(fIds);
         // return tGoodsMapper.deleteTGoodsByIds(fIds);
         int i = 1;
         int i = 1;
-        for(Long id:fIds){
-            TWarehousebillsitems tWarehousebillsitems =new TWarehousebillsitems();
+        for (Long id : fIds) {
+            TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
             tWarehousebillsitems.setfGoodsid(id);
             tWarehousebillsitems.setfGoodsid(id);
-            List<TWarehousebillsitems> warehousebillsitemsList1 =tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
-            if(warehousebillsitemsList1!=null && !warehousebillsitemsList1.isEmpty()){
+            List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
+            if (warehousebillsitemsList1 != null && !warehousebillsitemsList1.isEmpty()) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("商品第" + i + "行 仓库有货物不可删除");
                 return AjaxResult.error("商品第" + i + "行 仓库有货物不可删除");
             }
             }
@@ -169,4 +175,43 @@ public class TGoodsServiceImpl implements ITGoodsService {
     public List<Map<String, Object>> getGoodName() {
     public List<Map<String, Object>> getGoodName() {
         return tGoodsMapper.getGoodName();
         return tGoodsMapper.getGoodName();
     }
     }
+
+    @Override
+    public AjaxResult importGoods(MultipartFile file) {
+        ExcelUtil<TGoodsImport> util = new ExcelUtil<>(TGoodsImport.class);
+        try {
+            LoginUser loginUser = SecurityUtils.getLoginUser();
+            List<TGoodsImport> tCorpsImportList = util.importExcel(file.getInputStream());
+            if (tCorpsImportList.isEmpty()) {
+                throw new RuntimeException("导入数据为空");
+            }
+            for (TGoodsImport item : tCorpsImportList) {
+                TGoods goods = new TGoods();
+                BeanUtils.copyProperties(item, goods);
+                if (UserConstants.NOT_UNIQUE.equals(this.checkUFNoUnique(goods))) {
+                    return AjaxResult.error("新增商品'" + goods.getfNo() + "'失败,编号已存在");
+                } else if (UserConstants.NOT_UNIQUE.equals(this.checkUFNnameUnique(goods))) {
+                    return AjaxResult.error("新增商品'" + goods.getfName() + "'失败,名称已存在");
+                }
+                SysUser user = loginUser.getUser();
+                TGoods tGoods1 = tGoodsMapper.checkFNoUnique(goods.getfNo());
+                if (tGoods1 == null) {
+                    goods.setCreateTime(DateUtils.getNowDate());
+                    goods.setCreateBy(SecurityUtils.getUsername());
+                    if (ObjectUtils.isNull(goods.getStockWarning())) {
+                        goods.setStockWarning(new BigDecimal(0));
+                    }
+                    tGoodsMapper.insertTGoods(goods);
+                } else {
+                    goods.setfId(tGoods1.getfId());
+                    goods.setUpdateBy(user.getUserName());
+                    goods.setUpdateTime(new Date());
+                    tGoodsMapper.updateTGoods(goods);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success();
+    }
 }
 }

+ 55 - 5
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TWarehouseServiceImpl.java

@@ -17,11 +17,13 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.TWarehouse;
 import com.ruoyi.common.core.domain.entity.TWarehouse;
+import com.ruoyi.common.core.domain.entity.TWarehouseImport;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.exception.CustomException;
 import com.ruoyi.common.exception.CustomException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.mapper.TWarehouseUserMapper;
 import com.ruoyi.system.mapper.TWarehouseUserMapper;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.warehouseBusiness.domain.TAnnex;
 import com.ruoyi.warehouseBusiness.domain.TAnnex;
@@ -40,6 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
@@ -536,24 +539,24 @@ public class TWarehouseServiceImpl implements ITWarehouseService {
                                                                String materialQuality,
                                                                String materialQuality,
                                                                String level,
                                                                String level,
                                                                Integer pageNo,
                                                                Integer pageNo,
-                                                               Integer pageSize,String lockStatus) {
+                                                               Integer pageSize, String lockStatus) {
         if ("null".equals(warehouseCode)) {
         if ("null".equals(warehouseCode)) {
             warehouseCode = null;
             warehouseCode = null;
         }
         }
         return tWarehouseMapper.queryGoodsAccountByPageV1(warehouseCode, ownerSocialIdentifier, ownerCode, ownerName, goodsName, specifications,
         return tWarehouseMapper.queryGoodsAccountByPageV1(warehouseCode, ownerSocialIdentifier, ownerCode, ownerName, goodsName, specifications,
-                producing, materialQuality, level, pageNo, pageSize,lockStatus);
+                producing, materialQuality, level, pageNo, pageSize, lockStatus);
     }
     }
 
 
     @Override
     @Override
     public List<Map<String, Object>> queryGoodsAccountDetailByPageV1(String warehouseCode, String ownerName, String ownerCode, String ownerSocialIdentifier, String goodsName, String specifications,
     public List<Map<String, Object>> queryGoodsAccountDetailByPageV1(String warehouseCode, String ownerName, String ownerCode, String ownerSocialIdentifier, String goodsName, String specifications,
                                                                      String producing, String materialQuality, String level, String receiptDoc, String billOfLading,
                                                                      String producing, String materialQuality, String level, String receiptDoc, String billOfLading,
-                                                                     String areaName, String areaCode, String slotName, String slotCode,String goodsCode, Integer pageNo, Integer pageSize,String lockStatus) {
+                                                                     String areaName, String areaCode, String slotName, String slotCode, String goodsCode, Integer pageNo, Integer pageSize, String lockStatus) {
         if ("null".equals(warehouseCode)) {
         if ("null".equals(warehouseCode)) {
             warehouseCode = null;
             warehouseCode = null;
         }
         }
 
 
         List<Map<String, Object>> maps = tWarehouseMapper.queryGoodsAccountDetailByPageV1(warehouseCode, ownerName, ownerCode, ownerSocialIdentifier, goodsName, specifications,
         List<Map<String, Object>> maps = tWarehouseMapper.queryGoodsAccountDetailByPageV1(warehouseCode, ownerName, ownerCode, ownerSocialIdentifier, goodsName, specifications,
-                producing, materialQuality, level, receiptDoc, billOfLading, areaName, areaCode, slotName, slotCode,goodsCode, pageNo, pageSize,lockStatus);
+                producing, materialQuality, level, receiptDoc, billOfLading, areaName, areaCode, slotName, slotCode, goodsCode, pageNo, pageSize, lockStatus);
 
 
         for (Map<String, Object> map : maps) {
         for (Map<String, Object> map : maps) {
             if (map.get("storesTime") != null) {
             if (map.get("storesTime") != null) {
@@ -680,7 +683,8 @@ public class TWarehouseServiceImpl implements ITWarehouseService {
                 inventoryQueryRequest.getCurrentOwnerSocialIdentifier(),
                 inventoryQueryRequest.getCurrentOwnerSocialIdentifier(),
                 inventoryQueryRequest.getWarehouseSerialNumbers());
                 inventoryQueryRequest.getWarehouseSerialNumbers());
     }
     }
-/**
+
+    /**
      * 获取仓库详细信息
      * 获取仓库详细信息
      */
      */
     @Override
     @Override
@@ -770,6 +774,52 @@ public class TWarehouseServiceImpl implements ITWarehouseService {
     }
     }
 
 
     @Override
     @Override
+    public AjaxResult importTWarehouse(MultipartFile file, Long parentId) {
+        ExcelUtil<TWarehouseImport> util = new ExcelUtil<>(TWarehouseImport.class);
+        try {
+            List<TWarehouseImport> tCorpsImportList = util.importExcel(file.getInputStream());
+            if (tCorpsImportList.isEmpty()) {
+                throw new RuntimeException("导入数据为空");
+            }
+            for (TWarehouseImport item : tCorpsImportList) {
+                TWarehouse tWarehouse = new TWarehouse();
+                BeanUtils.copyProperties(item, tWarehouse);
+                if (UserConstants.NOT_UNIQUE.equals(this.checkNameUnique(tWarehouse))) {
+                    return AjaxResult.error("新增仓库'" + tWarehouse.getfNo() + "'失败,仓库已存在");
+                }
+                TWarehouse tWarehouse1 = tWarehouseMapper.getWarehouseByNo(tWarehouse.getfNo());
+                if (tWarehouse1 == null) {
+                    TWarehouse info = tWarehouseMapper.selectTWarehouseById(parentId);
+                    // 如果父节点不为正常状态,则不允许新增子节点
+                    if (!UserConstants.DEPT_NORMAL.equals(info.getfStatus())) {
+                        throw new CustomException("部门停用,不允许新增");
+                    }
+                    tWarehouse.setAncestors(info.getAncestors() + "," + parentId);
+                    // 所有节点转换成中文拼接
+                    String fWarehouseInformation = warehouseName(info.getAncestors() + "," + parentId, tWarehouse.getfName());
+                    tWarehouse.setfWarehouseInformation(fWarehouseInformation);
+                    tWarehouse.setfStatus("0");
+                    tWarehouseMapper.insertTWarehouse(tWarehouse);
+
+                    updateParentGross(tWarehouse.getAncestors());
+                } else {
+                    // 登录用户
+                    String username = SecurityUtils.getUsername();
+                    tWarehouse.setfId(tWarehouse1.getfId());
+                    tWarehouse.setUpdateBy(username);
+                    tWarehouseMapper.updateTWarehouse(tWarehouse);
+
+                    updateParentGross(tWarehouse.getAncestors());
+                    annexMapper.deleteByPid(tWarehouse.getfId(), AnnexActEnum.WAREHOUSE.getType());
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success();
+    }
+
+    @Override
     public String checkUFNoUnique(TWarehouse tWarehouse) {
     public String checkUFNoUnique(TWarehouse tWarehouse) {
         TWarehouse tWarehouse1 = tWarehouseMapper.checkFNoUnique(tWarehouse.getfNo());
         TWarehouse tWarehouse1 = tWarehouseMapper.checkFNoUnique(tWarehouse.getfNo());
         if (StringUtils.isNotNull(tWarehouse1) && !tWarehouse1.getfId().equals(tWarehouse.getfId())) {
         if (StringUtils.isNotNull(tWarehouse1) && !tWarehouse1.getfId().equals(tWarehouse.getfId())) {

+ 12 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/domain/TWhgenleg.java

@@ -60,6 +60,10 @@ public class TWhgenleg extends BaseEntity {
      */
      */
     private Long fWarehouseLocationid;
     private Long fWarehouseLocationid;
 
 
+    /** 仓库/库区/库位 */
+    @Excel(name = "仓库/库区/库位")
+    private String fWarehouseInformation;
+
     /**
     /**
      * 货物品名,t_goods 中的no或 name,模糊查找选择后,存储f_id,显示name
      * 货物品名,t_goods 中的no或 name,模糊查找选择后,存储f_id,显示name
      */
      */
@@ -303,6 +307,14 @@ public class TWhgenleg extends BaseEntity {
      */
      */
     private String checklists;
     private String checklists;
 
 
+    public String getfWarehouseInformation() {
+        return fWarehouseInformation;
+    }
+
+    public void setfWarehouseInformation(String fWarehouseInformation) {
+        this.fWarehouseInformation = fWarehouseInformation;
+    }
+
     public String getWarehouseInformation() {
     public String getWarehouseInformation() {
         return warehouseInformation;
         return warehouseInformation;
     }
     }

+ 2 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -969,4 +969,6 @@ public interface ITWarehouseBillsService {
      * @return
      * @return
      */
      */
     AjaxResult masterSuppressThePreservationOfGoods(TWarehouseBills warehouseBills);
     AjaxResult masterSuppressThePreservationOfGoods(TWarehouseBills warehouseBills);
+
+    AjaxResult importLibraryInformationV1(MultipartFile file, Long fWarehouseid,Long billId, LoginUser loginUser);
 }
 }

+ 235 - 10
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -3,7 +3,6 @@ package com.ruoyi.warehouseBusiness.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
@@ -32,7 +31,6 @@ import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.ip.AddressUtils;
 import com.ruoyi.common.utils.ip.AddressUtils;
 import com.ruoyi.common.utils.poi.DrawExcel;
 import com.ruoyi.common.utils.poi.DrawExcel;
 import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.common.utils.poi.ExcelUtils;
-import com.ruoyi.common.utils.sign.Md5Utils;
 import com.ruoyi.finance.domain.TFeeDo;
 import com.ruoyi.finance.domain.TFeeDo;
 import com.ruoyi.finance.mapper.TFeeDoMapper;
 import com.ruoyi.finance.mapper.TFeeDoMapper;
 import com.ruoyi.quotation.domain.TSeaprice;
 import com.ruoyi.quotation.domain.TSeaprice;
@@ -725,6 +723,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         TWhgenleg tWhgenleg = new TWhgenleg();
         TWhgenleg tWhgenleg = new TWhgenleg();
         if (WarehouseTypeEnum.SJRK.getType().equals(warehouseBills.getfBilltype())) {
         if (WarehouseTypeEnum.SJRK.getType().equals(warehouseBills.getfBilltype())) {
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
+            tWhgenleg.setfWarehouseInformation(warehousebillsitems.getfWarehouseInformation());
             if (StringUtils.isNotEmpty(warehouseBills.getfCustomno())) {
             if (StringUtils.isNotEmpty(warehouseBills.getfCustomno())) {
                 tWhgenleg.setfCustomno(warehouseBills.getfCustomno());
                 tWhgenleg.setfCustomno(warehouseBills.getfCustomno());
             }
             }
@@ -741,6 +740,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
         if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
                 WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
                 WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfOriginalbilldate());
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfOriginalbilldate());
+            tWhgenleg.setfWarehouseInformation(warehousebillsitems.getfWarehouseInformation());
             if (WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
             if (WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
                 tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
                 tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
             } else {
             } else {
@@ -861,6 +861,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         Long timestamp = DateUtils.getTimestamp(new Date());
         Long timestamp = DateUtils.getTimestamp(new Date());
         warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
         warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
         TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
         TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
+        TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(warehouseBills.getfWarehouseid());
         warehouseBills.setfQty(itemInFo.getfQty());
         warehouseBills.setfQty(itemInFo.getfQty());
         warehouseBills.setfNetweight(itemInFo.getfNetweight());
         warehouseBills.setfNetweight(itemInFo.getfNetweight());
         warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
         warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
@@ -949,6 +950,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     wbItem.setfBillingway(warehouseBills.getfBillingway());
                     wbItem.setfBillingway(warehouseBills.getfBillingway());
                     wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
                     wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
                 }
                 }
+                if (WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) {
+                    TWarehouse tWarehouse1 = tWarehouseMapper.selectTWarehouseById(wbItem.getfTransferWarehouselocid());
+                    wbItem.setfWarehouseInformation(tWarehouse.getfName() + "/" + tWarehouse1.getfName());
+                } else {
+                    TWarehouse tWarehouse1 = tWarehouseMapper.selectTWarehouseById(wbItem.getfWarehouselocid());
+                    wbItem.setfWarehouseInformation(tWarehouse.getfName() + "/" + tWarehouse1.getfName());
+                }
                 if (null != wbItem.getfId()) {
                 if (null != wbItem.getfId()) {
                     wbItem.setUpdateTime(wbItem.getfBsdate());
                     wbItem.setUpdateTime(wbItem.getfBsdate());
                     wbItem.setUpdateBy(loginUser.getUser().getUserName());
                     wbItem.setUpdateBy(loginUser.getUser().getUserName());
@@ -966,11 +974,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     wbItem.setfPid(fPid);
                     wbItem.setfPid(fPid);
                     wbItem.setCreateBy(loginUser.getUser().getUserName());
                     wbItem.setCreateBy(loginUser.getUser().getUserName());
                     wbItem.setCreateTime(new Date());
                     wbItem.setCreateTime(new Date());
-                    tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
                     if (!warehouseStatus) {
                     if (!warehouseStatus) {
                         // 添加状态log
                         // 添加状态log
                         insertTWarehousebillsLog(wbItem, 10L);
                         insertTWarehousebillsLog(wbItem, 10L);
                     }
                     }
+                    tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
                 }
                 }
 
 
                 // 获取前端是否传递电子标签数据
                 // 获取前端是否传递电子标签数据
@@ -1701,8 +1709,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
         JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
         int line = 0;
         int line = 0;
+        TWarehouse tWarehouseZ = tWarehouseMapper.selectTWarehouseById(warehouseBills.getfWarehouseid());
         for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
         for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
             line++;
             line++;
+            TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(wbItem.getfWarehouselocid());
+            if (tWarehouse != null) {
+                wbItem.setfWarehouseInformation(tWarehouseZ.getfName() + "/" + tWarehouse.getfName());
+            }
             if ("SJRK".equals(billsType) || "SJCK".equals(billsType) || WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) {
             if ("SJRK".equals(billsType) || "SJCK".equals(billsType) || WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) {
                 // 除了入库其他模块不需要更新主表的 仓储费计费日期到明细表,其他模块 应从库存总账把仓储费计费日期 赋给明细表
                 // 除了入库其他模块不需要更新主表的 仓储费计费日期到明细表,其他模块 应从库存总账把仓储费计费日期 赋给明细表
                 if ("SJRK".equals(billsType)) {
                 if ("SJRK".equals(billsType)) {
@@ -4811,7 +4824,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             } else if (WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) { // 调拨查询
             } else if (WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) { // 调拨查询
                 //校验计费日期是等于库存总帐计费日,如果不相等则报错
                 //校验计费日期是等于库存总帐计费日,如果不相等则报错
                 checkWhgenleg(wbItem, tWhgenle);
                 checkWhgenleg(wbItem, tWhgenle);
-                if (fCharg == 0) {
+                if (fCharg != 0) {
                     wbItem.setfChargedate(wbItem.getfBsdate());
                     wbItem.setfChargedate(wbItem.getfBsdate());
                 }
                 }
                 if (!Objects.equals(wbItem.getfWarehouselocid(), wbItem.getfTransferWarehouselocid())) {
                 if (!Objects.equals(wbItem.getfWarehouselocid(), wbItem.getfTransferWarehouselocid())) {
@@ -10422,9 +10435,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         reqBody.put("storageName", a.getStorageName());
         reqBody.put("storageName", a.getStorageName());
         reqBody.put("storageContractCode", a.getStorageContractCode());
         reqBody.put("storageContractCode", a.getStorageContractCode());
         List<SkuItem> skuItemList = a.getSkuItemList();
         List<SkuItem> skuItemList = a.getSkuItemList();
-        if (skuItemList.size() > 0) {
+        if (!skuItemList.isEmpty()) {
             TWarehouseBills tWarehouseBills = warehouseBillsMapper.selectBYOriginalBillNo(skuItemList.get(0).getEnterCode());
             TWarehouseBills tWarehouseBills = warehouseBillsMapper.selectBYOriginalBillNo(skuItemList.get(0).getEnterCode());
-            if (tWarehouseBills != null){
+            if (tWarehouseBills != null) {
                 if (ObjectUtils.isNull(tWarehouseBills.getfBsdate())) {
                 if (ObjectUtils.isNull(tWarehouseBills.getfBsdate())) {
                     throw new RuntimeException("入库日期不能为空");
                     throw new RuntimeException("入库日期不能为空");
                 }
                 }
@@ -10436,7 +10449,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 }
                 }
                 DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 reqBody.put("storagePayTime", df1.format(tWarehouseBills.getfChargedate()));
                 reqBody.put("storagePayTime", df1.format(tWarehouseBills.getfChargedate()));
-            }else{
+            } else {
                 reqBody.put("storageContractStart", a.getStorageContractStart());// 改
                 reqBody.put("storageContractStart", a.getStorageContractStart());// 改
                 reqBody.put("storagePayTime", a.getStoragePayTime());//改
                 reqBody.put("storagePayTime", a.getStoragePayTime());//改
             }
             }
@@ -10514,7 +10527,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 sysDictData.setDictValue(vo.getSpu());
                 sysDictData.setDictValue(vo.getSpu());
 
 
                 //是否保税
                 //是否保税
-                reqBody.put("whetherBonded", a.getWhetherBonded());
+                goodsMaps.put("taxType", a.getWhetherBonded());
                 goodsMaps.put("spuId", vo.getSpu());
                 goodsMaps.put("spuId", vo.getSpu());
                 goodsMaps.put("skuId", vo.getSku());
                 goodsMaps.put("skuId", vo.getSku());
                 goodsMaps.put("skuName", goods.getfName());
                 goodsMaps.put("skuName", goods.getfName());
@@ -10599,8 +10612,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         // 公钥
         // 公钥
         String appKey = "D0fJZ22Gn4BTE7qd";
         String appKey = "D0fJZ22Gn4BTE7qd";
         // 请求地址
         // 请求地址
-        String url = "https://sdpftz-console-test.pub.jdtiot.com/open/wms/receiptDistributeGoodsResult";
-//        String url = "https://sdpftz-console.ai-warehouse.com/open/wms/receiptDistributeGoodsResult";
+//        String url = "https://sdpftz-console-test.pub.jdtiot.com/open/wms/receiptDistributeGoodsResult";
+        String url = "https://sdpftz-console.ai-warehouse.com/open/wms/receiptDistributeGoodsResult";
 
 
         String appSecret = "Qrgx3tn2tGqdIkvwIK0rcdckdYDG3caF";
         String appSecret = "Qrgx3tn2tGqdIkvwIK0rcdckdYDG3caF";
 
 
@@ -10675,6 +10688,218 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return new AjaxResult(200, "保存成功");
         return new AjaxResult(200, "保存成功");
     }
     }
 
 
+    @Override
+    public AjaxResult importLibraryInformationV1(MultipartFile file, Long fWarehouseid, Long billId, LoginUser loginUser) {
+        List<TWarehousebillsitems> itemList = new ArrayList<>();
+        InputStream inputStream = null;
+        TWarehouse tWarehouseZ = tWarehouseMapper.selectTWarehouseById(fWarehouseid);
+        try {
+            inputStream = file.getInputStream();
+            String originalFilename = file.getOriginalFilename();
+            Workbook workbook = null;
+            if (originalFilename.endsWith("xls")) {
+                workbook = WorkbookFactory.create(inputStream);
+            } else if (originalFilename.endsWith("xlsx")) {
+                workbook = new XSSFWorkbook(inputStream);
+            } else {
+                return AjaxResult.error("文件后缀异常");
+            }
+            Sheet sheet = workbook.getSheetAt(0);
+            int line = 0;
+            for (Row rows : sheet) {
+                line++;
+                if (rows.getRowNum() == 0) {
+                    continue;
+                }
+                System.out.println("*****" + rows.getPhysicalNumberOfCells());
+                TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
+                for (int a = 0; a <= rows.getPhysicalNumberOfCells(); a++) {
+                    System.out.println("============" + rows.getCell(a));
+                    if (StringUtils.isNull(rows.getCell(a))) {
+                        continue;
+                    }
+                    Cell cell = rows.getCell(a);
+                    String value = filter(sheet.getRow(0), CellReference.convertNumToColString(cell.getColumnIndex()));
+                    switch (value) {
+                        case "货物名称":
+                            // 设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                TGoods tGoods = tGoodsMapper.getGoodsByName(cell.getStringCellValue());
+                                if (ObjectUtils.isNotNull(tGoods)) {
+                                    warehousebillsitems.setfGoodsid(tGoods.getfId());
+                                }
+                            }
+                            break;
+                        case "备案序号":
+                            // 设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                warehousebillsitems.setfBusinessType(5L);
+                                warehousebillsitems.setfMarks(cell.getStringCellValue());
+                            }
+                            break;
+                        case "件数":
+                            //设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                warehousebillsitems.setfPlanqty(Long.valueOf(cell.getStringCellValue()));
+                            }
+                            break;
+                        case "毛重":
+                            //设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                warehousebillsitems.setfPlangrossweight(new BigDecimal(cell.getStringCellValue()).setScale(2, BigDecimal.ROUND_HALF_UP));
+                            }
+                            break;
+                        case "净重":
+                            //设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                warehousebillsitems.setfPlannetweight(new BigDecimal(cell.getStringCellValue()).setScale(2, BigDecimal.ROUND_HALF_UP));
+                            }
+                            break;
+                        case "入库日期":
+                            //设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                                Date date = sdf.parse(cell.getStringCellValue());
+                                warehousebillsitems.setfBsdate(date);
+                            }
+                            break;
+                      /*  case "仓库":
+                            // 设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                    warehousebillsitems.setfWarehouseInformation(cell.getStringCellValue());
+                            }
+                            break;*/
+                        case "库位":
+                            // 设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue()) && ObjectUtils.isNotNull(fWarehouseid)) {
+                                TWarehouse tWarehouse = tWarehouseMapper.selectByPidANDName(cell.getStringCellValue(), fWarehouseid);
+                                if (ObjectUtils.isNotNull(tWarehouse)) {
+//                                    if (ObjectUtils.isNotNull(tWarehouse.getAncestors())) {
+//                                        String[] arrs = tWarehouse.getAncestors().split(",");
+//                                        String text = "";
+//                                        for (String arr : arrs) {
+//                                            tWarehouseMapper.selectTWarehouseById();
+//                                        }
+//                                    }
+                                    warehousebillsitems.setfWarehouselocid(tWarehouse.getfId());
+                                    warehousebillsitems.setfWarehouseInformation(tWarehouseZ.getfName() + "/" + tWarehouse.getfName());
+                                } else {
+                                    warehousebillsitems.setfWarehouselocid(null);
+                                    warehousebillsitems.setfWarehouseInformation(null);
+                                }
+                            }
+                            break;
+                        case "规格":
+                            //设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                warehousebillsitems.setfPackagespecs(cell.getStringCellValue());
+                            }
+                            break;
+                        case "批次号":
+                            //设置单元格类型
+                            cell.setCellType(CellType.STRING);
+                            if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
+                                warehousebillsitems.setfLocalcntrno(cell.getStringCellValue());
+                            }
+                            break;
+                    }
+                }
+                if (warehousebillsitems.getfGoodsid() != null) {
+                    itemList.add(warehousebillsitems);
+                }
+            }
+        } catch (IOException e) {
+            return AjaxResult.error("上传文件失败,请检查文件是否损坏");
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        StringBuilder errinfo = new StringBuilder();
+        int line = 1;
+        for (TWarehousebillsitems li : itemList) {
+            if (ObjectUtil.isEmpty(li.getfBusinessType())) {
+                errinfo.append("第").append(line).append("行备案序号为空,");
+            }
+            if (li.getfGoodsid() == null) {
+                errinfo.append("第").append(line).append("行货物名称为空,");
+            }
+            if (li.getfWarehouselocid() == null) {
+                errinfo.append("第").append(line).append("行库位为空,");
+            }
+            if (StringUtils.isNull(li.getfPlanqty())) {
+                errinfo.append("第").append(line).append("行预计件数为空,");
+            } else {
+                li.setfQty(li.getfPlanqty());
+            }
+            if (StringUtils.isNull(li.getfPlangrossweight())) {
+                errinfo.append("第").append(line).append("行预计毛重为空,");
+            } else {
+                li.setfGrossweight(li.getfPlangrossweight());
+            }
+            if (StringUtils.isNull(li.getfPlannetweight())) {
+                errinfo.append("第").append(line).append("行预计净重为空,");
+            } else {
+                li.setfNetweight(li.getfPlannetweight());
+            }
+            line++;
+        }
+        if (StringUtils.isEmpty(errinfo.toString())) {
+            TWarehouseBills warehouseBills = warehouseBillsMapper.selectTWarehousebillsById(billId);
+            Date mixDate = new Date();
+            if (CollectionUtils.isNotEmpty(itemList)) {
+                Date minDate = itemList.get(0).getfBsdate();
+                for (int i = 0; i < itemList.size(); i++) {
+                    Date date = itemList.get(i).getfBsdate();
+                    if (minDate.after(date)) {
+                        minDate = date;
+                    }
+                }
+                mixDate = minDate;
+            }
+            String billsType = "SJRK";
+            for (TWarehousebillsitems wbItem : itemList) {
+                // 仓储计费日期
+                wbItem.setfBilltype(billsType);
+                if (!this.getFchargedate(billId, wbItem.getfBsdate())) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
+                }
+                if ("1".equals(warehouseBills.getfChargetype())) {
+                    wbItem.setfChargedate(wbItem.getfBsdate());
+                } else if ("0".equals(warehouseBills.getfChargetype())) {
+                    Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(billId);
+                    if (fchargedate != null) {
+                        wbItem.setfChargedate(fchargedate);
+                    } else {
+                        wbItem.setfChargedate(mixDate);
+                    }
+                }
+                wbItem.setfBillingway(warehouseBills.getfBillingway());
+                wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
+                TWarehouse tWarehouse1 = tWarehouseMapper.selectTWarehouseById(wbItem.getfWarehouselocid());
+                wbItem.setfWarehouseInformation(tWarehouseZ.getfName() + "/" + tWarehouse1.getfName());
+                // 添加主表 业务单号
+                wbItem.setfBillno(warehouseBills.getfBillno());
+                wbItem.setfBillstatus(10L);
+                wbItem.setfPid(billId);
+                wbItem.setCreateBy(loginUser.getUser().getUserName());
+                wbItem.setCreateTime(new Date());
+                tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
+            }
+            return AjaxResult.success(itemList);
+        } else {
+            return AjaxResult.success(errinfo.toString(), itemList);
+        }
+    }
+
     /**
     /**
      * RSA 签名
      * RSA 签名
      *
      *

+ 10 - 3
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -54,6 +54,7 @@
         <result property="unlockTime" column="unlock_time"/>
         <result property="unlockTime" column="unlock_time"/>
         <result property="wrNumber" column="wr_number"/>
         <result property="wrNumber" column="wr_number"/>
         <result property="checklists" column="checklists"/>
         <result property="checklists" column="checklists"/>
+        <result property="fWarehouseInformation" column="f_warehouse_information"/>
     </resultMap>
     </resultMap>
 
 
     <resultMap type="CalculateStorageFeesInfoVO" id="StorageFeesInfoResult">
     <resultMap type="CalculateStorageFeesInfoVO" id="StorageFeesInfoResult">
@@ -103,7 +104,7 @@
          f_pregrossweight, f_warehouseid, f_prenetweight, f_bsdate, f_chargedate, f_volumnD, f_qtyD, f_billingway, f_grossweightD, f_netweightD, f_volumnC,
          f_pregrossweight, f_warehouseid, f_prenetweight, f_bsdate, f_chargedate, f_volumnD, f_qtyD, f_billingway, f_grossweightD, f_netweightD, f_volumnC,
           f_qtyC, f_grossweightC, f_qtyblc, f_grossweightblc, f_netweightC, f_netweightblc, f_cntrno, f_status, del_flag, f_marks, create_by,
           f_qtyC, f_grossweightC, f_qtyblc, f_grossweightblc, f_netweightC, f_netweightblc, f_cntrno, f_status, del_flag, f_marks, create_by,
            create_time, update_by, f_volumnblc, update_time, remark, f_business_type, f_originalbilldate, f_localcntrno,f_customno,f_ems_seq_no,
            create_time, update_by, f_volumnblc, update_time, remark, f_business_type, f_originalbilldate, f_localcntrno,f_customno,f_ems_seq_no,
-               lock_status, belong_to, lock_time, unlock_time, wr_number,checklists from t_whgenleg
+               lock_status, belong_to, lock_time, unlock_time, wr_number,checklists,f_warehouse_information from t_whgenleg
     </sql>
     </sql>
 
 
     <select id="selectTWhgenlegList" parameterType="TWhgenleg" resultMap="TWhgenlegResult">
     <select id="selectTWhgenlegList" parameterType="TWhgenleg" resultMap="TWhgenlegResult">
@@ -255,6 +256,7 @@
             <if test="unlockTime != null">unlock_time,</if>
             <if test="unlockTime != null">unlock_time,</if>
             <if test="wrNumber != null">wr_number,</if>
             <if test="wrNumber != null">wr_number,</if>
             <if test="checklists != null">checklists,</if>
             <if test="checklists != null">checklists,</if>
+            <if test="fWarehouseInformation != null">f_warehouse_information,</if>
         </trim>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fAccyear != null">#{fAccyear},</if>
             <if test="fAccyear != null">#{fAccyear},</if>
@@ -304,6 +306,7 @@
             <if test="unlockTime != null">#{unlockTime},</if>
             <if test="unlockTime != null">#{unlockTime},</if>
             <if test="wrNumber != null">#{wrNumber},</if>
             <if test="wrNumber != null">#{wrNumber},</if>
             <if test="checklists != null">#{checklists},</if>
             <if test="checklists != null">#{checklists},</if>
+            <if test="fWarehouseInformation != null">#{fWarehouseInformation},</if>
         </trim>
         </trim>
     </insert>
     </insert>
 
 
@@ -357,6 +360,7 @@
             <if test="unlockTime != null">unlock_time = #{unlockTime},</if>
             <if test="unlockTime != null">unlock_time = #{unlockTime},</if>
             <if test="wrNumber != null">wr_number = #{wrNumber},</if>
             <if test="wrNumber != null">wr_number = #{wrNumber},</if>
             <if test="checklists != null and checklists != ''">checklists = #{checklists},</if>
             <if test="checklists != null and checklists != ''">checklists = #{checklists},</if>
+            <if test="fWarehouseInformation != null and fWarehouseInformation != ''">f_warehouse_information = #{fWarehouseInformation},</if>
         </trim>
         </trim>
         where f_id = #{fId}
         where f_id = #{fId}
     </update>
     </update>
@@ -752,7 +756,8 @@
             leg.f_warehouseid AS fWarehouseId,
             leg.f_warehouseid AS fWarehouseId,
             DATE_FORMAT( leg.create_time, '%Y-%m-%d' ) AS createTime,
             DATE_FORMAT( leg.create_time, '%Y-%m-%d' ) AS createTime,
             DATE_FORMAT( leg.f_originalbilldate, '%Y-%m-%d' ) AS fOriginalbilldate,
             DATE_FORMAT( leg.f_originalbilldate, '%Y-%m-%d' ) AS fOriginalbilldate,
-            leg.f_cntrno AS fCntrno
+            leg.f_cntrno AS fCntrno,
+            leg.f_warehouse_information AS fWarehouseInformation
         FROM
         FROM
             t_whgenleg leg
             t_whgenleg leg
             left join sys_user u on leg.create_by = u.user_name
             left join sys_user u on leg.create_by = u.user_name
@@ -858,7 +863,8 @@
         leg.belong_to As belongTo,
         leg.belong_to As belongTo,
         leg.lock_time As lockTime,
         leg.lock_time As lockTime,
         leg.unlock_time As unlockTime,
         leg.unlock_time As unlockTime,
-        leg.wr_number As wrNumber
+        leg.wr_number As wrNumber,
+        leg.f_warehouse_information as fWarehouseInformation
 
 
         FROM
         FROM
             t_whgenleg leg
             t_whgenleg leg
@@ -877,6 +883,7 @@
             dict.status = '0'
             dict.status = '0'
             AND dict1.status = '0'
             AND dict1.status = '0'
             AND leg.f_qtyD != 0
             AND leg.f_qtyD != 0
+            and leg.del_flag = '0'
             <if test="isMblno != null and isMblno == 0 ">
             <if test="isMblno != null and isMblno == 0 ">
                 AND leg.f_qtyblc != 0
                 AND leg.f_qtyblc != 0
                 AND leg.f_grossweightblc != 0
                 AND leg.f_grossweightblc != 0