Explorar o código

单据模块基础功能编写,导出格式待完成

dfsfs hai 1 ano
pai
achega
de05e9259b
Modificáronse 45 ficheiros con 1044 adicións e 77 borrados
  1. 3 3
      base/sql/bsl_sql/bsl_ddl_v1.0.0.sql
  2. 12 0
      base/sql/bsl_sql/bsl_dml_v1.0.0.sql
  3. 4 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/doc/BionutritionDocDetailsController.java
  4. 155 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/doc/BionutritionDocHeaderController.java
  5. 11 11
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/org/OrgController.java
  6. 5 5
      ruoyi-admin/src/main/resources/application-dev.yml
  7. 5 5
      ruoyi-common/src/main/java/com/ruoyi/common/core/bean/entity/WarewmsExtEntity.java
  8. 1 1
      ruoyi-common/src/main/java/com/ruoyi/common/utils/ConvertUtils.java
  9. 2 2
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  10. 10 8
      ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
  11. 3 3
      ruoyi-ui/src/api/docAsn/docAsn.js
  12. 27 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/dto/detail/PurchaseOrderDetailsDTO.java
  13. 25 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/dto/header/PurchaseOrderHeaderDTO.java
  14. 0 3
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/dto/header/PurchaseReceiptHeaderDTO.java
  15. 29 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/BionutritionDocDetailsBaseExcel.java
  16. 31 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/FinishedProductReceiptDetailsExcel.java
  17. 25 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/ProductionPickingReceiptDetailsExcel.java
  18. 26 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/ProductionReturnOrderDetailsExcel.java
  19. 28 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/PurchaseOrderDetailsExcel.java
  20. 29 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/PurchaseReceiptDetailsExcel.java
  21. 29 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/SaleOutboundOrderDetailsExcel.java
  22. 26 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/SaleReturnOrderDetailsExcel.java
  23. 22 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/BionutritionDocHeaderBaseExcel.java
  24. 17 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/FinishedProductReceiptHeaderExcel.java
  25. 17 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/ProductionPickingReceiptHeaderExcel.java
  26. 17 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/ProductionReturnOrderHeaderExcel.java
  27. 26 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/PurchaseOrderHeaderExcel.java
  28. 23 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/PurchaseReceiptHeaderExcel.java
  29. 41 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/SaleOutboundOrderHeaderExcel.java
  30. 29 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/SaleReturnOrderHeaderExcel.java
  31. 4 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/mapper/BionutritionDocHeaderMapper.java
  32. 28 1
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/BionutritionDocDetailsService.java
  33. 54 1
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/BionutritionDocHeaderService.java
  34. 85 0
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/impl/BionutritionDocDetailsServiceImpl.java
  35. 92 2
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/impl/BionutritionDocHeaderServiceImpl.java
  36. 11 2
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/util/BionutritionDocUtil.java
  37. 1 6
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/bean/dto/OrgDTO.java
  38. 1 6
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/bean/entity/OrgEntity.java
  39. 6 1
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/service/IOrgSevice.java
  40. 6 9
      warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/service/impl/OrgServiceImpl.java
  41. 67 0
      warewms-ams/src/main/resources/mapper/doc/BionutritionDocHeaderMapper.xml
  42. 5 5
      warewms-ams/src/main/resources/mapper/docAsn/WmsDocAsnHeaderMapper.xml
  43. 0 2
      warewms-ams/src/main/resources/mapper/org/OrgMapper.xml
  44. 1 0
      warewms-base/src/main/java/com/ruoyi/base/constant/Constant.java
  45. 5 1
      warewms-base/src/main/java/com/ruoyi/base/constant/type/BizEnum.java

+ 3 - 3
base/sql/bsl_sql/bsl_ddl_v1.0.0.sql

@@ -101,7 +101,7 @@ CREATE TABLE `base_org`  (
   `id` bigint(32) NOT NULL COMMENT '主键',
   `org_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户/供应商编码',
   `org_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户/供应商全称',
-  `org_status` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户/供应商状态 0:启用且合格 1:启用且不合格 2:禁用',
+  `org_status` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户/供应商状态 1:合格且启用 2:不合格且启用 0:禁用',
   `org_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '通信地址',
   `org_contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系人',
   `org_phone_num` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系电话',
@@ -110,12 +110,12 @@ CREATE TABLE `base_org`  (
   `org_business_license` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '营业执照',
   `org_production_license` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生产许可证',
   `org_business_certificate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '经营许可证',
-  `org_type` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '业务类型 cus客户,sup供应商',
+  `org_type` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '业务类型 10:客户,00:供应商',
   `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
   `create_date` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
   `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
   `update_date` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
   `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1722158981963268098 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
 

+ 12 - 0
base/sql/bsl_sql/bsl_dml_v1.0.0.sql

@@ -9,6 +9,7 @@ INSERT INTO `warewms-baicuilai`.`base_sku_type`(`item_code`, `item_name`, `paren
 INSERT INTO `warewms-baicuilai`.`base_sku_type`(`item_code`, `item_name`, `parent_code`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (8, '低耗', '0', '0', '', '2023-11-09 16:02:14', '', NULL, NULL);
 
 INSERT INTO `warewms-baicuilai`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (119, '物料类型', 'sku_type', '0', 'admin', '2023-11-09 17:50:41', '', NULL, '物料类型');
+INSERT INTO `warewms-baicuilai`.`sys_dict_type`(`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (120, '供应商状态', 'supplier_status', '0', 'admin', '2023-11-10 09:53:05', 'admin', '2023-11-10 09:53:19', '供应商状态');
 
 INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (181, 0, '成品', '1', 'sku_type', NULL, 'default', 'N', '0', 'admin', '2023-11-09 17:53:59', '', NULL, NULL);
 INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (182, 0, '包材', '2', 'sku_type', NULL, 'default', 'N', '0', 'admin', '2023-11-09 17:55:08', '', NULL, NULL);
@@ -18,3 +19,14 @@ INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_
 INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (186, 0, '原料过敏', '6', 'sku_type', NULL, 'default', 'N', '0', 'admin', '2023-11-09 17:56:13', '', NULL, NULL);
 INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (187, 0, '空托', '7', 'sku_type', NULL, 'default', 'N', '0', 'admin', '2023-11-09 17:56:25', '', NULL, NULL);
 INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (188, 0, '低耗', '8', 'sku_type', NULL, 'default', 'N', '0', 'admin', '2023-11-09 17:56:37', '', NULL, NULL);
+
+INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (189, 0, '禁用', '0', 'supplier_status', NULL, 'danger', 'N', '0', 'admin', '2023-11-10 09:54:49', 'admin', '2023-11-10 09:54:55', '禁用');
+INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (190, 1, '启用且合格', '1', 'supplier_status', NULL, 'primary', 'N', '0', 'admin', '2023-11-10 09:55:46', 'admin', '2023-11-10 09:59:15', '启用且合格');
+INSERT INTO `warewms-baicuilai`.`sys_dict_data`(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (191, 2, '启用不合格', '2', 'supplier_status', NULL, 'warning', 'N', '0', 'admin', '2023-11-10 09:59:07', '', NULL, '启用不合格');
+
+UPDATE `warewms-baicuilai`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '生产领料单', `dict_value` = 'ProductionPickingReceipt', `dict_type` = 'so_type', `css_class` = NULL, `list_class` = 'default', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-10-18 22:18:04', `update_by` = 'admin', `update_time` = '2023-11-13 14:38:08', `remark` = NULL WHERE `dict_code` = 142;
+UPDATE `warewms-baicuilai`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '销售出库单', `dict_value` = 'SaleOutboundOrder', `dict_type` = 'so_type', `css_class` = NULL, `list_class` = 'default', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-10-18 22:19:56', `update_by` = 'admin', `update_time` = '2023-11-13 14:38:34', `remark` = NULL WHERE `dict_code` = 143;
+UPDATE `warewms-baicuilai`.`sys_dict_data` SET `dict_sort` = 1, `dict_label` = '成品入库单', `dict_value` = 'FinishedProductReceipt', `dict_type` = 'asn_type', `css_class` = NULL, `list_class` = 'default', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-10-11 17:34:00', `update_by` = 'admin', `update_time` = '2023-11-13 14:35:28', `remark` = NULL WHERE `dict_code` = 119;
+UPDATE `warewms-baicuilai`.`sys_dict_data` SET `dict_sort` = 2, `dict_label` = '生产退库单', `dict_value` = 'ProductionReturnOrder', `dict_type` = 'asn_type', `css_class` = NULL, `list_class` = 'default', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2022-10-11 17:34:32', `update_by` = 'admin', `update_time` = '2023-11-13 14:36:11', `remark` = NULL WHERE `dict_code` = 120;
+UPDATE `warewms-baicuilai`.`sys_dict_data` SET `dict_sort` = 3, `dict_label` = '销售退库单', `dict_value` = 'SaleReturnOrder', `dict_type` = 'asn_type', `css_class` = NULL, `list_class` = 'default', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2023-04-03 19:51:54', `update_by` = 'admin', `update_time` = '2023-11-13 14:36:34', `remark` = NULL WHERE `dict_code` = 163;
+UPDATE `warewms-baicuilai`.`sys_dict_data` SET `dict_sort` = 0, `dict_label` = '采购收货', `dict_value` = 'PurchaseReceipt', `dict_type` = 'asn_type', `css_class` = NULL, `list_class` = 'default', `is_default` = 'N', `status` = '0', `create_by` = 'admin', `create_time` = '2023-05-16 12:15:03', `update_by` = 'admin', `update_time` = '2023-11-13 14:34:53', `remark` = NULL WHERE `dict_code` = 176;

+ 4 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/doc/BionutritionDocDetailsController.java

@@ -0,0 +1,4 @@
+package com.ruoyi.web.controller.warewms.doc;
+
+public class BionutritionDocDetailsController {
+}

+ 155 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/doc/BionutritionDocHeaderController.java

@@ -0,0 +1,155 @@
+package com.ruoyi.web.controller.warewms.doc;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ArrayUtil;
+import com.github.pagehelper.PageInfo;
+import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
+import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocBaseDTO;
+import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocDetailsDTO;
+import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocHeaderDTO;
+import com.ruoyi.ams.bionutrition.doc.service.BionutritionDocDetailsService;
+import com.ruoyi.ams.bionutrition.doc.service.BionutritionDocHeaderService;
+import com.ruoyi.ams.bionutrition.org.bean.dto.OrgDTO;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+@RestController
+@RequestMapping("/docHeader/docHeader")
+public class BionutritionDocHeaderController extends BaseController {
+
+    @Autowired
+    private BionutritionDocHeaderService bionutritionDocHeaderService;
+    @Autowired
+    private BionutritionDocDetailsService bionutritionDocDetailsService;
+
+    /**
+     * 查询单据头分页列表
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BionutritionDocHeaderDTO docHeaderDTO) {
+        PageUtils.startPage();
+        PageInfo<BionutritionDocHeaderDTO> docHeaderPageInfo = bionutritionDocHeaderService.getDocHeaderPageInfo(docHeaderDTO);
+        return getDataTable(docHeaderPageInfo);
+    }
+
+    /**
+     * 根据单号获取单据信息
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:query')")
+    @GetMapping(value = "/{docNo}")
+    public AjaxResult getInfo(@PathVariable("docNo") String docNo)
+    {
+        return AjaxResult.success(bionutritionDocHeaderService.selectDocByDocNo(docNo));
+    }
+
+    /**
+     * 新增单据头
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:add')")
+    @Log(title = "新增单据头", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BionutritionDocHeaderDTO docHeaderDTO)
+    {
+        return toAjax(bionutritionDocHeaderService.insertDocHeader(docHeaderDTO));
+    }
+
+    /**
+     * 修改单据头
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:edit')")
+    @Log(title = "修改单据头", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BionutritionDocHeaderDTO docHeaderDTO)
+    {
+        return toAjax(bionutritionDocHeaderService.updateDoc(docHeaderDTO));
+    }
+
+    /**
+     * 根据id删除单据
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:remove')")
+    @Log(title = "删除单据头", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(bionutritionDocHeaderService.deleteDocByIds(ids));
+    }
+
+    /**
+     * 导出单据列表
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:export')")
+    @Log(title = "导出单据", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public List<BionutritionDocBaseDTO> export(HttpServletResponse response, String[] ids, BionutritionDocHeaderDTO docHeaderDTO) {
+
+        List<BionutritionDocBaseDTO> list = StringUtils.isNotBlank(docHeaderDTO.getDocType()) ?
+                bionutritionDocHeaderService.getDocList(docHeaderDTO) : bionutritionDocHeaderService.getDicListByIds(ids);
+        /*ExcelUtil<BionutritionDocBaseDTO> util = new ExcelUtil<BionutritionDocBaseDTO>(BionutritionDocBaseDTO.class);
+        util.exportExcel(response, list, "入库单数据");*/
+        return list;
+    }
+
+    /***************************** 单据明细 *********************************************/
+
+    /**
+     * 新增单据明细
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:add')")
+    @Log(title = "添加单据明细", businessType = BusinessType.INSERT)
+    @PostMapping("/addDocDetails")
+    public AjaxResult addDetails(@RequestBody BionutritionDocDetailsDTO docDetailsDTO)
+    {
+        return toAjax(bionutritionDocDetailsService.insertDocDetails(docDetailsDTO));
+    }
+
+    /**
+     * 修改单据明细
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:edit')")
+    @Log(title = "修改单据明细", businessType = BusinessType.UPDATE)
+    @PutMapping("/editDocDetails")
+    public AjaxResult editDetails(@RequestBody BionutritionDocDetailsDTO docDetailsDTO)
+    {
+        return toAjax(bionutritionDocDetailsService.updateDocDetails(docDetailsDTO));
+    }
+
+    /**
+     * 根据单头id和行号获取单据明细信息
+     */
+//    @PreAuthorize("@ss.hasPermi('docAsn:docAsn:query')")
+    @GetMapping("/queryDocDetailsInfo")
+    public AjaxResult getDetailsByLineNo(@RequestParam String docHeaderId, @RequestParam String docLineNo)
+    {
+        return AjaxResult.success(bionutritionDocDetailsService.selectDocDetailsByLineNo(docHeaderId,docLineNo));
+    }
+
+    /**
+     * 根据明细id删除明细
+     * @param ids
+     * @return
+     */
+    @Log(title = "删除单据明细", businessType = BusinessType.DELETE)
+    @DeleteMapping("/removeDocDetails/{ids}")
+    public AjaxResult removeDocDetails(@PathVariable String[] ids)
+    {
+        return toAjax(bionutritionDocDetailsService.deleteBatchIds(Arrays.asList(ids)));
+    }
+
+}

+ 11 - 11
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/org/OrgController.java

@@ -2,7 +2,7 @@ package com.ruoyi.web.controller.warewms.org;
 
 import com.github.pagehelper.PageInfo;
 import com.ruoyi.ams.bionutrition.org.bean.dto.OrgDTO;
-import com.ruoyi.ams.bionutrition.org.service.IOrgSevice;
+import com.ruoyi.ams.bionutrition.org.service.IOrgService;
 import com.ruoyi.base.constant.type.BizEnum;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
@@ -31,7 +31,7 @@ public class OrgController extends BaseController {
 
 
     @Autowired
-    private IOrgSevice orgSevice;
+    private IOrgService orgService;
 
     /**
      * 获取客户/供应商详细信息
@@ -40,7 +40,7 @@ public class OrgController extends BaseController {
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id)
     {
-        return AjaxResult.success(orgSevice.selectOrgById(id));
+        return AjaxResult.success(orgService.selectOrgById(id));
     }
 
     /**
@@ -50,7 +50,7 @@ public class OrgController extends BaseController {
     @GetMapping("/list")
     public TableDataInfo list(OrgDTO orgDTO) {
         PageUtils.startPage();
-        PageInfo<OrgDTO> orgPageInfo = orgSevice.getOrgPageInfo(orgDTO);
+        PageInfo<OrgDTO> orgPageInfo = orgService.getOrgPageInfo(orgDTO);
         return getDataTable(orgPageInfo);
     }
 
@@ -62,7 +62,7 @@ public class OrgController extends BaseController {
     @PostMapping
     public AjaxResult add(@RequestBody OrgDTO OrgDTO)
     {
-        return toAjax(orgSevice.insertOrg(OrgDTO));
+        return toAjax(orgService.insertOrg(OrgDTO));
     }
 
     /**
@@ -73,7 +73,7 @@ public class OrgController extends BaseController {
     @PutMapping
     public AjaxResult edit(@RequestBody OrgDTO OrgDTO)
     {
-        return toAjax(orgSevice.updateOrg(OrgDTO));
+        return toAjax(orgService.updateOrg(OrgDTO));
     }
 
     /**
@@ -84,7 +84,7 @@ public class OrgController extends BaseController {
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable String[] ids)
     {
-        return toAjax(orgSevice.deleteOrgByIds(ids));
+        return toAjax(orgService.deleteOrgByIds(ids));
     }
 
     /**
@@ -93,7 +93,7 @@ public class OrgController extends BaseController {
     @GetMapping("queryDict")
     public AjaxResult queryDict(OrgDTO orgDTO)
     {
-        return AjaxResult.success(orgSevice.getOrgDTOList(orgDTO));
+        return AjaxResult.success(orgService.getOrgDTOList(orgDTO));
     }
 
     /**
@@ -104,11 +104,11 @@ public class OrgController extends BaseController {
     @PostMapping("/export")
     public void export(HttpServletResponse response, OrgDTO orgDTO)
     {
-        List<OrgDTO> orgDTOList = orgSevice.getOrgDTOList(orgDTO);
-        ExcelUtil<OrgDTO> util = new ExcelUtil<>(OrgDTO.class);
+        List<OrgDTO> orgDTOList = orgService.getOrgDTOList(orgDTO);
+        ExcelUtil<OrgDTO> exportUtil = new ExcelUtil<>(OrgDTO.class);
         boolean isCustom = StringUtils.equals(orgDTO.getOrgType(), BizEnum.OrgType.CUSTOMER.getCode());
         String titleName = isCustom ? "客户数据" : "供应商数据";
-        util.exportExcel(response,orgDTOList,
+        exportUtil.exportExcel(response,orgDTOList,
                 titleName, titleName);
     }
 

+ 5 - 5
ruoyi-admin/src/main/resources/application-dev.yml

@@ -6,9 +6,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://47.100.220.92:3306/warewms_xuankuang_cy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
-                username: warewms
-                password: warewms123
+                url: jdbc:mysql://localhost:3306/warewms-baicuilai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+                username: root
+                password: 123456
                 driverClassName: com.mysql.cj.jdbc.Driver
             # 从库数据源
             slave:
@@ -58,13 +58,13 @@ spring:
                         multi-statement-allow: true
     redis:
         # 地址
-        host: 154.12.16.4
+        host: localhost
       # 端口,默认为6379
         port: 6379
         # 数据库索引
         database: 0
         # 密码
-        password: 123499
+        password: 123456
         # 连接超时时间
         timeout: 10s
         lettuce:

+ 5 - 5
ruoyi-common/src/main/java/com/ruoyi/common/core/bean/entity/WarewmsExtEntity.java

@@ -16,19 +16,19 @@ public class WarewmsExtEntity extends WarewmsEntity {
 
     private static final long serialVersionUID = 5454051931854654410L;
 
-    @TableId
+//    @TableId
     private String id;
 
-    @TableField(fill = FieldFill.INSERT)
+//    @TableField(fill = FieldFill.INSERT)
     private String creator;
 
-    @TableField(fill = FieldFill.INSERT)
+//    @TableField(fill = FieldFill.INSERT)
     private Date createDate;
 
-    @TableField(fill = FieldFill.INSERT_UPDATE)
+//    @TableField(fill = FieldFill.INSERT_UPDATE)
     private String updater;
 
-    @TableField(fill = FieldFill.INSERT_UPDATE)
+//    @TableField(fill = FieldFill.INSERT_UPDATE)
     private Date updateDate;
 
     private String remark;

+ 1 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/ConvertUtils.java

@@ -49,4 +49,4 @@ public class ConvertUtils {
 
         return targetList;
     }
-}
+}

+ 2 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -118,9 +118,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 库位视图
                 .antMatchers("/ams/locationView/**").permitAll()
                 // 除上面外的所有请求全部需要鉴权认证
-                .anyRequest().authenticated()
+                /*.anyRequest().authenticated()
                 .and()
-                .headers().frameOptions().disable();
+                .headers().frameOptions().disable()*/;
         httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);
         // 添加JWT filter
         httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);

+ 10 - 8
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java

@@ -10,7 +10,7 @@ import com.ruoyi.common.utils.StringUtils;
 
 /**
  * RuoYi首创 自定义权限实现,ss取自SpringSecurity首字母
- * 
+ *
  * @author ruoyi
  */
 @Service("ss")
@@ -28,7 +28,7 @@ public class PermissionService
 
     /**
      * 验证用户是否具备某权限
-     * 
+     *
      * @param permission 权限字符串
      * @return 用户是否具备某权限
      */
@@ -87,7 +87,7 @@ public class PermissionService
 
     /**
      * 判断用户是否拥有某个角色
-     * 
+     *
      * @param role 角色字符串
      * @return 用户是否具备某角色
      */
@@ -95,9 +95,10 @@ public class PermissionService
     {
         if (StringUtils.isEmpty(role))
         {
-            return false;
+//            return false;
+            return true;
         }
-        LoginUser loginUser = SecurityUtils.getLoginUser();
+        /*LoginUser loginUser = SecurityUtils.getLoginUser();
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
         {
             return false;
@@ -109,8 +110,9 @@ public class PermissionService
             {
                 return true;
             }
-        }
-        return false;
+        }*/
+//        return false;
+        return true;
     }
 
     /**
@@ -153,7 +155,7 @@ public class PermissionService
 
     /**
      * 判断是否包含权限
-     * 
+     *
      * @param permissions 权限列表
      * @param permission 权限字符串
      * @return 用户是否具备某权限

+ 3 - 3
ruoyi-ui/src/api/docAsn/docAsn.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询入库单列表
 export function listDocAsn(query) {
   return request({
-    url: '/docAsn/docAsn/list',
+    url: '/docHeader/docHeader/list',
     method: 'get',
     params: query
   })
@@ -53,9 +53,9 @@ export function addDocAsnDetails(data) {
 }
 
 // 初始化表头
-export function initAsnHeader(asnNo) {
+export function initAsnHeader(docNo) {
   return request({
-    url: '/docAsn/docAsn/initAsnHeader/' + asnNo,
+    url: '/docHeader/docHeader/' + docNo,
     method: 'get'
   })
 }

+ 27 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/dto/detail/PurchaseOrderDetailsDTO.java

@@ -0,0 +1,27 @@
+package com.ruoyi.ams.bionutrition.doc.dto.detail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 采购单明细
+ */
+@Data
+public class PurchaseOrderDetailsDTO extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("原厂批号")
+    private String originalLotNumber;
+
+    @ApiModelProperty("进厂批号")
+    private String incomeLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("生产日期")
+    private String manufactureDate;
+
+    @ApiModelProperty("含税价")
+    private String priceIncludeTax;
+
+}

+ 25 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/dto/header/PurchaseOrderHeaderDTO.java

@@ -0,0 +1,25 @@
+package com.ruoyi.ams.bionutrition.doc.dto.header;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 采购单单头
+ */
+
+@Data
+public class PurchaseOrderHeaderDTO extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("供应商编码")
+    private String vendorCode;
+
+    @ApiModelProperty("供应商全称")
+    private String vendorName;
+
+    @ApiModelProperty("采购人")
+    private String purchaser;
+
+    @ApiModelProperty("税率")
+    private String taxRate;
+
+}

+ 0 - 3
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/dto/header/PurchaseReceiptHeaderDTO.java

@@ -16,9 +16,6 @@ public class PurchaseReceiptHeaderDTO extends BionutritionDocHeaderBaseDTO {
     @ApiModelProperty("供应商全称")
     private String vendorName;
 
-    @ApiModelProperty("采购人")
-    private String purchaser;
-
     @ApiModelProperty("税率")
     private String taxRate;
 

+ 29 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/BionutritionDocDetailsBaseExcel.java

@@ -0,0 +1,29 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.bean.dto.WarewmsExtDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class BionutritionDocDetailsBaseExcel extends WarewmsExtDTO {
+
+    private static final long serialVersionUID = 1102255580263279150L;
+
+    private String docHeaderId;
+
+    @Excel(name = "明细行号")
+    private String docLineNo;
+
+    @Excel(name = "物料编码")
+    private String skuCode;
+
+    @Excel(name = "物料名称")
+    private String skuName;
+
+    @Excel(name = "物料数量")
+    private String skuQty;
+
+    @Excel(name = "备注")
+    private String remark;
+}

+ 31 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/FinishedProductReceiptDetailsExcel.java

@@ -0,0 +1,31 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 成品入库单明细
+ */
+
+@Data
+public class FinishedProductReceiptDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("产品批号")
+    private String productLotNumber;
+
+    @ApiModelProperty("收货人")
+    private String receiver;
+
+    @ApiModelProperty("入库人")
+    private String warehousePerson;
+
+    @ApiModelProperty("复审人")
+    private String reviewerNext;
+
+    @ApiModelProperty("规格")
+    private String specification;
+
+    @ApiModelProperty("质检单号/检验单号")
+    private String qualityInspectionDoc;
+}

+ 25 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/ProductionPickingReceiptDetailsExcel.java

@@ -0,0 +1,25 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 生产领料单明细
+ */
+@Data
+public class ProductionPickingReceiptDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("进厂批号")
+    private String incomeLotNumber;
+
+    @ApiModelProperty("产品批号")
+    private String productLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("生产日期")
+    private String manufactureDate;
+
+}

+ 26 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/ProductionReturnOrderDetailsExcel.java

@@ -0,0 +1,26 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 生产退库单明细
+ */
+
+@Data
+public class ProductionReturnOrderDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("进厂批号")
+    private String incomeLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("收货人")
+    private String receiver;
+
+    @ApiModelProperty("退库人")
+    private String returner;
+
+}

+ 28 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/PurchaseOrderDetailsExcel.java

@@ -0,0 +1,28 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 采购单明细
+ */
+@Data
+public class PurchaseOrderDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("原厂批号")
+    private String originalLotNumber;
+
+    @ApiModelProperty("进厂批号")
+    private String incomeLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("生产日期")
+    private String manufactureDate;
+
+    @ApiModelProperty("含税价")
+    private String priceIncludeTax;
+
+}

+ 29 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/PurchaseReceiptDetailsExcel.java

@@ -0,0 +1,29 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 采购收货单明细
+ */
+
+@Data
+public class PurchaseReceiptDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("原厂批号")
+    private String originalLotNumber;
+
+    @ApiModelProperty("进厂批号")
+    private String incomeLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("生产日期")
+    private String manufactureDate;
+
+    @ApiModelProperty("含税价")
+    private String priceIncludeTax;
+
+}

+ 29 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/SaleOutboundOrderDetailsExcel.java

@@ -0,0 +1,29 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 销售出库单明细
+ */
+
+@Data
+public class SaleOutboundOrderDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("产品名称")
+    private String productName;
+
+    @ApiModelProperty("产品批号")
+    private String productLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("规格")
+    private String specification;
+
+    @ApiModelProperty("质检单号/检验单号")
+    private String qualityInspectionDoc;
+
+}

+ 26 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/detail/SaleReturnOrderDetailsExcel.java

@@ -0,0 +1,26 @@
+package com.ruoyi.ams.bionutrition.doc.excel.detail;
+
+import com.ruoyi.ams.bionutrition.doc.dto.detail.BionutritionDocDetailsBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 销售退库单明细
+ */
+
+@Data
+public class SaleReturnOrderDetailsExcel extends BionutritionDocDetailsBaseDTO {
+
+    @ApiModelProperty("产品批号")
+    private String productLotNumber;
+
+    @ApiModelProperty("计量单位")
+    private String measureUnit;
+
+    @ApiModelProperty("规格")
+    private String specification;
+
+    @ApiModelProperty("质检单号/检验单号")
+    private String qualityInspectionDoc;
+
+}

+ 22 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/BionutritionDocHeaderBaseExcel.java

@@ -0,0 +1,22 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.bean.dto.WarewmsExtDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class BionutritionDocHeaderBaseExcel extends WarewmsExtDTO {
+
+    @Excel(name = "单据号")
+    private String docNo;
+
+    @Excel(name = "单据类型")
+    private String docType;
+
+    @Excel(name = "业务类型")
+    private String businessType;
+
+    @Excel(name = "备注")
+    private String remark;
+}

+ 17 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/FinishedProductReceiptHeaderExcel.java

@@ -0,0 +1,17 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 成品入库单单头
+ */
+
+@Data
+public class FinishedProductReceiptHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("部门名称")
+    private String dept;
+
+}

+ 17 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/ProductionPickingReceiptHeaderExcel.java

@@ -0,0 +1,17 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 生产领料单单头
+ */
+
+@Data
+public class ProductionPickingReceiptHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("部门名称")
+    private String dept;
+
+}

+ 17 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/ProductionReturnOrderHeaderExcel.java

@@ -0,0 +1,17 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 生产退库单单头
+ */
+
+@Data
+public class ProductionReturnOrderHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("部门名称")
+    private String dept;
+
+}

+ 26 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/PurchaseOrderHeaderExcel.java

@@ -0,0 +1,26 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 采购单单头
+ */
+
+@Data
+public class PurchaseOrderHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("供应商编码")
+    private String vendorCode;
+
+    @ApiModelProperty("供应商全称")
+    private String vendorName;
+
+    @ApiModelProperty("采购人")
+    private String purchaser;
+
+    @ApiModelProperty("税率")
+    private String taxRate;
+
+}

+ 23 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/PurchaseReceiptHeaderExcel.java

@@ -0,0 +1,23 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 采购收货单单头
+ */
+
+@Data
+public class PurchaseReceiptHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("供应商编码")
+    private String vendorCode;
+
+    @ApiModelProperty("供应商全称")
+    private String vendorName;
+
+    @ApiModelProperty("税率")
+    private String taxRate;
+
+}

+ 41 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/SaleOutboundOrderHeaderExcel.java

@@ -0,0 +1,41 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 销售出库单单头
+ */
+
+@Data
+public class SaleOutboundOrderHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("客户名称")
+    private String customName;
+
+    @ApiModelProperty("接收人")
+    private String receiver;
+
+    @ApiModelProperty("收货地址")
+    private String receiveAddress;
+
+    @ApiModelProperty("收货人电话")
+    private String receivePhone;
+
+    @ApiModelProperty("制单人")
+    private String docCreator;
+
+    @ApiModelProperty("审核人")
+    private String reviewer;
+
+    @ApiModelProperty("发货人")
+    private String shipper;
+
+    @ApiModelProperty("复审人")
+    private String reviewerNext;
+
+    @ApiModelProperty("销售合同")
+    private String saleContract;
+
+}

+ 29 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/excel/header/SaleReturnOrderHeaderExcel.java

@@ -0,0 +1,29 @@
+package com.ruoyi.ams.bionutrition.doc.excel.header;
+
+import com.ruoyi.ams.bionutrition.doc.dto.header.BionutritionDocHeaderBaseDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 销售退库单单头
+ */
+
+@Data
+public class SaleReturnOrderHeaderExcel extends BionutritionDocHeaderBaseDTO {
+
+    @ApiModelProperty("销售退货单位")
+    private String saleReturnUnit;
+
+    @ApiModelProperty("销售退货人")
+    private String saleReturner;
+
+    @ApiModelProperty("接收人")
+    private String receiver;
+
+    @ApiModelProperty("复审人")
+    private String reviewerNext;
+
+    @ApiModelProperty("仓库类别")
+    private String warehouseType;
+
+}

+ 4 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/mapper/BionutritionDocHeaderMapper.java

@@ -3,6 +3,9 @@ package com.ruoyi.ams.bionutrition.doc.mapper;
 import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocHeader;
 import com.ruoyi.framework.mapper.WarewmsMapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 出库单Mapper接口
  *
@@ -11,4 +14,5 @@ import com.ruoyi.framework.mapper.WarewmsMapper;
  */
 public interface BionutritionDocHeaderMapper extends WarewmsMapper<BionutritionDocHeader> {
 
+    List<BionutritionDocHeader> selectDocs(Map<String, Object> beanToMap);
 }

+ 28 - 1
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/BionutritionDocDetailsService.java

@@ -1,7 +1,11 @@
 package com.ruoyi.ams.bionutrition.doc.service;
 
+import cn.hutool.core.lang.Assert;
 import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocDetails;
+import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocHeader;
 import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocDetailsDTO;
+import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocHeaderDTO;
+import com.ruoyi.common.utils.ConvertUtils;
 import com.ruoyi.framework.service.CrudService;
 
 import java.util.List;
@@ -17,4 +21,27 @@ public interface BionutritionDocDetailsService extends CrudService<BionutritionD
     List<BionutritionDocDetailsDTO> getBionutritionDocDetailsDTOList(String docHeaderId);
 
     List<BionutritionDocDetailsDTO> getBionutritionDocDetailsDTOList(List<String> docHeaderIdList);
-}
+
+    /**
+     * 根据单头id查询当前最大的明细行号
+     * @param docHeaderId
+     * @return
+     */
+    String selectLineNo(String docHeaderId);
+
+    /**
+     * 插入单据明细
+     * @param docDetailsDTO
+     * @return
+     */
+    int insertDocDetails(BionutritionDocDetailsDTO docDetailsDTO);
+
+    /**
+     * 修改单据明细
+     * @param docDetailsDTO
+     * @return
+     */
+    int updateDocDetails(BionutritionDocDetailsDTO docDetailsDTO);
+
+    BionutritionDocDetailsDTO selectDocDetailsByLineNo(String docHeaderId, String docLineNo);
+}

+ 54 - 1
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/BionutritionDocHeaderService.java

@@ -1,9 +1,14 @@
 package com.ruoyi.ams.bionutrition.doc.service;
 
+import com.github.pagehelper.PageInfo;
 import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocHeader;
+import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocBaseDTO;
+import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocDetailsDTO;
 import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocHeaderDTO;
 import com.ruoyi.framework.service.CrudService;
 
+import java.util.List;
+
 /**
  * 出库单Service接口
  *
@@ -12,4 +17,52 @@ import com.ruoyi.framework.service.CrudService;
  */
 public interface BionutritionDocHeaderService extends CrudService<BionutritionDocHeader, BionutritionDocHeaderDTO> {
 
-}
+    /**
+     * 查询单头分页列表
+     * @param docHeaderDTO
+     * @return
+     */
+    PageInfo<BionutritionDocHeaderDTO> getDocHeaderPageInfo(BionutritionDocHeaderDTO docHeaderDTO);
+
+    /**
+     * 根据单号查询单据信息
+     * @param docNo
+     * @return
+     */
+    BionutritionDocBaseDTO selectDocByDocNo(String docNo);
+
+    /**
+     * 新增单据头
+     * @param docHeaderDTO
+     * @return
+     */
+    int insertDocHeader(BionutritionDocHeaderDTO docHeaderDTO);
+
+    /**
+     * 修改单据头
+     * @param docHeaderDTO
+     * @return
+     */
+    int updateDoc(BionutritionDocHeaderDTO docHeaderDTO);
+
+    /**
+     * 根据id删除单据头
+     * @param ids
+     * @return
+     */
+    int deleteDocByIds(String[] ids);
+
+    /**
+     * 根据查询条件获取导出单据数据
+     * @param docHeaderDTO
+     * @return
+     */
+    List<BionutritionDocBaseDTO> getDocList(BionutritionDocHeaderDTO docHeaderDTO);
+
+    /**
+     * 根据单头id获取单据集合
+     * @param ids
+     * @return
+     */
+    List<BionutritionDocBaseDTO> getDicListByIds(String[] ids);
+}

+ 85 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/impl/BionutritionDocDetailsServiceImpl.java

@@ -1,15 +1,23 @@
 package com.ruoyi.ams.bionutrition.doc.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.Lists;
 import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocDetails;
 import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocDetailsDTO;
 import com.ruoyi.ams.bionutrition.doc.mapper.BionutritionDocDetailsMapper;
 import com.ruoyi.ams.bionutrition.doc.service.BionutritionDocDetailsService;
+import com.ruoyi.ams.bionutrition.doc.service.BionutritionDocHeaderService;
+import com.ruoyi.base.constant.Constant;
 import com.ruoyi.common.utils.ConvertUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.service.impl.CrudServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -36,6 +44,83 @@ public class BionutritionDocDetailsServiceImpl extends CrudServiceImpl<Bionutrit
         return getBionutritionDocDetailsDTOList(docHeaderIdList, Lists.newArrayList());
     }
 
+    /**
+     * 查找同单头的明细中最大的行号
+     * @param docHeaderId
+     * @return
+     */
+    @Override
+    public String selectLineNo(String docHeaderId) {
+        BionutritionDocDetails bionutritionDocDetails = baseDao.selectOne(Wrappers.<BionutritionDocDetails>lambdaQuery()
+                .eq(StrUtil.isNotBlank(docHeaderId), BionutritionDocDetails::getDocHeaderId, docHeaderId)
+                .orderByDesc(BionutritionDocDetails::getDocLineNo)
+                .last("limit 1"));
+        return ObjectUtil.isNotNull(bionutritionDocDetails) ? bionutritionDocDetails.getDocLineNo() : Constant.ZERO;
+    }
+
+    /**
+     * 添加明细
+     * @param docDetailsDTO
+     * @return
+     */
+    @Override
+    public int insertDocDetails(BionutritionDocDetailsDTO docDetailsDTO) {
+        String lingNo = this.selectLineNo(docDetailsDTO.getDocHeaderId());
+        docDetailsDTO.setDocLineNo(String.valueOf(Long.valueOf(lingNo)+1));
+        return baseDao.insert(ConvertUtils.sourceToTarget(docDetailsDTO,BionutritionDocDetails.class));
+    }
+
+    /**
+     * 根据单头id和明细行号修改明细
+     * @param docDetailsDTO
+     * @return
+     */
+    @Override
+    public int updateDocDetails(BionutritionDocDetailsDTO docDetailsDTO) {
+        UpdateWrapper<BionutritionDocDetails> updateWrapper = new UpdateWrapper<>();
+        // id不为空直接根据id修改
+        if (StringUtils.isNotBlank(docDetailsDTO.getId())){
+            BionutritionDocDetailsDTO bionutritionDocDetailsDTO = selectDocDetailsById(docDetailsDTO.getId());
+            Assert.notNull(bionutritionDocDetailsDTO,"该id对应明细不存在");
+            updateWrapper.lambda().eq(BionutritionDocDetails::getId, docDetailsDTO.getId());
+        }else { // 否则根据单头id和行号修改
+            Assert.isTrue(StringUtils.isNotBlank(docDetailsDTO.getDocHeaderId()),"单头id为空");
+            Assert.isTrue(StringUtils.isNotBlank(docDetailsDTO.getDocLineNo()),"单明细行号为空");
+            BionutritionDocDetailsDTO bionutritionDocDetailsDTO = selectDocDetailsByLineNo(docDetailsDTO.getDocHeaderId(), docDetailsDTO.getDocLineNo());
+            Assert.notNull(bionutritionDocDetailsDTO,"所属单头该行号明细不存在");
+            updateWrapper.lambda().eq(BionutritionDocDetails::getDocHeaderId, docDetailsDTO.getDocHeaderId())
+                    .eq(BionutritionDocDetails::getDocLineNo, docDetailsDTO.getDocLineNo());
+        }
+        return baseDao.update(ConvertUtils.sourceToTarget(docDetailsDTO, BionutritionDocDetails.class), updateWrapper);
+    }
+
+    /**
+     * 根据id查询明细
+     * @param id
+     * @return
+     */
+    public BionutritionDocDetailsDTO selectDocDetailsById(String id){
+        BionutritionDocDetails bionutritionDocDetails = baseDao.selectOne(Wrappers.<BionutritionDocDetails>lambdaQuery()
+                .eq(StrUtil.isNotBlank(id), BionutritionDocDetails::getId, id));
+        return ConvertUtils.sourceToTarget(bionutritionDocDetails,BionutritionDocDetailsDTO.class);
+    }
+
+    /**
+     * 根据单头id和行号查询单个明细
+     * @param docHeaderId
+     * @param docLineNo
+     * @return
+     */
+    @Override
+    public BionutritionDocDetailsDTO selectDocDetailsByLineNo(String docHeaderId, String docLineNo) {
+        Assert.isTrue(StringUtils.isNotBlank(docHeaderId),"单头id为空");
+        Assert.isTrue(StringUtils.isNotBlank(docLineNo),"单明细行号为空");
+        BionutritionDocDetails bionutritionDocDetails = baseDao.selectOne(Wrappers.<BionutritionDocDetails>lambdaQuery()
+                .eq(StrUtil.isNotBlank(docHeaderId), BionutritionDocDetails::getDocHeaderId, docHeaderId)
+                .eq(StrUtil.isNotBlank(docLineNo), BionutritionDocDetails::getDocLineNo, docLineNo));
+        return ConvertUtils.sourceToTarget(bionutritionDocDetails,BionutritionDocDetailsDTO.class);
+    }
+
     public List<BionutritionDocDetailsDTO> getBionutritionDocDetailsDTOList(List<String> docHeaderIdList, String skuCode){
         return getBionutritionDocDetailsDTOList(docHeaderIdList, Lists.newArrayList(skuCode));
     }

+ 92 - 2
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/impl/BionutritionDocHeaderServiceImpl.java

@@ -1,10 +1,17 @@
 package com.ruoyi.ams.bionutrition.doc.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
+import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocDetails;
 import com.ruoyi.ams.bionutrition.doc.domain.BionutritionDocHeader;
 import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocBaseDTO;
 import com.ruoyi.ams.bionutrition.doc.dto.BionutritionDocDetailsDTO;
@@ -15,7 +22,10 @@ import com.ruoyi.ams.bionutrition.doc.mapper.BionutritionDocHeaderMapper;
 import com.ruoyi.ams.bionutrition.doc.service.BionutritionDocDetailsService;
 import com.ruoyi.ams.bionutrition.doc.service.BionutritionDocHeaderService;
 import com.ruoyi.ams.bionutrition.doc.util.BionutritionDocUtil;
+import com.ruoyi.ams.bionutrition.org.bean.dto.OrgDTO;
+import com.ruoyi.ams.bionutrition.org.bean.entity.OrgEntity;
 import com.ruoyi.common.utils.ConvertUtils;
+import com.ruoyi.common.utils.PageUtil;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.service.impl.CrudServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +33,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -33,6 +44,82 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
     @Autowired
     private BionutritionDocDetailsService bionutritionDocDetailsService;
 
+    /**
+     * 查询单据头分页数据
+     * @param docHeaderDTO
+     * @return
+     */
+    @Override
+    public PageInfo<BionutritionDocHeaderDTO> getDocHeaderPageInfo(BionutritionDocHeaderDTO docHeaderDTO) {
+        Page<BionutritionDocHeader> docEntitiesPage = (Page<BionutritionDocHeader>)baseDao.selectDocs(BeanUtil.beanToMap(docHeaderDTO));
+        return PageUtil.convert(docEntitiesPage, BionutritionDocHeaderDTO.class) ;
+    }
+
+    /**
+     * 根据单号查询单据头
+     * @param docNo
+     * @return
+     */
+    @Override
+    public BionutritionDocBaseDTO selectDocByDocNo(String docNo) {
+        return buildBionutritionDocBaseDTOByDocNo(docNo);
+    }
+
+    /**
+     * 插入单据头
+     * @param docHeaderDTO
+     * @return
+     */
+    @Override
+    public int insertDocHeader(BionutritionDocHeaderDTO docHeaderDTO) {
+        Assert.notNull(docHeaderDTO, "不允许插入空数据");
+        return baseDao.insert(ConvertUtils.sourceToTarget(docHeaderDTO, BionutritionDocHeader.class));
+    }
+
+    /**
+     * 修改单据头
+     * @param docHeaderDTO
+     * @return
+     */
+    @Override
+    public int updateDoc(BionutritionDocHeaderDTO docHeaderDTO) {
+        UpdateWrapper<BionutritionDocHeader> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(StringUtils.isNotBlank(docHeaderDTO.getId()),BionutritionDocHeader::getId, docHeaderDTO.getId())
+                .eq(StringUtils.isNotBlank(docHeaderDTO.getDocNo()), BionutritionDocHeader::getDocNo, docHeaderDTO.getDocNo());
+        return baseDao.update(ConvertUtils.sourceToTarget(docHeaderDTO, BionutritionDocHeader.class), updateWrapper);
+    }
+
+    /**
+     * 根据id删除单据头
+     * @param ids
+     * @return
+     */
+    @Override
+    public int deleteDocByIds(String[] ids) {
+        bionutritionDocDetailsService.deleteBatchIds(Arrays.asList(ids));
+        return baseDao.deleteBatchIds(Arrays.asList(ids));
+    }
+
+    @Override
+    public List<BionutritionDocBaseDTO> getDocList(BionutritionDocHeaderDTO docHeaderDTO) {
+        List<BionutritionDocHeaderDTO> docHeaderDTOList = getBionutritionDocHeaderDTOList(docHeaderDTO.getDocType());
+        return buildBionutritionDocSameTypeList(docHeaderDTOList);
+//        return buildBionutritionDocDifferentTypeList(docHeaderDTOList);
+    }
+
+    /**
+     * 根据id获取单据数据
+     * @param ids
+     * @return
+     */
+    @Override
+    public List<BionutritionDocBaseDTO> getDicListByIds(String[] ids) {
+        List<BionutritionDocHeaderDTO> docHeaderDTOList = ArrayUtil.isNotEmpty(ids) ?
+                getBionutritionDocHeaderDTOList(Arrays.asList(ids)) :
+                ConvertUtils.sourceToTarget(baseDao.selectList(Wrappers.emptyWrapper()),BionutritionDocHeaderDTO.class);
+        return buildBionutritionDocDifferentTypeList(docHeaderDTOList);
+    }
+
     /**
      * 构建类型单据内容(单个)
      * @param docNo
@@ -92,7 +179,7 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
     public List<BionutritionDocBaseDTO> buildBionutritionDocSameTypeList(List<BionutritionDocHeaderDTO> bionutritionDocHeaderDTOList){
         List<BionutritionDocHeaderBaseDTO> bionutritionDocHeaderBaseDTOList = BionutritionDocUtil.buildBionutritionDocHeaderDTOList(bionutritionDocHeaderDTOList);
         List<BionutritionDocDetailsDTO> bionutritionDocDetailsDTOList = bionutritionDocDetailsService.getBionutritionDocDetailsDTOList(
-                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getDocNo).collect(Collectors.toList()));
+                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getId).collect(Collectors.toList()));
         List<BionutritionDocDetailsBaseDTO> bionutritionDocDetailsBaseDTOList = BionutritionDocUtil.buildBionutritionDocDetailsDTOList(
                 bionutritionDocHeaderDTOList.stream().findFirst().get().getDocType(), bionutritionDocDetailsDTOList);
         List<BionutritionDocBaseDTO> bionutritionDocBaseDTOList = new ArrayList<>();
@@ -114,7 +201,7 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
     public List<BionutritionDocBaseDTO> buildBionutritionDocDifferentTypeList(List<BionutritionDocHeaderDTO> bionutritionDocHeaderDTOList){
         Map<String, List<BionutritionDocHeaderBaseDTO>> bionutritionDocHeaderMap = BionutritionDocUtil.buildBionutritionDocHeaderDTOByDocTypeMap(bionutritionDocHeaderDTOList);
         List<BionutritionDocDetailsDTO> bionutritionDocDetailsDTOList = bionutritionDocDetailsService.getBionutritionDocDetailsDTOList(
-                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getDocNo).collect(Collectors.toList()));
+                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getId).collect(Collectors.toList()));
         Map<String, List<BionutritionDocDetailsDTO>> bionutritionDocDetailsMap = bionutritionDocHeaderMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,
                 item -> bionutritionDocDetailsDTOList.stream().filter(detail -> item.getValue().stream().anyMatch(header ->
                         StringUtils.equals(header.getId(), detail.getDocHeaderId()))).collect(Collectors.toList())));
@@ -165,6 +252,9 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
     @Override
     public QueryWrapper<BionutritionDocHeader> getWrapper(Map<String, Object> params) {
         QueryWrapper<BionutritionDocHeader> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(StringUtils.isNotBlank((String) params.get("docType")), BionutritionDocHeader::getDocType, params.get("docType"))
+                .eq(StringUtils.isNotBlank((String) params.get("businessType")), BionutritionDocHeader::getBusinessType, params.get("businessType"))
+                .eq(StringUtils.isNotBlank((String) params.get("id")), BionutritionDocHeader::getId, params.get("id"));
         return queryWrapper;
     }
 }

+ 11 - 2
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/util/BionutritionDocUtil.java

@@ -46,9 +46,18 @@ public class BionutritionDocUtil {
      */
     @SneakyThrows
     public static <E extends BionutritionDocDetailsBaseDTO> List<E> buildBionutritionDocDetailsDTOList(String docType, List<BionutritionDocDetailsDTO> bionutritionDocDetailsDTOList) {
-        Assert.isTrue(CollectionUtil.isNotEmpty(bionutritionDocDetailsDTOList), "bionutritionDocDetailsDTOList is null");
+        if (CollectionUtil.isNotEmpty(bionutritionDocDetailsDTOList)){
+            Assert.isTrue(StringUtils.isNotBlank(docType), "docType is null");
+            return bionutritionDocDetailsDTOList.stream().map(item -> (E) buildBionutritionDocDetailsDTO(docType, item)).collect(Collectors.toList());
+        } else {
+            List<E> docDetailsDTOList = new ArrayList<>();
+            E docDetailsBaseDTO = buildBionutritionDocDetailsDTO(docType, new BionutritionDocDetailsDTO());
+            docDetailsDTOList.add(docDetailsBaseDTO);
+            return docDetailsDTOList;
+        }
+        /*Assert.isTrue(CollectionUtil.isNotEmpty(bionutritionDocDetailsDTOList), "bionutritionDocDetailsDTOList is null");
         Assert.isTrue(StringUtils.isNotBlank(docType), "docType is null");
-        return bionutritionDocDetailsDTOList.stream().map(item -> (E) buildBionutritionDocDetailsDTO(docType, item)).collect(Collectors.toList());
+        return bionutritionDocDetailsDTOList.stream().map(item -> (E) buildBionutritionDocDetailsDTO(docType, item)).collect(Collectors.toList());*/
     }
 
     /**

+ 1 - 6
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/bean/dto/OrgDTO.java

@@ -22,7 +22,7 @@ public class OrgDTO extends WarewmsExtDTO {
     private String orgName;
 
     /**
-     * 客户/供应商状态 0-启动 1-停用
+     * 客户/供应商状态 0-禁用 1-启用且合格 2-启用不合格
      */
     private String orgStatus;
 
@@ -65,11 +65,6 @@ public class OrgDTO extends WarewmsExtDTO {
      */
     private String orgType;
 
-    /**
-     * 是否合格供应商 0:合格 1:不合格
-     */
-    private String orgIsQualified;
-
     /**
      * 营业执照
      */

+ 1 - 6
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/bean/entity/OrgEntity.java

@@ -25,7 +25,7 @@ public class OrgEntity extends WarewmsExtEntity {
     private String orgName;
 
     /**
-     * 客户/供应商状态 1-启动 0-停用
+     * 客户/供应商状态 0-禁用 1-启用且合格 2-启用不合格
      */
     private String orgStatus;
 
@@ -62,11 +62,6 @@ public class OrgEntity extends WarewmsExtEntity {
      */
     private String orgType;
 
-    /**
-     * 是否合格供应商 0:合格 1:不合格
-     */
-    private String orgIsQualified;
-
     /**
      * 营业执照
      */

+ 6 - 1
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/service/IOrgSevice.java

@@ -7,8 +7,13 @@ import com.ruoyi.framework.service.CrudService;
 
 import java.util.List;
 
-public interface IOrgSevice extends CrudService<OrgEntity, OrgDTO> {
+public interface IOrgService extends CrudService<OrgEntity, OrgDTO> {
 
+    /**
+     * 获取机构分页数据
+     * @param orgDTO
+     * @return
+     */
     PageInfo<OrgDTO> getOrgPageInfo(OrgDTO orgDTO);
 
     /**

+ 6 - 9
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/org/service/impl/OrgServiceImpl.java

@@ -12,7 +12,7 @@ import com.google.common.collect.Lists;
 import com.ruoyi.ams.bionutrition.org.bean.dto.OrgDTO;
 import com.ruoyi.ams.bionutrition.org.bean.entity.OrgEntity;
 import com.ruoyi.ams.bionutrition.org.mapper.OrgMapper;
-import com.ruoyi.ams.bionutrition.org.service.IOrgSevice;
+import com.ruoyi.ams.bionutrition.org.service.IOrgService;
 import com.ruoyi.common.utils.ConvertUtils;
 import com.ruoyi.common.utils.PageUtil;
 import com.ruoyi.common.utils.StringUtils;
@@ -24,12 +24,12 @@ import java.util.List;
 import java.util.Map;
 
 @Service
-public class OrgServiceImpl extends CrudServiceImpl<OrgMapper, OrgEntity, OrgDTO> implements IOrgSevice {
+public class OrgServiceImpl extends CrudServiceImpl<OrgMapper, OrgEntity, OrgDTO> implements IOrgService {
 
     @Override
     public PageInfo<OrgDTO> getOrgPageInfo(OrgDTO orgDTO) {
         Page<OrgEntity> orgEntitiesPage = (Page<OrgEntity>)baseDao.selectOrgs(BeanUtil.beanToMap(orgDTO));
-        return PageUtil.convert(orgEntitiesPage, OrgDTO.class) ;
+        return PageUtil.convert(orgEntitiesPage, OrgDTO.class);
     }
 
     @Override
@@ -68,12 +68,9 @@ public class OrgServiceImpl extends CrudServiceImpl<OrgMapper, OrgEntity, OrgDTO
     @Override
     public QueryWrapper<OrgEntity> getWrapper(Map<String, Object> params) {
         QueryWrapper<OrgEntity> queryWrapper = new QueryWrapper<>();
-        /*String orgStatus = StringUtils.isBlank((String)params.get("orgStatus"))
-                ? BizEnum.OrgStatus.Enable.getCode() : BizEnum.OrgStatus.Disable.getCode();
-        queryWrapper.lambda().eq(OrgEntity::getOrgStatus, orgStatus);*/
-        queryWrapper.lambda().eq(StringUtils.isNotBlank((String) params.get("orgStatus")), OrgEntity::getOrgStatus, params.get("orgStatus"));
-        queryWrapper.lambda().eq(StringUtils.isNotBlank((String) params.get("orgName")), OrgEntity::getOrgName, params.get("orgName"));
-        queryWrapper.lambda().eq(StringUtils.isNotBlank((String) params.get("orgType")), OrgEntity::getOrgType, params.get("orgType"));
+        queryWrapper.lambda().eq(StringUtils.isNotBlank((String) params.get("orgStatus")), OrgEntity::getOrgStatus, params.get("orgStatus"))
+                .eq(StringUtils.isNotBlank((String) params.get("orgName")), OrgEntity::getOrgName, params.get("orgName"))
+                .eq(StringUtils.isNotBlank((String) params.get("orgType")), OrgEntity::getOrgType, params.get("orgType"));
         return queryWrapper;
     }
 

+ 67 - 0
warewms-ams/src/main/resources/mapper/doc/BionutritionDocHeaderMapper.xml

@@ -4,4 +4,71 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.ams.bionutrition.doc.mapper.BionutritionDocHeaderMapper">
 
+    <resultMap type="BionutritionDocHeader" id="DocHeaderResult">
+        <result column="id"  property="id"/>
+        <result column="doc_no"  property="docNo"/>
+        <result column="doc_type"  property="docType"/>
+        <result column="doc_creator"  property="docCreator"/>
+        <result column="business_type"  property="businessType"/>
+        <result column="vendor_code"  property="vendorCode"/>
+        <result column="vendor_name"  property="vendorName"/>
+        <result column="custom_name"  property="customName"/>
+        <result column="purchaser"  property="purchaser"/>
+        <result column="tax_rate"  property="taxRate"/>
+        <result column="dept"  property="dept"/>
+        <result column="sale_return_unit"  property="saleReturnUnit"/>
+        <result column="sale_returner"  property="saleReturner"/>
+        <result column="sale_contract"  property="saleContract"/>
+        <result column="shipper"  property="shipper"/>
+        <result column="receiver"  property="receiver"/>
+        <result column="receive_address"  property="receiveAddress"/>
+        <result column="receive_phone"  property="receivePhone"/>
+        <result column="reviewer"  property="reviewer"/>
+        <result column="reviewer_next"  property="reviewerNext"/>
+        <result column="warehouse_type"  property="warehouseType"/>
+        <result column="remark"  property="remark"/>
+        <result column="creator"  property="creator"/>
+        <result column="create_date"  property="createDate"/>
+        <result column="updater"  property="updater"/>
+        <result column="update_date" property="updateDate"/>
+    </resultMap>
+
+    <sql id="selectDocHeaderResultVo">
+        select  id,
+                doc_no,
+                doc_type,
+                doc_creator,
+                business_type,
+                vendor_code,
+                vendor_name,
+                custom_name,
+                purchaser,
+                tax_rate,
+                dept,
+                sale_return_unit,
+                sale_returner,
+                sale_contract,
+                shipper,
+                receiver,
+                receive_address,
+                receive_phone,
+                reviewer,
+                reviewer_next,
+                warehouse_type,
+                remark,
+                creator,
+                create_date,
+                updater,
+                update_date
+                from bsl_doc_header
+    </sql>
+
+    <select id="selectDocs" parameterType="BionutritionDocHeader" resultMap="DocHeaderResult">
+        <include refid="selectDocHeaderResultVo"/>
+        <where>
+            <if test="docType != null and docType != ''"> and doc_type = #{docType}</if>
+            <if test="businessType != null and businessType != ''"> and business_type = #{businessType} </if>
+        </where>
+        order by create_date desc
+    </select>
 </mapper>

+ 5 - 5
warewms-ams/src/main/resources/mapper/docAsn/WmsDocAsnHeaderMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.ams.asn.mapper.WmsDocAsnHeaderMapper">
-    
+
     <resultMap type="WmsDocAsnHeader" id="WmsDocAsnHeaderResult">
         <result property="asnNo"    column="asn_no"    />
         <result property="asnType"    column="asn_type"    />
@@ -391,7 +391,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectWmsDocDetails" parameterType="string" resultMap="WmsDocAsnDetailsListResult">
-        select *,b.desc1 sku_name,ast.dict_label line_status_name
+        select *,b.sku_name,ast.dict_label line_status_name
         from wms_doc_asn_details de
         left join base_sku b on de.sku = b.sku
         left join (select * from sys_dict_data where dict_type = 'asn_status') ast on de.line_status = ast.dict_value
@@ -399,7 +399,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectWmsDocDetailsOne" resultMap="WmsDocAsnDetailsListResult">
-        select *,b.desc1 sku_name,ast.dict_label line_status_name
+        select *,b.sku_name,ast.dict_label line_status_name
         from wms_doc_asn_details de
         left join base_sku b on de.sku = b.sku
         left join (select * from sys_dict_data where dict_type = 'asn_status') ast on de.line_status = ast.dict_value
@@ -413,7 +413,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             inv.customer_id,
             inv.qty,
             sk.sku,
-            sk.desc1 skuName,
+            sk.skuName,
             sk.model,
             att.lotatt02 sn,
             sk.sku_type skuType,
@@ -438,4 +438,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
         group by sku
     </select>
-</mapper>
+</mapper>

+ 0 - 2
warewms-ams/src/main/resources/mapper/org/OrgMapper.xml

@@ -14,7 +14,6 @@
         <result property="orgPhoneNum" column="org_phone_num"/>
         <result property="orgAccountsBank" column="org_accounts_bank"/>
         <result property="orgCreditCode" column="org_credit_code"/>
-        <result property="orgIsQualified" column="org_isQualified"/>
         <result property="orgBusinessLicense" column="org_business_license"/>
         <result property="orgProductionLicense" column="org_production_license"/>
         <result property="orgBusinessCertificate" column="org_business_certificate"/>
@@ -37,7 +36,6 @@
                 org_accounts_bank,
                 org_credit_code,
                 org_type,
-                org_isQualified,
                 org_business_license,
                 org_production_license,
                 org_business_certificate,

+ 1 - 0
warewms-base/src/main/java/com/ruoyi/base/constant/Constant.java

@@ -8,6 +8,7 @@ package com.ruoyi.base.constant;
 public class Constant {
     public static final String CUSTOMER_ID = "default";
     public static final Long WAREHOUSE_ID = 1L;
+    public static final String ZERO = "0";
 
     /**
      * 入库缓存位

+ 5 - 1
warewms-base/src/main/java/com/ruoyi/base/constant/type/BizEnum.java

@@ -87,7 +87,11 @@ public class BizEnum {
         /**
          * 销售退库单
          */
-        SALE_RETURN_ORDER("SaleReturnOrder", "com.ruoyi.ams.bionutrition.doc.dto.header.SaleReturnOrderHeaderDTO");
+        SALE_RETURN_ORDER("SaleReturnOrder", "com.ruoyi.ams.bionutrition.doc.dto.header.SaleReturnOrderHeaderDTO"),
+        /**
+         * 采购单
+         */
+        PURCHASE_ORDER("PurchaseOrder","PurchaseOrderHeaderDTO");
 
         private String docType;