Browse Source

仓库修改

lazhaoqian 4 years ago
parent
commit
773b990d10
21 changed files with 792 additions and 33 deletions
  1. 4 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
  2. 6 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
  3. 28 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TStorageFeeCalculationController.java
  4. 3 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java
  5. 12 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseOutStockController.java
  6. 1 1
      ruoyi-admin/src/main/resources/application-druid.yml
  7. 7 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  8. 17 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  9. 98 0
      ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java
  10. 24 0
      ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/domain/TWhgenleg.java
  11. 61 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/StorageChargeInsert.java
  12. 80 3
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehouseBills.java
  13. 23 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehousebillsitems.java
  14. 26 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsMapper.java
  15. 19 1
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java
  16. 9 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehousebillsitemsService.java
  17. 290 18
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java
  18. 5 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehousebillsitemsServiceImpl.java
  19. 11 4
      ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml
  20. 32 1
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml
  21. 36 3
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

+ 4 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java

@@ -92,6 +92,10 @@ public class CommonController
             // 上传并返回新文件名称
             String fileName = FileUploadUtils.upload(filePath, file);
             String url = serverConfig.getUrl() + fileName;
+            /*if (url.indexOf("http")!= -1){
+                String replace = url.replace("http", "https");
+                url = replace;
+            }*/
             ajax.put("fileName", file.getOriginalFilename());
             ajax.put("url", url);
             return ajax;

+ 6 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -202,4 +202,10 @@ public class SysUserController extends BaseController {
         List<Map<String, Object>> list = userService.selectUserNameFO();
         return getDataTable(list);
     }
+    @GetMapping("/selectUserByRole")
+    public TableDataInfo selectUserByRole(String roleName){
+        startPage();
+        List<SysUser> list = userService.selectUserByRole(roleName);
+        return getDataTable(list);
+    }
 }

+ 28 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TStorageFeeCalculationController.java

@@ -13,6 +13,7 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.warehouseBusiness.domain.StorageChargeInsert;
 import com.ruoyi.warehouseBusiness.domain.TWareHouseExcelItems;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.excel.StorageFee;
@@ -105,6 +106,20 @@ public class TStorageFeeCalculationController extends BaseController {
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.insertStorageFee(warehouseBills, warehouseItems, warehouseFees, loginUser, billsType);
     }
+    /**
+     * 新增库存费计算
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:storageFeeCalculation:add')")
+    @Log(title = "详情主表", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/addList")
+    @RepeatSubmit
+    public AjaxResult addList(@RequestBody List<StorageChargeInsert> storageChargeInsert) {
+
+        String billsType = "JSCCF";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.insertStorageFeeList(storageChargeInsert,loginUser,billsType);
+    }
 
     /**
      * 库存费计算
@@ -119,6 +134,19 @@ public class TStorageFeeCalculationController extends BaseController {
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.calculateStorageFees(tWarehouseBills, loginUser, billsType);
     }
+    /**
+     * 出库库存费计算
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:storageFeeCalculation:add')")
+    @Log(title = "详情主表", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/calculateFeesList")
+    @RepeatSubmit
+    public AjaxResult calculateFeesList(@RequestBody List<TWarehouseBills> tWarehouseBillsList) {
+        String billsType = "JSCCF";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.calculateStorageFeesList(tWarehouseBillsList, loginUser, billsType);
+    }
 
     /**
      * 删除入库详情主表

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

@@ -339,11 +339,12 @@ public class TWarehouseInStockController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
     @Log(title = "详情主表", businessType = BusinessType.INSERT)
-    @PostMapping(value = "/addDetails/{fId}")
+    @GetMapping(value = "/addDetails/{fId}")
     @RepeatSubmit
     public AjaxResult addDetails(@PathVariable("fId") Long fId) {
         String billsType = "SJRKITEM";
-        return itWarehouseBillsService.addDetails(fId, billsType);
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.addDetails(fId, billsType,loginUser);
     }
 
     /**

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseOutStockController.java

@@ -346,5 +346,17 @@ public class TWarehouseOutStockController extends BaseController {
         String billsType = "SJCK";
         return itWarehouseBillsService.serialNumber(billsType);
     }
+    /**
+     * 入库明细提交审批确认
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
+    @Log(title = "详情主表", businessType = BusinessType.INSERT)
+    @GetMapping(value = "/addDetails/{fId}")
+    @RepeatSubmit
+    public AjaxResult addDetails(@PathVariable("fId") Long fId) {
+        String billsType = "SJCKITEM";
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.addDetails(fId, billsType,loginUser);
+    }
 
 }

+ 1 - 1
ruoyi-admin/src/main/resources/application-druid.yml

@@ -6,7 +6,7 @@ spring:
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://124.70.179.5:3306/Test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+        url: jdbc:mysql://124.70.179.5:3306/LinuxServer?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
         username: root
         password: daasan7ujm^YHN
 

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -171,4 +171,11 @@ public interface ISysUserService {
      * @return
      */
     public List<Map<String, Object>>selectUserNameFO();
+
+    /**
+     * 根据角色名获取用户
+     * @param roleName
+     * @return
+     */
+    public List<SysUser> selectUserByRole(String roleName);
 }

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.entity.SysRole;
@@ -448,6 +449,22 @@ public class SysUserServiceImpl implements ISysUserService {
         return userMapper.selectUserNameFO();
     }
 
+    @Override
+    public List<SysUser> selectUserByRole(String roleName) {
+        List<SysUser> sysUsers = new ArrayList<>();
+        if (StringUtils.isNull(roleName)){
+            SysUser user = new SysUser();
+            sysUsers = userMapper.selectUserList(user);
+            return sysUsers;
+        }
+        sysUsers = userMapper.selectUserByRole(roleName);
+        if (CollectionUtils.isEmpty(sysUsers) && "库管".equals(roleName)){
+            SysUser user = new SysUser();
+            sysUsers = userMapper.selectUserList(user);
+        }
+        return sysUsers;
+    }
+
     /**
      * 小程序授权小程序
      *

+ 98 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -496,6 +496,44 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return AjaxResult.error("审核失败,更新费用状态失败");
                         }
+                    }else if (auditItems.getActId()== 170 ){
+                        //入库明细审核
+                        if ("T".equals(at.getIffinalItem())) {
+                            fettle = 6L;
+                        } else if ("F".equals(at.getIffinalItem())) {
+                            fettle = 5L;
+                        }
+                        //变更仓库入库明细审核状态
+                        Integer i = null;
+                        TWarehouseBills tWarehouseBills = new TWarehouseBills();
+                        tWarehouseBills.setfId(auditItems.getBillId());
+                        tWarehouseBills.setfItemstatus(fettle);
+                        i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+                        i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+                        if (i != null && i>0) {
+                        }else {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("审核失败,更新费用状态失败");
+                        }
+                    }else if (auditItems.getActId()== 180 ){
+                        //入库明细审核
+                        if ("T".equals(at.getIffinalItem())) {
+                            fettle = 6L;
+                        } else if ("F".equals(at.getIffinalItem())) {
+                            fettle = 5L;
+                        }
+                        //变更仓库入库明细审核状态
+                        Integer i = null;
+                        TWarehouseBills tWarehouseBills = new TWarehouseBills();
+                        tWarehouseBills.setfId(auditItems.getBillId());
+                        tWarehouseBills.setfItemstatus(fettle);
+                        i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+                        i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+                        if (i != null && i>0) {
+                        }else {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("审核失败,更新费用状态失败");
+                        }
                     }
                     if ("F".equals(at.getIffinalItem())) {
                         at.setLevelId(at.getLevelId() + 1);
@@ -623,6 +661,36 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return ajaxResult;
             }
+        }else if (auditItems.getActId()== 170 ){
+            //入库明细审核
+            fettle = 3L;
+            //变更仓库入库明细审核状态
+            Integer i = null;
+            TWarehouseBills tWarehouseBills = new TWarehouseBills();
+            tWarehouseBills.setfId(auditItems.getBillId());
+            tWarehouseBills.setfItemstatus(fettle);
+            i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+            i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+            if (i != null && i>0) {
+            }else {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("审核失败,更新费用状态失败");
+            }
+        }else if (auditItems.getActId()== 180 ){
+            //入库明细审核
+            fettle = 3L;
+            //变更仓库入库明细审核状态
+            Integer i = null;
+            TWarehouseBills tWarehouseBills = new TWarehouseBills();
+            tWarehouseBills.setfId(auditItems.getBillId());
+            tWarehouseBills.setfItemstatus(fettle);
+            i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+            i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+            if (i != null && i>0) {
+            }else {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("审核失败,更新费用状态失败");
+            }
         }
         AuditItems item = new AuditItems();
         item.setBillId(auditItems.getId());
@@ -801,6 +869,36 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 更新审批状态失败");
             }
+        }else if (auditItems.getActId()== 170 ){
+            //入库明细审核
+            fettle = 2L;
+            //变更仓库入库明细审核状态
+            Integer i = null;
+            TWarehouseBills tWarehouseBills = new TWarehouseBills();
+            tWarehouseBills.setfId(auditItems.getBillId());
+            tWarehouseBills.setfItemstatus(fettle);
+            i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+            i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+            if (i != null && i>0) {
+            }else {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("审核失败,更新费用状态失败");
+            }
+        }else if (auditItems.getActId()== 180 ){
+            //入库明细审核
+            fettle = 2L;
+            //变更仓库入库明细审核状态
+            Integer i = null;
+            TWarehouseBills tWarehouseBills = new TWarehouseBills();
+            tWarehouseBills.setfId(auditItems.getBillId());
+            tWarehouseBills.setfItemstatus(fettle);
+            i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+            i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+            if (i != null && i>0) {
+            }else {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("审核失败,更新费用状态失败");
+            }
         }
         int deleteNum = auditItemsMapper.deletePurchaseApproval(auditItems);
         if (deleteNum == 0) {

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

@@ -221,9 +221,16 @@ public class TWhgenleg extends BaseEntity {
     /** 仓库 */
     @Excel(name = "仓库")
     private Long fLocation;
+    /**
+     * 报关单号
+     */
+    @Excel(name = "报关单号")
+    private String fCustomno;
 
     /** 是否按照箱号 */
     private Long isCntrno;
+    /** 是否按照提单号 */
+    private Long isMblno;
 
     private String timeStartBsdate;
     private String timeEndBsdate;
@@ -232,6 +239,22 @@ public class TWhgenleg extends BaseEntity {
         return serialVersionUID;
     }
 
+    public Long getIsMblno() {
+        return isMblno;
+    }
+
+    public void setIsMblno(Long isMblno) {
+        this.isMblno = isMblno;
+    }
+
+    public String getfCustomno() {
+        return fCustomno;
+    }
+
+    public void setfCustomno(String fCustomno) {
+        this.fCustomno = fCustomno;
+    }
+
     public Long getfId() {
         return fId;
     }
@@ -586,6 +609,7 @@ public class TWhgenleg extends BaseEntity {
                 ", isCntrno=" + isCntrno +
                 ", timeStartBsdate='" + timeStartBsdate + '\'' +
                 ", timeEndBsdate='" + timeEndBsdate + '\'' +
+                ", fCustomno='" + fCustomno + '\'' +
                 '}';
     }
 }

+ 61 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/StorageChargeInsert.java

@@ -0,0 +1,61 @@
+package com.ruoyi.warehouseBusiness.domain;
+
+/**
+ * @Author ZhaoQian La
+ * @Date 2021/6/23 19:38
+ * @Version 1.0
+ */
+
+public class StorageChargeInsert {
+    private static final long serialVersionUID = 1L;
+
+    private String warehouseBills;
+
+    private String warehouseItems;
+
+    private String billsType;
+
+    private  String warehouseFees;
+
+    public String getWarehouseFees() {
+        return warehouseFees;
+    }
+
+    public void setWarehouseFees(String warehouseFees) {
+        this.warehouseFees = warehouseFees;
+    }
+
+    public String getWarehouseBills() {
+        return warehouseBills;
+    }
+
+    public void setWarehouseBills(String warehouseBills) {
+        this.warehouseBills = warehouseBills;
+    }
+
+    public String getWarehouseItems() {
+        return warehouseItems;
+    }
+
+    public void setWarehouseItems(String warehouseItems) {
+        this.warehouseItems = warehouseItems;
+    }
+
+    public String getBillsType() {
+        return billsType;
+    }
+
+    public void setBillsType(String billsType) {
+        this.billsType = billsType;
+    }
+
+    @Override
+    public String toString() {
+        return "StorageChargeInsert{" +
+                "warehouseBills='" + warehouseBills + '\'' +
+                ", warehouseItems='" + warehouseItems + '\'' +
+                ", billsType='" + billsType + '\'' +
+                ", warehouseFees='" + warehouseFees + '\'' +
+                '}';
+    }
+}

+ 80 - 3
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehouseBills.java

@@ -499,7 +499,7 @@ public class TWarehouseBills extends BaseEntity {
 
     /** 申报要素(取自数据字典) */
     @Excel(name = "申报要素(取自数据字典)")
-    private Long fDeclarationElements;
+    private String fDeclarationElements;
 
     /** 料件号 */
     @Excel(name = "料件号")
@@ -548,6 +548,29 @@ public class TWarehouseBills extends BaseEntity {
     /** 仓储费计费类型 */
     @Excel(name = "仓储费计费类型")
     private String fChargetype;
+    /** 过磅重量 */
+    @Excel(name = "过磅重量")
+    private BigDecimal fWeighWeight;
+    /** 预计到厂日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预计到厂日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date fPredictBranch;
+
+    /** 等级 */
+    @Excel(name = "等级")
+    private String fGrade;
+
+    /** 送货详情 */
+    @Excel(name = "送货详情")
+    private String fDeliveryDetails;
+
+    /** 业务员id */
+    @Excel(name = "业务员id")
+    private Long fSalesmanId;
+
+    /** 入库明细审批状态 */
+    @Excel(name = "入库明细审批状态")
+    private Long fItemstatus;
 
     /**
      * 校验时间戳
@@ -607,6 +630,54 @@ public class TWarehouseBills extends BaseEntity {
     //费用状态
     private Long moneyStatus;
 
+    public Date getfPredictBranch() {
+        return fPredictBranch;
+    }
+
+    public void setfPredictBranch(Date fPredictBranch) {
+        this.fPredictBranch = fPredictBranch;
+    }
+
+    public String getfGrade() {
+        return fGrade;
+    }
+
+    public void setfGrade(String fGrade) {
+        this.fGrade = fGrade;
+    }
+
+    public String getfDeliveryDetails() {
+        return fDeliveryDetails;
+    }
+
+    public void setfDeliveryDetails(String fDeliveryDetails) {
+        this.fDeliveryDetails = fDeliveryDetails;
+    }
+
+    public Long getfSalesmanId() {
+        return fSalesmanId;
+    }
+
+    public void setfSalesmanId(Long fSalesmanId) {
+        this.fSalesmanId = fSalesmanId;
+    }
+
+    public Long getfItemstatus() {
+        return fItemstatus;
+    }
+
+    public void setfItemstatus(Long fItemstatus) {
+        this.fItemstatus = fItemstatus;
+    }
+
+    public BigDecimal getfWeighWeight() {
+        return fWeighWeight;
+    }
+
+    public void setfWeighWeight(BigDecimal fWeighWeight) {
+        this.fWeighWeight = fWeighWeight;
+    }
+
     public Long getMoneyStatus() {
         return moneyStatus;
     }
@@ -1514,11 +1585,11 @@ public class TWarehouseBills extends BaseEntity {
         this.fSupervisionUnit = fSupervisionUnit;
     }
 
-    public Long getfDeclarationElements() {
+    public String getfDeclarationElements() {
         return fDeclarationElements;
     }
 
-    public void setfDeclarationElements(Long fDeclarationElements) {
+    public void setfDeclarationElements(String fDeclarationElements) {
         this.fDeclarationElements = fDeclarationElements;
     }
 
@@ -1743,6 +1814,12 @@ public class TWarehouseBills extends BaseEntity {
                 ", delFlag='" + delFlag + '\'' +
                 ", fLocation=" + fLocation +
                 ", fNewTrademodeid=" + fNewTrademodeid +
+                ", fWeighWeight=" + fWeighWeight +
+                ", fPredictBranch='" + fPredictBranch + '\'' +
+                ", fGrade=" + fGrade +
+                ", fDeliveryDetails=" + fDeliveryDetails +
+                ", fSalesmanId=" + fSalesmanId +
+                ", fItemstatus=" + fItemstatus +
                 '}';
     }
 }

+ 23 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehousebillsitems.java

@@ -323,6 +323,9 @@ public class TWarehousebillsitems extends BaseEntity {
     /** 明细审批状态 */
     @Excel(name = "明细审批状态")
     private Long fItemstatus;
+    /** 现箱号 */
+    @Excel(name = "现箱号")
+    private String fNowCarton;
 
     /**
      * 备注
@@ -331,6 +334,25 @@ public class TWarehousebillsitems extends BaseEntity {
     private String timeStartBsdate;
     private String timeEndBsdate;
 
+    //报关单号
+    private String fCustomno;
+
+    public String getfNowCarton() {
+        return fNowCarton;
+    }
+
+    public void setfNowCarton(String fNowCarton) {
+        this.fNowCarton = fNowCarton;
+    }
+
+    public String getfCustomno() {
+        return fCustomno;
+    }
+
+    public void setfCustomno(String fCustomno) {
+        this.fCustomno = fCustomno;
+    }
+
     public Long getfLabour() {
         return fLabour;
     }
@@ -866,6 +888,7 @@ public class TWarehousebillsitems extends BaseEntity {
                 ", remark='" + remark + '\'' +
                 ", timeStartBsdate='" + timeStartBsdate + '\'' +
                 ", timeEndBsdate='" + timeEndBsdate + '\'' +
+                ", fNowCarton='" + fNowCarton + '\'' +
                 '}';
     }
 }

+ 26 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.security.core.parameters.P;
 
 import java.util.Date;
 import java.util.List;
@@ -145,4 +146,29 @@ public interface TWarehousebillsitemsMapper extends BaseMapper<TWarehousebillsit
      * @return
      */
     public Date selecMinBsDateByFPid(Long fId);
+
+    /**
+     * 获取最小仓储费计算日期
+     * @param fPid
+     * @return
+     */
+    public Date getFchargedate(Long fPid);
+
+    /**
+     * 如果是按最小入库日期计算仓储费更新其他入库明细的仓储费计算日期
+     * @param fPid
+     * @param fChargedate
+     * @return
+     */
+    public int warehouseItemfChargedate(@Param("fPid") Long fPid,
+                                        @Param("fChargedate") Date fChargedate);
+
+    /**
+     * 更新入库明细审核状态
+     * @param fPid
+     * @param fItemstatus
+     * @return
+     */
+    public int warehouseItemfItemstatus(@Param("fPid") Long fPid,
+                                        @Param("fItemstatus") Long fItemstatus);
 }

+ 19 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.reportManagement.domain.TWareHouseItemsExcel;
 import com.ruoyi.system.domain.SysCheckCode;
+import com.ruoyi.warehouseBusiness.domain.StorageChargeInsert;
 import com.ruoyi.warehouseBusiness.domain.TWareHouseExcelItems;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
@@ -191,6 +192,15 @@ public interface ITWarehouseBillsService {
      * @return
      */
     AjaxResult calculateStorageFees(TWarehouseBills tWarehouseBills, LoginUser loginUser, String billsType);
+    /**
+     * 计算仓储费
+     *
+     * @param tWarehouseBillsList
+     * @param loginUser
+     * @param billsType
+     * @return
+     */
+    AjaxResult calculateStorageFeesList(List<TWarehouseBills> tWarehouseBillsList, LoginUser loginUser, String billsType);
 
     /**
      * 仓储费计算提交以及暂存
@@ -203,6 +213,14 @@ public interface ITWarehouseBillsService {
      * @return
      */
     AjaxResult insertStorageFee(String warehouseBills, String warehouseItems, String warehouseFees, LoginUser loginUser, String billsType);
+    /**
+     * 仓储费计算list提交以及暂存
+     *
+     * @param storageChargeInsert
+     * @param loginUser
+     * @return
+     */
+    AjaxResult insertStorageFeeList(List<StorageChargeInsert> storageChargeInsert, LoginUser loginUser, String billsType);
 
     /**
      * 根据id 查询仓储费计算明细
@@ -457,5 +475,5 @@ public interface ITWarehouseBillsService {
     /**
      * 入库明细提交审批确认
      */
-    public AjaxResult addDetails(Long fId, String billsType);
+    public AjaxResult addDetails(Long fId, String billsType,LoginUser loginUser);
 }

+ 9 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehousebillsitemsService.java

@@ -2,6 +2,7 @@ package com.ruoyi.warehouseBusiness.service;
 
 
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -59,4 +60,12 @@ public interface ITWarehousebillsitemsService {
      * @return 结果
      */
     public int deleteTWarehousebillsitemsById(Long fId);
+
+    /**
+     * 更新入库明细状态
+     * @param fPid
+     * @param fItemstatus
+     * @return
+     */
+    public int warehouseItemfItemstatus(Long fPid, Long fItemstatus);
 }

+ 290 - 18
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -20,6 +20,7 @@ import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.ip.AddressUtils;
 import com.ruoyi.quotation.domain.TSeaprice;
 import com.ruoyi.quotation.mapper.TSeapriceMapper;
 import com.ruoyi.reportManagement.domain.TWareHouseItemsExcel;
@@ -41,9 +42,12 @@ import com.ruoyi.warehouseBusiness.domain.*;
 import com.ruoyi.warehouseBusiness.excel.*;
 import com.ruoyi.warehouseBusiness.mapper.*;
 import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
+import jdk.jfr.events.ExceptionThrownEvent;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -153,6 +157,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
     @Autowired
     private TWarehousebillsCntritemsMapper tWarehousebillsCntritemsMapper;
+    private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
 
 
     /**
@@ -207,6 +212,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             if (StringUtils.isNotNull(tWarehouse)) {
                 warehouseList.add(tWarehouse);
             }
+            //查询业务员
+            if (tWarehousebills.getfSalesmanId() != null){
+                SysUser user = sysUserMapper.selectUserById(tWarehousebills.getfSalesmanId());
+                map.put("fSalesman",user);
+            }
             // 查询经营单位
             corpsId.add(tWarehousebills.getfSbu());
             map.put("warehousebills", tWarehousebills);
@@ -429,6 +439,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         TWhgenleg tWhgenleg = new TWhgenleg();
         if ("SJRK".equals(warehouseBills.getfBilltype())) {
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
+            tWhgenleg.setfCustomno(warehouseBills.getfCustomno());
+            if (StringUtils.isNotEmpty(warehouseBills.getRemark())){
+                tWhgenleg.setRemark(warehouseBills.getRemark());
+            }
         }
         if ("HQZY".equals(warehouseBills.getfBilltype()) | "CKDB".equals(warehouseBills.getfBilltype()) | "HWTG".equals(warehouseBills.getfBilltype())) {
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfOriginalbilldate());
@@ -583,11 +597,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 boolean warehouseStatus = "SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType) || "HWTG".equals(billsType);
                 // 仓储计费日期
                 wbItem.setfBilltype(billsType);
+                if ("SJRK".equals(billsType) && warehouseBills.getfId() != null && "0".equals(warehouseBills.getfChargetype())) {
+                    boolean fchargedate = this.getFchargedate(fPid, wbItem.getfBsdate());
+                    if (fchargedate == false){
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
+                    }
+                }
                 if ("SJRK".equals(billsType)) {
-                    if ("0".equals(warehouseBills.getfChargetype())) {
-                        wbItem.setfChargedate(warehouseBills.getfChargedate());
-                    } else {
-                        wbItem.setfChargedate(mixDate);
+                    if ("1".equals(warehouseBills.getfChargetype())) {
+                        wbItem.setfChargedate(warehouseBills.getfBsdate());
+                    } else if ("0".equals(warehouseBills.getfChargetype())){
+                        Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(fPid);
+                        if (fchargedate != null){
+                            wbItem.setfChargedate(fchargedate);
+                        }else {
+                            wbItem.setfChargedate(mixDate);
+                        }
                     }
                     wbItem.setfBillingway(warehouseBills.getfBillingway());
                     wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
@@ -2892,7 +2918,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
         Date time = new Date();
-        if ("1".equals(tWarehouseBills.getfChargetype())) {
+        if ("0".equals(tWarehouseBills.getfChargetype())) {
             time = tWarehousebillsitemsMapper.selecMinBsDateByFPid(tWarehouseBills.getfId());
         }
         int i = 1;
@@ -2917,7 +2943,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
                 item.setfOriginalbilldate(item.getfBsdate());
                 item.setfBillingway(tWarehouseBills.getfBillingway());
-                if ("0".equals(tWarehouseBills.getfChargetype())) {
+                if ("1".equals(tWarehouseBills.getfChargetype())) {
                     time = item.getfBsdate();
                 }
                 item.setfChargedate(time);
@@ -2928,6 +2954,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 }
                 TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item, goods.getIfCntrno());
                 if (StringUtils.isNotNull(tWhgenle)) {
+                    if ("SJRK".equals(billsType)){
+                        item.setfCustomno(tWarehouseBills.getfCustomno());
+                        if (StringUtils.isNotEmpty(tWarehouseBills.getRemark())){
+                            item.setRemark(tWarehouseBills.getRemark());
+                        }
+                    }
                     int i1 = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
                     if (i1 <= 0) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -3034,7 +3066,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      */
     @Override
     @Transactional
-    public AjaxResult addDetails(Long fId, String billsType) {
+    public AjaxResult addDetails(Long fId, String billsType,LoginUser loginUser) {
         TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
         if (StringUtils.isNull(tWarehouseBills)) {
             return AjaxResult.error("未找到仓储信息,请确认是否存在");
@@ -3043,13 +3075,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if (StringUtils.isEmpty(warehousebillsitemsList)) {
             return AjaxResult.error("未找到仓储库存明细信息,请确认是否存在");
         }
+        if (tWarehouseBills.getfItemstatus().longValue() == 4L
+        || tWarehouseBills.getfItemstatus().longValue() == 5L
+        || tWarehouseBills.getfItemstatus().longValue() == 6L){
+           return AjaxResult.error("该单明细已提交审核,请勿重复提交");
+        }
         for (TWarehousebillsitems item : warehousebillsitemsList) {
-            if (item.getfItemstatus() != 40L || item.getfItemstatus() == 50L) {
+            if (item.getfBillstatus() != 40L || item.getfBillstatus() == 50L) {
                 return AjaxResult.error("库存明细中存在审核中数据,无法再次提交请核");
             }
         }
         boolean isApprove;
         long itemStatus = 6L;
+        Long actId = 0L;
+        String key = null;
+        if (billsType.equals("SJRKITEM")){
+            actId = 170L;
+        }else if (billsType.equals("SJCKITEM")){
+            actId = 180L;
+        }
+
         SysConfig sysConfig = queryWarehouseConfig(billsType);
         if (StringUtils.isNull(sysConfig)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -3058,11 +3103,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if ("0".equals(sysConfig.getConfigValue())) {
             isApprove = true;
             itemStatus = 4L;
-            tWarehouseBills.setfItemsStatus(3L);
+            tWarehouseBills.setfItemstatus(itemStatus);
             tWarehouseBills.setUpdateTime(new Date());
             tWarehouseBills.setUpdateBy(SecurityUtils.getUsername());
         } else {
-            tWarehouseBills.setfItemsStatus(4L);
+            tWarehouseBills.setfItemstatus(itemStatus);
             tWarehouseBills.setUpdateTime(new Date());
             tWarehouseBills.setUpdateBy(SecurityUtils.getUsername());
         }
@@ -3073,17 +3118,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             item.setfItemstatus(itemStatus);
             tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
         }
-        /*if (isApprove) {
+        if ("0".equals(sysConfig.getConfigValue())) {
             AuditItems auditItems = new AuditItems();
             auditItems.setLevelId(0L);
-            auditItems.setBillId(warehouseBills.getfId());
-            auditItems.setActId(actId);
+            auditItems.setBillId(tWarehouseBills.getfId());
+            auditItems.setActId(actId);//暂定
             auditItems.setIffinalItem("F");
             auditItems.setBillNo(tWarehouseBills.getfBillno());
             // 存储委托方(货权方)
             auditItems.setRefno1(tWarehouseBills.getfCorpid() + "");
             // 存储业务类型(业务类型)
-            auditItems.setRefno2(tWarehouseBills.getfBilltype());
+            auditItems.setRefno2(billsType);
             // 存储提单号(提单号)
             auditItems.setRefno3(tWarehouseBills.getfMblno());
             auditItems.setSendUserId(loginUser.getUser().getUserId());
@@ -3094,6 +3139,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             auditItems.setAuditOpTime(new Date());
             auditItems.setAuditMsg("提交");
             auditItems.setAuditStatus("O");
+            auditItems.setFidStatus("f_itemstatus");
+            auditItems.setTimes(tWarehouseBills.getfTimes());
             AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
 //            Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
             String code = approvalFlow.get("code").toString();
@@ -3102,8 +3149,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             }
             return approvalFlow;
-        }*/
-
+        }
         return AjaxResult.success();
     }
 
@@ -3708,6 +3754,86 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return AjaxResult.success(map);
     }
 
+    @Override
+    public AjaxResult calculateStorageFeesList(List<TWarehouseBills> tWarehouseBillsList, LoginUser loginUser, String billsType) {
+        if (CollectionUtils.isEmpty(tWarehouseBillsList)){
+            return AjaxResult.error("请输入筛选条件,再计算仓储费");
+        }
+        List<Map<String,Object>> list = new ArrayList<>();
+        for (TWarehouseBills tWarehouseBills : tWarehouseBillsList) {
+            if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
+                return AjaxResult.error("请选择客户信息");
+            }
+            long fPid = 0L;
+            if (StringUtils.isNull(tWarehouseBills.getfId())) {
+                // 生成流水号
+                Date time = new Date();
+                String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
+                tWarehouseBills.setfBillno(billNo);
+                if (StringUtils.isNull(tWarehouseBills.getfBillstatus())) {
+                    tWarehouseBills.setfBillstatus(2L);
+                }
+                tWarehouseBills.setfBilltype(billsType);
+                tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
+                tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
+                tWarehouseBills.setCreateTime(new Date());
+                tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
+                fPid = tWarehouseBills.getfId();
+            } else {
+                tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
+                tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
+                tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
+                tWarehouseBills.setUpdateTime(new Date());
+                tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+                fPid = tWarehouseBills.getfId();
+            }
+            // 计划物资明细
+            List<TWarehousebillsfees> itemsList = new ArrayList<>();
+            BigDecimal bigDecimal = new BigDecimal(0);
+            Map<String, Object> map = new HashMap<>();
+            // 库存总账id
+            long whgenlegFeeId = 0;
+            // 计费单位
+            long feeUnitid = 1;
+            // 查询 出库 货转的库存明细
+            List<Map<String, Object>> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
+            if (warehousebillsitemsList.size() != 0) {
+                Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, warehousebillsitemsList, loginUser);
+                if (mapItem.containsKey("error")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error((String) mapItem.get("error"));
+                }
+                itemsList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
+            }
+            List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
+            if (tWhgenlegs.size() != 0) {
+                Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, tWhgenlegs, loginUser);
+                if (mapItem.containsKey("error")) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error((String) mapItem.get("error"));
+                }
+                List<TWarehousebillsfees> itemList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
+                if (itemList.size() != 0) {
+                    for (TWarehousebillsfees ite : itemList) {
+                        itemsList.add(ite);
+                    }
+                }
+            }
+            TFees tFees = new TFees();
+            tFees.setfStatus("2");
+            tFees.setDelFlag("0");
+            List<TFees> feesList = tFeesMapper.selectTFeesList(tFees);
+            if (itemsList.size() <= 0) {
+                return AjaxResult.error("未找到合适的库存明细");
+            }
+            map.put("feesList", feesList);
+            map.put("warehouseBills", tWarehouseBills);
+            map.put("warehouseItemList", itemsList);
+            list.add(map);
+        }
+        return AjaxResult.success(list);
+    }
+
     /**
      * 计算出库仓储费
      *  待完成!!!!!!!!!
@@ -3730,7 +3856,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      */
     @Override
     public AjaxResult queryClerkRoleList() {
-        return AjaxResult.success(sysUserMapper.selectUserByRole("仓管员"));
+        return AjaxResult.success(sysUserMapper.selectUserByRole("库管"));
     }
 
     /**
@@ -3848,6 +3974,115 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return AjaxResult.success(tWarehousebills);
     }
 
+    @Override
+    public AjaxResult insertStorageFeeList(List<StorageChargeInsert> storageChargeInsert, LoginUser loginUser, String billsType) {
+        if (CollectionUtils.isEmpty(storageChargeInsert)){
+            return AjaxResult.error("请选择要保存的数据");
+        }
+        for (StorageChargeInsert chargeInsert : storageChargeInsert) {
+            TWarehouseBills tWarehousebills = JSONArray.parseObject(chargeInsert.getWarehouseBills(), TWarehouseBills.class);
+            long fPid = 0L;
+            boolean billstatus = tWarehousebills.getfBillstatus().equals(4L);
+            if (billstatus && (StringUtils.isNull(chargeInsert.getWarehouseItems()) || "[]".equals(chargeInsert.getWarehouseItems()))) {
+                return AjaxResult.error("未找到计费物资明细无法提交");
+            }
+        /*if (billstatus && (StringUtils.isNull(warehouseFees) || "[]".equals(warehouseFees))) {
+            return AjaxResult.error("未找到应收款明细无法提交");
+        }*/
+            tWarehousebills.setfTimes(tWarehousebills.getfTimes() + 1);
+            if (StringUtils.isNotNull(tWarehousebills.getfId())) {
+                fPid = tWarehousebills.getfId();
+                tWarehousebills.setUpdateTime(new Date());
+                tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
+                tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
+                tWarehousebillsfeesMapper.deleteByFPid(fPid);
+                tWarehousebillsitemsMapper.deleteByFPid(fPid);
+            } else {
+                // 生成流水号
+                Date time = new Date();
+                String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
+                tWarehousebills.setfBillno(billNo);
+                tWarehousebills.setfDeptid(loginUser.getUser().getDeptId());
+                tWarehousebills.setfBsdeptid(loginUser.getUser().getDeptId());
+                tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
+                tWarehousebills.setCreateTime(new Date());
+                tWarehousebills.setfBilltype(chargeInsert.getBillsType());
+                tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
+                fPid = tWarehousebills.getfId();
+            }
+            JSONArray warehouseJSON = JSONArray.parseArray(chargeInsert.getWarehouseItems());
+            List<TWarehousebillsfees> itemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsfees.class);
+            for (TWarehousebillsfees item : itemsList) {
+                item.setfId(null);
+                item.setSrcBillNo(tWarehousebills.getfBillno());
+                item.setfPid(fPid);
+                item.setfBillstatus(tWarehousebills.getfBillstatus());
+                tWarehousebillsfeesMapper.insertTWarehousebillsfees(item);
+            }
+            if (StringUtils.isNotNull(chargeInsert.getWarehouseFees()) && !"[]".equals(chargeInsert.getWarehouseFees())) {
+                JSONArray feesJSON = JSONArray.parseArray(chargeInsert.getWarehouseFees());
+                List<TWarehousebillsfees> warehousebillsfeesList = JSONObject.parseArray(feesJSON.toJSONString(), TWarehousebillsfees.class);
+                for (TWarehousebillsfees fees : warehousebillsfeesList) {
+                    fees.setfId(null);
+                    fees.setfPid(fPid);
+                    fees.setfDc("D");
+                    fees.setfBilltype("JSCCF");
+                    fees.setSrcBillNo(tWarehousebills.getfBillno());
+                    fees.setfBillstatus(tWarehousebills.getfBillstatus());
+                    tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
+                }
+            }
+            if (billstatus) {
+                String key = "warehouse.storageFeeCalculation.ApprovalFlow";
+                SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
+                if (StringUtils.isNull(sysConfig)) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("系统参数异常,未找到开启审批流参数");
+                }
+                if ("0".equals(sysConfig.getConfigValue())) {
+                    AuditItems auditItems = new AuditItems();
+                    auditItems.setLevelId(0L);
+                    auditItems.setBillId(fPid);
+                    auditItems.setActId(150L);
+                    auditItems.setIffinalItem("F");
+                    auditItems.setBillNo(tWarehousebills.getfBillno());
+                    // 存储委托方(货权方)
+                    auditItems.setRefno1(tWarehousebills.getfCorpid() + "");
+                    // 存储业务类型(业务类型)
+                    auditItems.setRefno2(tWarehousebills.getfBilltype());
+                    // 存储提单号(提单号)
+                    auditItems.setRefno3(tWarehousebills.getfMblno());
+                    auditItems.setSendUserId(loginUser.getUser().getUserId());
+                    auditItems.setSendName(loginUser.getUsername());
+                    auditItems.setSendTime(new Date());
+                    auditItems.setAuditUserId(loginUser.getUser().getUserId());
+                    auditItems.setAuditItem(new Date());
+                    auditItems.setAuditOpTime(new Date());
+                    auditItems.setAuditMsg("提交");
+                    auditItems.setAuditStatus("O");
+                    auditItems.setFidStatus("f_billstatus");
+                    auditItems.setTimes(tWarehousebills.getfTimes());
+                    AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
+                    String code = approvalFlow.get("code").toString();
+//                Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
+                    if ("500".equals(code)) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    }
+                    return approvalFlow;
+                } else {
+                    AjaxResult ajaxResult = storageFeeFollow(fPid, 6L);
+                    String code = ajaxResult.get("code").toString();
+//                Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
+                    if ("500".equals(code)) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    }
+                    return ajaxResult;
+                }
+            }
+        }
+        return AjaxResult.success();
+    }
+
     /**
      * 根据id查询仓储费计算信息
      *
@@ -4681,7 +4916,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         } else if ("HWTG".equals(billsType)) {
             key = "cargoClearance.orders.approvalFlow";
         } else if ("SJRKITEM".equals(billsType)) {
-//            key = "cargoClearance.orders.approvalFlow";
+            key = "warehouse.inStockItem.ApprovalFlow";
+        }else if ("SJCKITEM".equals(billsType)) {
+            key = "warehouse.outStockItem.ApprovalFlow";
         }
         return sysConfigMapper.checkConfigKeyUnique(key);
     }
@@ -4753,4 +4990,39 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return null;
     }
 
+    /**
+     * 获取最小仓储费计算日期
+     * @param fId
+     * @param date
+     * @return
+     */
+    public boolean getFchargedate(Long fId,Date date) {
+        Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(fId);
+        if (fchargedate == null){
+            return true;
+        }
+        int i = date.compareTo(fchargedate);
+        if (i == -1){
+            return false;
+        }else {
+            return true;
+        }
+    }
+    /**
+     * 获取仓储费最小日期并更新入库明细的仓储费计算日期
+     * @param fId
+     * @return
+     */
+    public AjaxResult updateFchargeDate(Long fId) throws ParseException {
+        Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(fId);
+        int i = tWarehousebillsitemsMapper.warehouseItemfChargedate(fId, fchargedate);
+        if (i>0){
+            return AjaxResult.success();
+        }else if (i == 0){
+            return AjaxResult.error("更新最小仓储费计算日期出错,请找管理员");
+        }else {
+            return AjaxResult.success();
+        }
+    }
+
 }

+ 5 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehousebillsitemsServiceImpl.java

@@ -88,4 +88,9 @@ public class TWarehousebillsitemsServiceImpl implements ITWarehousebillsitemsSer
     public int deleteTWarehousebillsitemsById(Long fId) {
         return tWarehousebillsitemsMapper.deleteTWarehousebillsitemsById(fId);
     }
+
+    @Override
+    public int warehouseItemfItemstatus(Long fPid, Long fItemstatus) {
+        return tWarehousebillsitemsMapper.warehouseItemfItemstatus(fPid,fItemstatus);
+    }
 }

+ 11 - 4
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -246,6 +246,12 @@
                 f_netweightD = f_netweightD + #{map.warehousebillsitems.fNetweight},
                 f_grossweightD = f_grossweightD + #{map.warehousebillsitems.fGrossweight},
                 f_qtyblc = f_qtyblc + #{map.warehousebillsitems.fQty}
+                <if test="map.warehousebillsitems.fCustomno != null  and map.warehousebillsitems.fCustomno != ''">
+                    f_customno = f_customno + #{map.warehousebillsitems.fCustomno}
+                </if>
+                <if test="map.warehousebillsitems.remark != null  and map.warehousebillsitems.remark != ''">
+                    remark = remark + #{map.warehousebillsitems.remark}
+                </if>
             </if>
             /*判断是否撤销入库*/
             <if test="map.billType == 'SJRKRevoke'">
@@ -653,11 +659,12 @@
             <if test="fLocation != null  and fLocation ==0 ">
                 and ware.ancestors  LIKE  concat('%', #{fWarehouseLocationid}, '%')
             </if>
-            <if test="isCntrno == null or isCntrno ==0 ">
-                GROUP BY leg.f_corpid, leg.f_mblno, leg.f_originalbillno, leg.f_originalbilldate, leg.f_warehouse_locationid, leg.f_goodsid, leg.f_trademodeid
+            GROUP BY leg.f_corpid,leg.f_originalbillno, leg.f_originalbilldate, leg.f_warehouse_locationid, leg.f_goodsid, leg.f_trademodeid
+            <if test="isCntrno != null and isCntrno == 0 ">
+                ,leg.f_cntrno
             </if>
-            <if test="isCntrno != null and isCntrno ==1 ">
-                GROUP BY leg.f_corpid, leg.f_mblno, leg.f_originalbillno, leg.f_originalbilldate, leg.f_warehouse_locationid, leg.f_goodsid, leg.f_trademodeid, f_cntrno
+            <if test="isMblno != null and isMblno == 0 ">
+                ,leg.f_mblno
             </if>
         </where>
         ${params.dataScope}

+ 32 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -105,6 +105,12 @@
         <result property="fTimes"    column="f_times"    />
         <result property="fDateChanged" column="f_date_changed"/>
         <result property="fChargetype" column="f_chargetype"/>
+        <result property="fWeighWeight" column="f_weigh_weight" />
+        <result property="fPredictBranch"    column="f_predict_branch" />
+        <result property="fGrade"    column="f_grade" />
+        <result property="fDeliveryDetails"  column="f_delivery_details" />
+        <result property="fSalesmanId"  column="f_salesman_id"  />
+        <result property="fItemstatus"  column="f_itemstatus" />
     </resultMap>
 
     <sql id="selectTWarehousebillsVo">
@@ -116,7 +122,8 @@
         f_loadportid, f_destportid, f_serviceitems, f_invoceobj, f_sign, f_detentioncargo, f_booksmarks, f_shippername, f_shipperattn, f_shippertel, f_consigneername,
         f_consigneeattn, f_consigneetel, f_insurance, f_insuranceamt, f_closedate, f_docmentdate, f_vslid, f_voyid, f_typeid, f_paymode, f_laneid, f_cntval,
         free_container_date, f_business_attribution, f_supervision_unit, f_declaration_elements, f_part_number, f_ifinspection, f_value, f_weighing_date,
-        f_ifsampling, send_sample_date, f_ifweight_recovery, weight_recovery_date, warehouse_status, f_times ,f_date_changed, f_chargetype from t_warehousebills
+        f_ifsampling, send_sample_date, f_ifweight_recovery, weight_recovery_date, warehouse_status, f_times ,f_date_changed, f_chargetype,f_weigh_weight,
+               f_predict_branch,f_grade,f_delivery_details,f_salesman_id,f_itemstatus from t_warehousebills
     </sql>
 
     <select id="selectTWarehousebillsList" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
@@ -866,6 +873,12 @@
             <if test="fTimes != null">f_times,</if>
             <if test="fDateChanged != null">f_date_changed,</if>
             <if test="fChargetype != null">f_chargetype,</if>
+            <if test="fWeighWeight != null">f_weigh_weight,</if>
+            <if test="fPredictBranch != null">f_predict_branch,</if>
+            <if test="fGrade != null">f_grade,</if>
+            <if test="fDeliveryDetails != null">f_delivery_details,</if>
+            <if test="fSalesmanId != null">f_salesman_id,</if>
+            <if test="fItemstatus != null">f_itemstatus,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fBillno != null">#{fBillno},</if>
@@ -967,6 +980,12 @@
             <if test="fTimes != null">#{fTimes},</if>
             <if test="fDateChanged != null">#{fDateChanged},</if>
             <if test="fChargetype != null">#{fChargetype},</if>
+            <if test="fWeighWeight != null">#{fWeighWeight},</if>
+            <if test="fPredictBranch != null">#{fPredictBranch},</if>
+            <if test="fGrade != null">#{fGrade},</if>
+            <if test="fDeliveryDetails != null">#{fDeliveryDetails},</if>
+            <if test="fSalesmanId != null">#{fSalesmanId},</if>
+            <if test="fItemstatus != null">#{fItemstatus},</if>
         </trim>
     </insert>
 
@@ -1072,6 +1091,12 @@
             <if test="fTimes != null">f_times = #{fTimes},</if>
             <if test="fDateChanged != null">f_date_changed = #{fDateChanged},</if>
             <if test="fChargetype != null">f_chargetype = #{fChargetype},</if>
+            <if test="fWeighWeight != null">f_weigh_weight = #{fWeighWeight},</if>
+            <if test="fPredictBranch != null">f_predict_branch = #{fPredictBranch},</if>
+            <if test="fGrade != null">f_grade = #{fGrade},</if>
+            <if test="fDeliveryDetails != null">f_delivery_details = #{fDeliveryDetails},</if>
+            <if test="fSalesmanId != null">f_salesman_id = #{fSalesmanId},</if>
+            <if test="fItemstatus != null">f_itemstatus = #{fItemstatus},</if>
         </trim>
         where f_id = #{fId}
     </update>
@@ -1179,6 +1204,12 @@
             <if test="fTimes != null">f_times = #{fTimes},</if>
             <if test="fDateChanged != null">f_date_changed = #{fDateChanged},</if>
             <if test="fChargetype != null">f_chargetype = #{fChargetype},</if>
+            <if test="fWeighWeight != null">f_weigh_weight = #{fWeighWeight},</if>
+            <if test="fPredictBranch != null">f_predict_branch = #{fPredictBranch},</if>
+            <if test="fGrade != null">f_grade = #{fGrade},</if>
+            <if test="fDeliveryDetails != null">f_delivery_details = #{fDeliveryDetails},</if>
+            <if test="fSalesmanId != null">f_salesman_id = #{fSalesmanId},</if>
+            <if test="fItemstatus != null">f_itemstatus = #{fItemstatus},</if>
         </trim>
         where f_id = #{fId}
     </update>

+ 36 - 3
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -65,6 +65,8 @@
         <result property="fForkliftman" column="f_forkliftman"/>
         <result property="fLocalcntrno" column="f_localcntrno"/>
         <result property="fSealno" column="f_sealno"/>
+        <result property="fNowCarton"  column="f_now_carton" />
+        <result property="fItemstatus"    column="f_itemstatus"    />
     </resultMap>
 
     <sql id="selectTWarehousebillsitemsVo">
@@ -74,7 +76,7 @@
            del_flag, create_by, create_time, update_by, update_time, remark, f_inventory_days, f_storage_fee_deadline, f_amt, f_billing_days,
             f_driver_name, f_driver_tel, f_driver_id_car, f_serial_number, f_is_pass, f_billtype, f_billing_qty, f_billing_deadline, f_business_type,
              f_is_inventory, f_warehouse_information, f_orgwarehouse_information, f_labour, f_fleet, f_stevedore, f_lntype, f_forkliftman,
-              f_localcntrno, f_sealno from t_warehousebillsitems
+              f_localcntrno, f_sealno,f_now_carton,f_itemstatus from t_warehousebillsitems
     </sql>
 
     <select id="selectTWarehousebillsitemsList" parameterType="TWarehousebillsitems"
@@ -187,7 +189,8 @@
             item.f_lntype AS fLntype,
             item.f_sealno AS fSealno,
             item.f_warehouse_information AS fWarehouseInformation,
-            item.f_orgwarehouse_information AS fOrgwarehouseInformation
+            item.f_orgwarehouse_information AS fOrgwarehouseInformation,
+            item.f_now_carton AS fNowCarton
         FROM
             t_warehousebills w
             LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
@@ -269,6 +272,8 @@
             <if test="fForkliftman != null">f_forkliftman,</if>
             <if test="fLocalcntrno != null">f_localcntrno,</if>
             <if test="fSealno != null">f_sealno,</if>
+            <if test="fNowCarton != null">f_now_carton,</if>
+            <if test="fItemstatus != null">f_itemstatus,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fPid != null">#{fPid},</if>
@@ -330,6 +335,8 @@
             <if test="fForkliftman != null">#{fForkliftman},</if>
             <if test="fLocalcntrno != null">#{fLocalcntrno},</if>
             <if test="fSealno != null">#{fSealno},</if>
+            <if test="fNowCarton != null">#{fNowCarton},</if>
+            <if test="fItemstatus != null">#{fItemstatus},</if>
         </trim>
     </insert>
 
@@ -395,6 +402,8 @@
             <if test="fForkliftman != null">f_forkliftman = #{fForkliftman},</if>
             <if test="fLocalcntrno != null">f_localcntrno = #{fLocalcntrno},</if>
             <if test="fSealno != null">f_sealno = #{fSealno},</if>
+            <if test="fNowCarton != null">f_now_carton = #{fNowCarton},</if>
+            <if test="fItemstatus != null">f_itemstatus = #{fItemstatus},</if>
         </trim>
         where f_id = #{fId}
     </update>
@@ -675,7 +684,7 @@
             f_pid = #{fId}
     </select>
 
-    <select id="selectItemsStatusByPid" resultType="com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems">
+    <select id="selectItemsStatusByPid" resultMap="TWarehousebillsitemsResult" parameterType="long">
         SELECT
             f_id,
             f_billstatus,
@@ -694,5 +703,29 @@
         where
             f_pid = #{fPid}
     </update>
+    <select id="getFchargedate" parameterType="Long" resultType="date">
+        SELECT
+            f_chargedate
+        FROM
+            t_warehousebillsitems
+        WHERE f_chargedate IS NOT NULL
+        and f_pid = #{fPid}
+        ORDER BY f_chargedate
+        LIMIT 1
+    </select>
+    <update id="warehouseItemfChargedate" parameterType="Long">
+        update
+            t_warehousebillsitems
+        SET f_chargedate = #{fChargedate}
+        where
+            f_pid = #{fPid}
+    </update>
+    <update id="warehouseItemfItemstatus" parameterType="Long">
+        update
+            t_warehousebillsitems
+        SET f_itemstatus = #{fItemstatus}
+        where
+            f_pid = #{fPid}
+    </update>
 
 </mapper>