From 74db85387130e2d27a338f7ca6f2115e496f2df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Sat, 21 May 2022 00:24:09 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=BB=99=E9=94=80=E5=94=AE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=BD=AC=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=85=8D=E7=BD=AE=E5=BC=80=E5=85=B3=202?= =?UTF-8?q?=E3=80=81=E5=A2=9E=E5=8A=A0=E4=BB=A5=E9=94=80=E5=AE=9A=E8=B4=AD?= =?UTF-8?q?=E7=9A=84=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 +- jshERP-boot/docs/jsh_erp.sql | 36 +-- ...7\345\213\277\344\275\277\347\224\250.txt" | 12 +- .../jsh/erp/constants/BusinessConstants.java | 6 + .../erp/controller/DepotItemController.java | 4 +- .../erp/datasource/entities/DepotHead.java | 10 + .../datasource/entities/DepotHeadExample.java | 70 ++++++ .../erp/datasource/entities/SystemConfig.java | 10 + .../entities/SystemConfigExample.java | 70 ++++++ .../accountHead/AccountHeadService.java | 4 +- .../service/depotHead/DepotHeadService.java | 32 ++- .../service/depotItem/DepotItemService.java | 46 +++- .../resources/mapper_xml/DepotHeadMapper.xml | 26 +- .../mapper_xml/DepotHeadMapperEx.xml | 4 +- .../mapper_xml/SystemConfigMapper.xml | 26 +- jshERP-web/src/views/bill/SaleOrderList.vue | 41 ++- .../src/views/bill/dialog/BillDetail.vue | 40 ++- .../src/views/bill/dialog/LinkBillList.vue | 236 +++++++++++++++--- .../src/views/bill/mixins/BillListMixin.js | 17 +- .../src/views/bill/mixins/BillModalMixin.js | 9 +- .../views/bill/modules/AllocationOutModal.vue | 8 +- .../src/views/bill/modules/AssembleModal.vue | 8 +- .../views/bill/modules/DisassembleModal.vue | 8 +- .../src/views/bill/modules/OtherInModal.vue | 8 +- .../src/views/bill/modules/OtherOutModal.vue | 8 +- .../views/bill/modules/PurchaseBackModal.vue | 91 +++---- .../views/bill/modules/PurchaseInModal.vue | 117 ++++----- .../views/bill/modules/PurchaseOrderModal.vue | 93 ++++++- .../views/bill/modules/RetailBackModal.vue | 89 +++---- .../src/views/bill/modules/RetailOutModal.vue | 8 +- .../src/views/bill/modules/SaleBackModal.vue | 91 +++---- .../src/views/bill/modules/SaleOrderModal.vue | 10 +- .../src/views/bill/modules/SaleOutModal.vue | 119 ++++----- .../financial/mixins/FinancialListMixin.js | 6 + .../financial/mixins/FinancialModalMixin.js | 9 +- .../financial/modules/AdvanceInModal.vue | 8 +- .../src/views/financial/modules/GiroModal.vue | 8 +- .../views/financial/modules/ItemInModal.vue | 8 +- .../views/financial/modules/ItemOutModal.vue | 8 +- .../views/financial/modules/MoneyInModal.vue | 8 +- .../views/financial/modules/MoneyOutModal.vue | 8 +- .../src/views/system/SystemConfigList.vue | 15 +- 42 files changed, 1076 insertions(+), 381 deletions(-) diff --git a/README.md b/README.md index 8ef8c13e2f..ef6a643897 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # 项目总述 * 很多人说华夏ERP(英文名:jshERP)是目前人气领先的国产ERP系统 * 虽然目前只有进销存+财务+生产的功能,但后面将会推出ERP的全部功能,有兴趣请帮点一下 **Star** 哦 -* **官网URL:http://www.huaxiaerp.com 商务合作或技术交流,请联系QQ:752718920** +* **官网地址:http://www.huaxiaerp.com 商务合作或技术交流,请联系QQ:752718920** * 欢迎加入华夏ERP交流QQ群(入群帮安装),群3:805736336(满)、群4:146571538 * 平台地址:http://cloud.huaxiaerp.vip 欢迎大家注册租户进行使用 * 系统默认租户账号:jsh,默认超管账户:admin,默认密码均为:123456 @@ -51,25 +51,25 @@ # 系统美图 * 首页 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231344_ef2d6554_852955.png "首页.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235430_ff5f9618_852955.png "首页.png") * 零售管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231359_889404f3_852955.png "零售管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235442_214b9fc0_852955.png "零售管理.png") * 采购管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231414_85757561_852955.png "采购管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235643_c87b3d02_852955.png "采购管理.png") * 销售管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231437_d2308621_852955.png "销售管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235631_01a92e1f_852955.png "销售管理.png") * 仓库管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231446_6a6455f8_852955.png "仓库管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235657_99057159_852955.png "仓库管理.png") * 财务管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231456_82f4616b_852955.png "财务管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235708_086379f8_852955.png "财务管理.png") * 报表查询 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231506_9a986d5c_852955.png "报表查询.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235722_a26af3e8_852955.png "报表查询.png") * 商品管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231527_23a26826_852955.png "商品管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235905_5ec11112_852955.png "商品管理.png") * 基本资料 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231538_0be9ad14_852955.png "基本资料.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235919_92d78bc3_852955.png "基本资料.png") * 系统管理 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0527/231547_3110acd3_852955.png "系统管理.png") +![输入图片说明](https://images.gitee.com/uploads/images/2022/0520/235815_b139e426_852955.png "系统管理.png") # 捐赠 开源不易,坚持更难!如果您觉得华夏ERP不错,可以捐赠请作者喝杯咖啡~,在此表示感谢^_^。 diff --git a/jshERP-boot/docs/jsh_erp.sql b/jshERP-boot/docs/jsh_erp.sql index 005a3ebe06..a49a04430a 100644 --- a/jshERP-boot/docs/jsh_erp.sql +++ b/jshERP-boot/docs/jsh_erp.sql @@ -164,6 +164,7 @@ CREATE TABLE `jsh_depot_head` ( `discount_last_money` decimal(24,6) DEFAULT NULL COMMENT '优惠后金额', `other_money` decimal(24,6) DEFAULT NULL COMMENT '销售或采购费用合计', `status` varchar(1) DEFAULT NULL COMMENT '状态,0未审核、1已审核、2完成采购|销售、3部分采购|销售', + `purchase_status` varchar(1) DEFAULT NULL COMMENT '采购状态,0未采购、2完成采购、3部分采购', `link_number` varchar(50) DEFAULT NULL COMMENT '关联订单号', `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', @@ -175,22 +176,22 @@ CREATE TABLE `jsh_depot_head` ( -- ---------------------------- -- Records of jsh_depot_head -- ---------------------------- -INSERT INTO `jsh_depot_head` VALUES ('258', '其它', '采购订单', 'CGDD00000000630', 'CGDD00000000630', '2021-06-02 00:21:54', '2021-06-02 00:21:44', '57', '63', null, null, null, '-110.000000', '现付', null, null, null, null, null, null, null, null, null, null, '2', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('259', '入库', '采购', 'CGRK00000000631', 'CGRK00000000631', '2021-06-02 00:22:23', '2021-06-02 00:22:05', '57', '63', '17', '-110.000000', null, '-110.000000', '现付', null, null, null, null, '', '', '0.000000', '0.000000', '110.000000', '0.000000', '0', 'CGDD00000000630', '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('260', '出库', '采购退货', 'CGTH00000000632', 'CGTH00000000632', '2021-06-02 00:22:35', '2021-06-02 00:22:26', '57', '63', '17', '22.000000', null, '22.000000', '现付', null, null, null, null, null, null, '0.000000', '0.000000', '22.000000', '0.000000', '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('261', '其它', '销售订单', 'XSDD00000000633', 'XSDD00000000633', '2021-06-02 00:22:48', '2021-06-02 00:22:39', '58', '63', null, null, null, '44.000000', '现付', null, null, null, '', null, null, null, null, null, null, '2', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('262', '出库', '销售', 'XSCK00000000634', 'XSCK00000000634', '2021-06-02 00:23:03', '2021-06-02 00:22:54', '58', '63', '17', '44.000000', null, '44.000000', '现付', null, null, null, '', '', '', '0.000000', '0.000000', '44.000000', '0.000000', '0', 'XSDD00000000633', '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('263', '入库', '销售退货', 'XSTH00000000635', 'XSTH00000000635', '2021-06-02 00:23:12', '2021-06-02 00:23:05', '71', '63', '17', '-22.000000', null, '-22.000000', '现付', null, null, null, '', '', '', '0.000000', '0.000000', '22.000000', '0.000000', '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('264', '出库', '零售', 'LSCK00000000636', 'LSCK00000000636', '2021-06-02 00:23:21', '2021-06-02 00:23:14', '60', '63', '17', '22.000000', null, '22.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('265', '入库', '零售退货', 'LSTH00000000637', 'LSTH00000000637', '2021-06-02 00:23:29', '2021-06-02 00:23:23', '60', '63', '17', '-22.000000', null, '-22.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('266', '入库', '其它', 'QTRK00000000638', 'QTRK00000000638', '2021-06-02 00:23:48', '2021-06-02 00:23:36', '57', '63', null, null, null, '-55.000000', '现付', null, null, null, null, null, null, null, null, null, null, '1', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('267', '出库', '其它', 'QTCK00000000639', 'QTCK00000000639', '2021-06-02 00:23:59', '2021-06-02 00:23:50', '58', '63', null, null, null, '30.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('268', '出库', '调拨', 'DBCK00000000640', 'DBCK00000000640', '2021-06-02 00:24:09', '2021-06-02 00:24:00', null, '63', null, null, null, '11.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('269', '其它', '组装单', 'ZZD00000000641', 'ZZD00000000641', '2021-06-02 00:24:29', '2021-06-02 00:24:11', null, '63', null, null, null, '0.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('270', '其它', '拆卸单', 'CXD00000000642', 'CXD00000000642', '2021-06-02 00:24:45', '2021-06-02 00:24:32', null, '63', null, null, null, '0.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('271', '入库', '采购', 'CGRK00000000651', 'CGRK00000000651', '2021-07-06 23:45:20', '2021-07-06 23:44:45', '57', '63', '17', '-20.000000', null, '-80.000000', '现付', null, null, null, null, '', '', '0.000000', '0.000000', '80.000000', '0.000000', '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('272', '出库', '销售', 'XSCK00000000652', 'XSCK00000000652', '2021-07-06 23:46:07', '2021-07-06 23:45:24', '58', '63', '17', '8.000000', null, '28.000000', '现付', null, null, null, '', '', '', '0.000000', '0.000000', '28.000000', '0.000000', '0', null, '63', '0'); -INSERT INTO `jsh_depot_head` VALUES ('273', '入库', '采购', 'CGRK00000000658', 'CGRK00000000658', '2021-07-28 00:58:12', '2021-07-28 00:58:02', '57', '63', '17', '-60.000000', null, '-60.000000', '现付', null, null, null, null, '', '', '0.000000', '0.000000', '60.000000', '0.000000', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('258', '其它', '采购订单', 'CGDD00000000630', 'CGDD00000000630', '2021-06-02 00:21:54', '2021-06-02 00:21:44', '57', '63', null, null, null, '-110.000000', '现付', null, null, null, null, null, null, null, null, null, null, '2', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('259', '入库', '采购', 'CGRK00000000631', 'CGRK00000000631', '2021-06-02 00:22:23', '2021-06-02 00:22:05', '57', '63', '17', '-110.000000', null, '-110.000000', '现付', null, null, null, null, '', '', '0.000000', '0.000000', '110.000000', '0.000000', '0', '0', 'CGDD00000000630', '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('260', '出库', '采购退货', 'CGTH00000000632', 'CGTH00000000632', '2021-06-02 00:22:35', '2021-06-02 00:22:26', '57', '63', '17', '22.000000', null, '22.000000', '现付', null, null, null, null, null, null, '0.000000', '0.000000', '22.000000', '0.000000', '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('261', '其它', '销售订单', 'XSDD00000000633', 'XSDD00000000633', '2021-06-02 00:22:48', '2021-06-02 00:22:39', '58', '63', null, null, null, '44.000000', '现付', null, null, null, '', null, null, null, null, null, null, '2', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('262', '出库', '销售', 'XSCK00000000634', 'XSCK00000000634', '2021-06-02 00:23:03', '2021-06-02 00:22:54', '58', '63', '17', '44.000000', null, '44.000000', '现付', null, null, null, '', '', '', '0.000000', '0.000000', '44.000000', '0.000000', '0', '0', 'XSDD00000000633', '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('263', '入库', '销售退货', 'XSTH00000000635', 'XSTH00000000635', '2021-06-02 00:23:12', '2021-06-02 00:23:05', '71', '63', '17', '-22.000000', null, '-22.000000', '现付', null, null, null, '', '', '', '0.000000', '0.000000', '22.000000', '0.000000', '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('264', '出库', '零售', 'LSCK00000000636', 'LSCK00000000636', '2021-06-02 00:23:21', '2021-06-02 00:23:14', '60', '63', '17', '22.000000', null, '22.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('265', '入库', '零售退货', 'LSTH00000000637', 'LSTH00000000637', '2021-06-02 00:23:29', '2021-06-02 00:23:23', '60', '63', '17', '-22.000000', null, '-22.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('266', '入库', '其它', 'QTRK00000000638', 'QTRK00000000638', '2021-06-02 00:23:48', '2021-06-02 00:23:36', '57', '63', null, null, null, '-55.000000', '现付', null, null, null, null, null, null, null, null, null, null, '1', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('267', '出库', '其它', 'QTCK00000000639', 'QTCK00000000639', '2021-06-02 00:23:59', '2021-06-02 00:23:50', '58', '63', null, null, null, '30.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('268', '出库', '调拨', 'DBCK00000000640', 'DBCK00000000640', '2021-06-02 00:24:09', '2021-06-02 00:24:00', null, '63', null, null, null, '11.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('269', '其它', '组装单', 'ZZD00000000641', 'ZZD00000000641', '2021-06-02 00:24:29', '2021-06-02 00:24:11', null, '63', null, null, null, '0.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('270', '其它', '拆卸单', 'CXD00000000642', 'CXD00000000642', '2021-06-02 00:24:45', '2021-06-02 00:24:32', null, '63', null, null, null, '0.000000', '现付', null, null, null, null, null, null, null, null, null, null, '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('271', '入库', '采购', 'CGRK00000000651', 'CGRK00000000651', '2021-07-06 23:45:20', '2021-07-06 23:44:45', '57', '63', '17', '-20.000000', null, '-80.000000', '现付', null, null, null, null, '', '', '0.000000', '0.000000', '80.000000', '0.000000', '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('272', '出库', '销售', 'XSCK00000000652', 'XSCK00000000652', '2021-07-06 23:46:07', '2021-07-06 23:45:24', '58', '63', '17', '8.000000', null, '28.000000', '现付', null, null, null, '', '', '', '0.000000', '0.000000', '28.000000', '0.000000', '0', '0', null, '63', '0'); +INSERT INTO `jsh_depot_head` VALUES ('273', '入库', '采购', 'CGRK00000000658', 'CGRK00000000658', '2021-07-28 00:58:12', '2021-07-28 00:58:02', '57', '63', '17', '-60.000000', null, '-60.000000', '现付', null, null, null, null, '', '', '0.000000', '0.000000', '60.000000', '0.000000', '0', '0', null, '63', '0'); -- ---------------------------- -- Table structure for jsh_depot_item @@ -829,6 +830,7 @@ CREATE TABLE `jsh_system_config` ( `depot_flag` varchar(1) DEFAULT '0' COMMENT '仓库启用标记,0未启用,1启用', `customer_flag` varchar(1) DEFAULT '0' COMMENT '客户启用标记,0未启用,1启用', `minus_stock_flag` varchar(1) DEFAULT '0' COMMENT '负库存启用标记,0未启用,1启用', + `purchase_by_sale_flag` varchar(1) DEFAULT '0' COMMENT '以销定购启用标记,0未启用,1启用', `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', PRIMARY KEY (`id`) @@ -837,7 +839,7 @@ CREATE TABLE `jsh_system_config` ( -- ---------------------------- -- Records of jsh_system_config -- ---------------------------- -INSERT INTO `jsh_system_config` VALUES ('11', '公司test', '小李', '地址1', '12345678', null, null, '注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。', '0', '0', '1', '63', '0'); +INSERT INTO `jsh_system_config` VALUES ('11', '公司test', '小李', '地址1', '12345678', null, null, '注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。', '0', '0', '1', '0', '63', '0'); -- ---------------------------- -- Table structure for jsh_tenant diff --git "a/jshERP-boot/docs/\346\225\260\346\215\256\345\272\223\346\233\264\346\226\260\350\256\260\345\275\225-\351\246\226\346\254\241\345\256\211\350\243\205\350\257\267\345\213\277\344\275\277\347\224\250.txt" "b/jshERP-boot/docs/\346\225\260\346\215\256\345\272\223\346\233\264\346\226\260\350\256\260\345\275\225-\351\246\226\346\254\241\345\256\211\350\243\205\350\257\267\345\213\277\344\275\277\347\224\250.txt" index 855c142842..48c3180e3a 100644 --- "a/jshERP-boot/docs/\346\225\260\346\215\256\345\272\223\346\233\264\346\226\260\350\256\260\345\275\225-\351\246\226\346\254\241\345\256\211\350\243\205\350\257\267\345\213\277\344\275\277\347\224\250.txt" +++ "b/jshERP-boot/docs/\346\225\260\346\215\256\345\272\223\346\233\264\346\226\260\350\256\260\345\275\225-\351\246\226\346\254\241\345\256\211\350\243\205\350\257\267\345\213\277\344\275\277\347\224\250.txt" @@ -1343,4 +1343,14 @@ alter table jsh_material change name name varchar(100) DEFAULT NULL COMMENT '名 -- by jishenghua -- 给系统参数表增加销售协议字段 -- -------------------------------------------------------- -alter table jsh_system_config add sale_agreement varchar(500) DEFAULT NULL COMMENT '销售协议' after company_post_code; \ No newline at end of file +alter table jsh_system_config add sale_agreement varchar(500) DEFAULT NULL COMMENT '销售协议' after company_post_code; + +-- -------------------------------------------------------- +-- 时间 2022年05月17日 +-- by jishenghua +-- 给单据主表增加采购状态字段 +-- 给系统参数表增加以销定购开关字段 +-- -------------------------------------------------------- +alter table jsh_depot_head add purchase_status varchar(1) DEFAULT NULL COMMENT '采购状态,0未采购、2完成采购、3部分采购' after status; +alter table jsh_system_config add purchase_by_sale_flag varchar(1) DEFAULT '0' COMMENT '以销定购启用标记,0未启用,1启用' after minus_stock_flag; +update jsh_depot_head set purchase_status='0'; \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java b/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java index c092a4534f..212cb30659 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java @@ -67,6 +67,12 @@ public class BusinessConstants { public static final String BILLS_STATUS_AUDIT = "1"; public static final String BILLS_STATUS_SKIPED = "2"; public static final String BILLS_STATUS_SKIPING = "3"; + /** + * 单据-采购状态 purchaseStatus '0'未采购、'2'完成采购、'3'部分采购 + * */ + public static final String PURCHASE_STATUS_UN_AUDIT = "0"; + public static final String PURCHASE_STATUS_SKIPED = "2"; + public static final String PURCHASE_STATUS_SKIPING = "3"; /** * 出入库分类 *采购、采购退货、其它、零售、销售、调拨、盘点复盘等 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java index 80618ada09..46c2816c27 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -168,6 +168,7 @@ public BaseResponseInfo findStockByDepotAndBarCode( @ApiOperation(value = "单据明细列表") public BaseResponseInfo getDetailList(@RequestParam("headerId") Long headerId, @RequestParam("mpList") String mpList, + @RequestParam(value = "linkType", required = false) String linkType, HttpServletRequest request)throws Exception { BaseResponseInfo res = new BaseResponseInfo(); try { @@ -183,6 +184,7 @@ public BaseResponseInfo getDetailList(@RequestParam("headerId") Long headerId, if (null != dataList) { for (DepotItemVo4WithInfoEx diEx : dataList) { JSONObject item = new JSONObject(); + item.put("id", diEx.getId()); item.put("materialExtendId", diEx.getMaterialExtendId() == null ? "" : diEx.getMaterialExtendId()); item.put("barCode", diEx.getBarCode()); item.put("name", diEx.getMName()); @@ -212,7 +214,7 @@ public BaseResponseInfo getDetailList(@RequestParam("headerId") Long headerId, item.put("operNumber", diEx.getOperNumber()); item.put("basicNumber", diEx.getBasicNumber()); item.put("preNumber", diEx.getOperNumber()); //原数量 - item.put("finishNumber", depotItemService.getFinishNumber(diEx.getMaterialExtendId(), diEx.getHeaderId(), unitInfo, materialUnit)); //已入库|已出库 + item.put("finishNumber", depotItemService.getFinishNumber(diEx.getMaterialExtendId(), diEx.getHeaderId(), unitInfo, materialUnit, linkType)); //已入库|已出库 item.put("unitPrice", diEx.getUnitPrice()); item.put("taxUnitPrice", diEx.getTaxUnitPrice()); item.put("allPrice", diEx.getAllPrice()); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHead.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHead.java index ee7250ff6c..555f415952 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHead.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHead.java @@ -54,6 +54,8 @@ public class DepotHead { private String status; + private String purchaseStatus; + private String linkNumber; private Long tenantId; @@ -260,6 +262,14 @@ public void setStatus(String status) { this.status = status == null ? null : status.trim(); } + public String getPurchaseStatus() { + return purchaseStatus; + } + + public void setPurchaseStatus(String purchaseStatus) { + this.purchaseStatus = purchaseStatus == null ? null : purchaseStatus.trim(); + } + public String getLinkNumber() { return linkNumber; } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHeadExample.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHeadExample.java index fd5b413a08..c8f0f6df33 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHeadExample.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/DepotHeadExample.java @@ -1726,6 +1726,76 @@ public Criteria andStatusNotBetween(String value1, String value2) { return (Criteria) this; } + public Criteria andPurchaseStatusIsNull() { + addCriterion("purchase_status is null"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusIsNotNull() { + addCriterion("purchase_status is not null"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusEqualTo(String value) { + addCriterion("purchase_status =", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotEqualTo(String value) { + addCriterion("purchase_status <>", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusGreaterThan(String value) { + addCriterion("purchase_status >", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusGreaterThanOrEqualTo(String value) { + addCriterion("purchase_status >=", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusLessThan(String value) { + addCriterion("purchase_status <", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusLessThanOrEqualTo(String value) { + addCriterion("purchase_status <=", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusLike(String value) { + addCriterion("purchase_status like", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotLike(String value) { + addCriterion("purchase_status not like", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusIn(List values) { + addCriterion("purchase_status in", values, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotIn(List values) { + addCriterion("purchase_status not in", values, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusBetween(String value1, String value2) { + addCriterion("purchase_status between", value1, value2, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotBetween(String value1, String value2) { + addCriterion("purchase_status not between", value1, value2, "purchaseStatus"); + return (Criteria) this; + } + public Criteria andLinkNumberIsNull() { addCriterion("link_number is null"); return (Criteria) this; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfig.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfig.java index e2d750771c..2621fe7fe2 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfig.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfig.java @@ -23,6 +23,8 @@ public class SystemConfig { private String minusStockFlag; + private String purchaseBySaleFlag; + private Long tenantId; private String deleteFlag; @@ -115,6 +117,14 @@ public void setMinusStockFlag(String minusStockFlag) { this.minusStockFlag = minusStockFlag == null ? null : minusStockFlag.trim(); } + public String getPurchaseBySaleFlag() { + return purchaseBySaleFlag; + } + + public void setPurchaseBySaleFlag(String purchaseBySaleFlag) { + this.purchaseBySaleFlag = purchaseBySaleFlag == null ? null : purchaseBySaleFlag.trim(); + } + public Long getTenantId() { return tenantId; } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfigExample.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfigExample.java index 1f19b99124..32a13daea4 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfigExample.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/SystemConfigExample.java @@ -864,6 +864,76 @@ public Criteria andMinusStockFlagNotBetween(String value1, String value2) { return (Criteria) this; } + public Criteria andPurchaseBySaleFlagIsNull() { + addCriterion("purchase_by_sale_flag is null"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagIsNotNull() { + addCriterion("purchase_by_sale_flag is not null"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagEqualTo(String value) { + addCriterion("purchase_by_sale_flag =", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotEqualTo(String value) { + addCriterion("purchase_by_sale_flag <>", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagGreaterThan(String value) { + addCriterion("purchase_by_sale_flag >", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagGreaterThanOrEqualTo(String value) { + addCriterion("purchase_by_sale_flag >=", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagLessThan(String value) { + addCriterion("purchase_by_sale_flag <", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagLessThanOrEqualTo(String value) { + addCriterion("purchase_by_sale_flag <=", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagLike(String value) { + addCriterion("purchase_by_sale_flag like", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotLike(String value) { + addCriterion("purchase_by_sale_flag not like", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagIn(List values) { + addCriterion("purchase_by_sale_flag in", values, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotIn(List values) { + addCriterion("purchase_by_sale_flag not in", values, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagBetween(String value1, String value2) { + addCriterion("purchase_by_sale_flag between", value1, value2, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotBetween(String value1, String value2) { + addCriterion("purchase_by_sale_flag not between", value1, value2, "purchaseBySaleFlag"); + return (Criteria) this; + } + public Criteria andTenantIdIsNull() { addCriterion("tenant_id is null"); return (Criteria) this; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java index 90ade0678b..680832cece 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java @@ -266,7 +266,9 @@ public void addAccountHeadAndDetail(String beanJson, String rows, HttpServletReq AccountHead accountHead = JSONObject.parseObject(beanJson, AccountHead.class); User userInfo=userService.getCurrentUser(); accountHead.setCreator(userInfo==null?null:userInfo.getId()); - accountHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + if(StringUtil.isEmpty(accountHead.getStatus())) { + accountHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + } accountHeadMapper.insertSelective(accountHead); //根据单据编号查询单据id AccountHeadExample dhExample = new AccountHeadExample(); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index 2d3eeeb71c..fdf1f93abf 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -314,7 +314,7 @@ public int batchDeleteBillByIds(String ids)throws Exception { BusinessConstants.SUB_TYPE_REPLAY.equals(depotHead.getSubType()))) { String status = BusinessConstants.BILLS_STATUS_AUDIT; //查询除当前单据之外的关联单据列表 - List exceptCurrentList = getListByLinkNumberExceptCurrent(depotHead.getLinkNumber(), depotHead.getNumber()); + List exceptCurrentList = getListByLinkNumberExceptCurrent(depotHead.getLinkNumber(), depotHead.getNumber(), depotHead.getType()); if(exceptCurrentList!=null && exceptCurrentList.size()>0) { status = BusinessConstants.BILLS_STATUS_SKIPING; } @@ -325,6 +325,23 @@ public int batchDeleteBillByIds(String ids)throws Exception { depotHeadMapper.updateByExampleSelective(dh, example); } } + //将关联的销售订单单据置为未采购状态-针对销售订单转采购订单的情况 + if(StringUtil.isNotEmpty(depotHead.getLinkNumber())){ + if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + DepotHead dh = new DepotHead(); + //获取分批操作后单据的商品和商品数量(汇总) + List batchList = depotItemMapperEx.getBatchBillDetailMaterialSum(depotHead.getLinkNumber(), depotHead.getType()); + if(batchList.size()>0) { + dh.setPurchaseStatus(BusinessConstants.PURCHASE_STATUS_SKIPING); + } else { + dh.setPurchaseStatus(BusinessConstants.PURCHASE_STATUS_UN_AUDIT); + } + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andNumberEqualTo(depotHead.getLinkNumber()); + depotHeadMapper.updateByExampleSelective(dh, example); + } + } //更新当前库存 for (DepotItem depotItem : list) { depotItemService.updateCurrentStock(depotItem); @@ -525,12 +542,8 @@ public List findStatementAccount(String beginTime, } if (type.equals("采购入库")) { allPrice = p2.subtract(p1); - } else if (type.equals("销售退货入库")) { - allPrice = p2.subtract(p1); } else if (type.equals("销售出库")) { allPrice = p1.subtract(p2); - } else if (type.equals("采购退货出库")) { - allPrice = p1.subtract(p2); } else if (type.equals("收款")) { allPrice = BigDecimal.ZERO.subtract(p1); } else if (type.equals("付款")) { @@ -674,9 +687,9 @@ public List getDetailByNumber(String number)throws Exception { * @return * @throws Exception */ - public List getListByLinkNumberExceptCurrent(String linkNumber, String number)throws Exception { + public List getListByLinkNumberExceptCurrent(String linkNumber, String number, String type)throws Exception { DepotHeadExample example = new DepotHeadExample(); - example.createCriteria().andLinkNumberEqualTo(linkNumber).andNumberNotEqualTo(number) + example.createCriteria().andLinkNumberEqualTo(linkNumber).andNumberNotEqualTo(number).andTypeEqualTo(type) .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); return depotHeadMapper.selectByExample(example); } @@ -712,7 +725,10 @@ public void addDepotHeadAndDetail(String beanJson, String rows, User userInfo=userService.getCurrentUser(); depotHead.setCreator(userInfo==null?null:userInfo.getId()); depotHead.setCreateTime(new Timestamp(System.currentTimeMillis())); - depotHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + if(StringUtil.isEmpty(depotHead.getStatus())) { + depotHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + } + depotHead.setPurchaseStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); depotHead.setPayType(depotHead.getPayType()==null?"现付":depotHead.getPayType()); if(StringUtil.isNotEmpty(depotHead.getAccountIdList())){ depotHead.setAccountIdList(depotHead.getAccountIdList().replace("[", "").replace("]", "").replaceAll("\"", "")); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index 976eb24f0c..1f551e7df1 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -566,6 +566,13 @@ public void saveDetials(String rows, Long headerId, String actionType, HttpServl changeBillStatus(depotHead, billStatus); } } + //如果关联单据号非空则更新订单的状态,此处针对销售订单转采购订单的场景 + if(BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + if(StringUtil.isNotEmpty(depotHead.getLinkNumber())) { + String billStatus = getBillStatusByParam(depotHead); + changeBillPurchaseStatus(depotHead, billStatus); + } + } } else { throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ROW_FAILED_CODE, String.format(ExceptionConstants.DEPOT_HEAD_ROW_FAILED_MSG)); @@ -623,6 +630,27 @@ public void changeBillStatus(DepotHead depotHead, String billStatus) { } } + /** + * 更新单据状态,此处针对销售订单转采购订单的场景 + * @param depotHead + * @param billStatus + */ + public void changeBillPurchaseStatus(DepotHead depotHead, String billStatus) { + DepotHead depotHeadOrders = new DepotHead(); + depotHeadOrders.setPurchaseStatus(billStatus); + DepotHeadExample example = new DepotHeadExample(); + List linkNumberList = StringUtil.strToStringList(depotHead.getLinkNumber()); + example.createCriteria().andNumberIn(linkNumberList); + try{ + depotHeadMapper.updateByExampleSelective(depotHeadOrders, example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE,ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) public void deleteDepotItemHeadId(Long headerId)throws Exception { try{ @@ -810,15 +838,21 @@ public void updateCurrentStockFun(Long mId, Long dId) { } @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public BigDecimal getFinishNumber(Long meId, Long headerId, Unit unitInfo, String materialUnit) { + public BigDecimal getFinishNumber(Long meId, Long headerId, Unit unitInfo, String materialUnit, String linkType) { String goToType = ""; DepotHead depotHead =depotHeadMapper.selectByPrimaryKey(headerId); String linkNumber = depotHead.getNumber(); //订单号 - if(BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { - goToType = BusinessConstants.SUB_TYPE_PURCHASE; - } - if(BusinessConstants.SUB_TYPE_SALES_ORDER.equals(depotHead.getSubType())) { - goToType = BusinessConstants.SUB_TYPE_SALES; + if("purchase".equals(linkType)) { + if(BusinessConstants.SUB_TYPE_SALES_ORDER.equals(depotHead.getSubType())) { + goToType = BusinessConstants.SUB_TYPE_PURCHASE_ORDER; + } + } else { + if(BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + goToType = BusinessConstants.SUB_TYPE_PURCHASE; + } + if(BusinessConstants.SUB_TYPE_SALES_ORDER.equals(depotHead.getSubType())) { + goToType = BusinessConstants.SUB_TYPE_SALES; + } } BigDecimal count = depotItemMapperEx.getFinishNumber(meId, linkNumber, goToType); //根据多单位情况进行数量的转换 diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml index 110dcaae29..0207ee26cb 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml @@ -27,6 +27,7 @@ + @@ -93,7 +94,8 @@ id, type, sub_type, default_number, number, create_time, oper_time, organ_id, creator, account_id, change_amount, back_amount, total_price, pay_type, bill_type, remark, file_name, sales_man, account_id_list, account_money_list, discount, discount_money, - discount_last_money, other_money, status, link_number, tenant_id, delete_flag + discount_last_money, other_money, status, purchase_status, link_number, tenant_id, + delete_flag select @@ -112,13 +114,13 @@ insert into jsh_system_config (id, company_name, company_contacts, company_address, company_tel, company_fax, company_post_code, sale_agreement, depot_flag, - customer_flag, minus_stock_flag, tenant_id, - delete_flag) + customer_flag, minus_stock_flag, purchase_by_sale_flag, + tenant_id, delete_flag) values (#{id,jdbcType=BIGINT}, #{companyName,jdbcType=VARCHAR}, #{companyContacts,jdbcType=VARCHAR}, #{companyAddress,jdbcType=VARCHAR}, #{companyTel,jdbcType=VARCHAR}, #{companyFax,jdbcType=VARCHAR}, #{companyPostCode,jdbcType=VARCHAR}, #{saleAgreement,jdbcType=VARCHAR}, #{depotFlag,jdbcType=VARCHAR}, - #{customerFlag,jdbcType=VARCHAR}, #{minusStockFlag,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, - #{deleteFlag,jdbcType=VARCHAR}) + #{customerFlag,jdbcType=VARCHAR}, #{minusStockFlag,jdbcType=VARCHAR}, #{purchaseBySaleFlag,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) insert into jsh_system_config @@ -156,6 +158,9 @@ minus_stock_flag, + + purchase_by_sale_flag, + tenant_id, @@ -197,6 +202,9 @@ #{minusStockFlag,jdbcType=VARCHAR}, + + #{purchaseBySaleFlag,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, @@ -247,6 +255,9 @@ minus_stock_flag = #{record.minusStockFlag,jdbcType=VARCHAR}, + + purchase_by_sale_flag = #{record.purchaseBySaleFlag,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, @@ -271,6 +282,7 @@ depot_flag = #{record.depotFlag,jdbcType=VARCHAR}, customer_flag = #{record.customerFlag,jdbcType=VARCHAR}, minus_stock_flag = #{record.minusStockFlag,jdbcType=VARCHAR}, + purchase_by_sale_flag = #{record.purchaseBySaleFlag,jdbcType=VARCHAR}, tenant_id = #{record.tenantId,jdbcType=BIGINT}, delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} @@ -310,6 +322,9 @@ minus_stock_flag = #{minusStockFlag,jdbcType=VARCHAR}, + + purchase_by_sale_flag = #{purchaseBySaleFlag,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, @@ -331,6 +346,7 @@ depot_flag = #{depotFlag,jdbcType=VARCHAR}, customer_flag = #{customerFlag,jdbcType=VARCHAR}, minus_stock_flag = #{minusStockFlag,jdbcType=VARCHAR}, + purchase_by_sale_flag = #{purchaseBySaleFlag,jdbcType=VARCHAR}, tenant_id = #{tenantId,jdbcType=BIGINT}, delete_flag = #{deleteFlag,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT} diff --git a/jshERP-web/src/views/bill/SaleOrderList.vue b/jshERP-web/src/views/bill/SaleOrderList.vue index 3a912e749d..7d1518c238 100644 --- a/jshERP-web/src/views/bill/SaleOrderList.vue +++ b/jshERP-web/src/views/bill/SaleOrderList.vue @@ -127,6 +127,11 @@ 完成销售 部分销售 + @@ -142,6 +147,7 @@ import BillDetail from './dialog/BillDetail' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { BillListMixin } from './mixins/BillListMixin' + import { getCurrentSystemConfig } from '@/api/api' import JDate from '@/components/jeecg/JDate' import Vue from 'vue' export default { @@ -208,6 +214,9 @@ { title: '状态', dataIndex: 'status', width: 70, align: "center", scopedSlots: { customRender: 'customRenderStatus' } }, + { title: '采购进度', dataIndex: 'purchaseStatus', width: 70, align: "center", + scopedSlots: { customRender: 'customRenderPurchaseStatus' } + }, { title: '操作', dataIndex: 'action', @@ -226,6 +235,7 @@ created() { this.initCustomer() this.initUser() + this.getSystemConfig() }, computed: { }, @@ -244,7 +254,36 @@ } else { this.$message.warning("抱歉,只有未审核的单据才能删除!") } - } + }, + getSystemConfig() { + getCurrentSystemConfig().then((res) => { + if(res.code === 200 && res.data){ + let purchaseBySaleFlag = res.data.purchaseBySaleFlag + let statusIndex = 0 + for(let i=0; i0) { + this.columns.splice(statusIndex, 1) + } + } else { + if(statusIndex===0) { + let purchaseStatusObj = { title: '采购进度', dataIndex: 'purchaseStatus', width: 70, align: "center", + scopedSlots: { customRender: 'customRenderPurchaseStatus' } + } + this.columns.splice(8, 0, purchaseStatusObj) + } + } + } + }) + }, + searchQuery() { + this.loadData(1) + this.getSystemConfig() + }, } } diff --git a/jshERP-web/src/views/bill/dialog/BillDetail.vue b/jshERP-web/src/views/bill/dialog/BillDetail.vue index 697b82dedc..fdc07f8416 100644 --- a/jshERP-web/src/views/bill/dialog/BillDetail.vue +++ b/jshERP-web/src/views/bill/dialog/BillDetail.vue @@ -197,7 +197,11 @@ {{model.number}} - + + + {{model.linkNumber}} + +
import pick from 'lodash.pick' import { getAction } from '@/api/manage' - import { findBillDetailByNumber, getPlatformConfigByKey} from '@/api/api' + import { findBillDetailByNumber, getPlatformConfigByKey, getCurrentSystemConfig} from '@/api/api' import { getMpListShort } from "@/utils/util" import BillPrintIframe from './BillPrintIframe' import JUpload from '@/components/jeecg/JUpload' @@ -939,6 +943,7 @@ billType: '', billPrintFlag: false, fileList: [], + purchaseBySaleFlag: false, tableWidth: { 'width': '1550px' }, @@ -1287,6 +1292,20 @@ if(record.status === '3') { //部分采购|部分销售的时候显示全部列 this.columns = this.defColumns + } else if(record.purchaseStatus === '3') { + //将已出库的标题转为已采购,针对销售订单转采购订单的场景 + let currentCol = [] + for(let i=0; i { + if(res.code === 200 && res.data){ + this.purchaseBySaleFlag = res.data.purchaseBySaleFlag==='1'?true:false + } + }) + }, show(record, type) { this.billType = type //附件下载 @@ -1336,13 +1362,21 @@ this.$nextTick(() => { this.form.setFieldsValue(pick(this.model,'id')) }); + let showType = 'basic' + if(record.status === '3') { + showType = 'basic' + } else if(record.purchaseStatus === '3') { + showType = 'purchase' + } let params = { headerId: this.model.id, - mpList: getMpListShort(Vue.ls.get('materialPropertyList')) //扩展属性 + mpList: getMpListShort(Vue.ls.get('materialPropertyList')), //扩展属性 + linkType: showType } let url = this.readOnly ? this.url.detailList : this.url.detailList; this.requestSubTableData(record, type, url, params); this.initPlatform() + this.getSystemConfig() }, requestSubTableData(record, type, url, params, success) { this.loading = true diff --git a/jshERP-web/src/views/bill/dialog/LinkBillList.vue b/jshERP-web/src/views/bill/dialog/LinkBillList.vue index a1789a9d04..e9cc931da9 100644 --- a/jshERP-web/src/views/bill/dialog/LinkBillList.vue +++ b/jshERP-web/src/views/bill/dialog/LinkBillList.vue @@ -8,8 +8,44 @@ cancelText="关闭" wrapClassName="ant-modal-cust-warp" style="top:5%;height: 100%;overflow-y: hidden"> + +
+ + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + +
- - diff --git a/jshERP-web/src/views/bill/modules/PurchaseInModal.vue b/jshERP-web/src/views/bill/modules/PurchaseInModal.vue index e86f16bd0a..295350974c 100644 --- a/jshERP-web/src/views/bill/modules/PurchaseInModal.vue +++ b/jshERP-web/src/views/bill/modules/PurchaseInModal.vue @@ -10,18 +10,22 @@ v-bind:prefixNo="prefixNo" switchHelp switchFullscreen - @ok="handleOk" @cancel="handleCancel" wrapClassName="ant-modal-cust-warp" :id="prefixNo" style="top:5%;height: 100%;overflow-y: hidden"> + -
@@ -61,14 +65,14 @@ :dataSource="materialTable.dataSource" :maxHeight="300" :rowNumber="false" - :rowSelection="true" - :actionButton="true" - :dragSort="true" + :rowSelection="rowCanEdit" + :actionButton="rowCanEdit" + :dragSort="rowCanEdit" @valueChange="onValueChange" @added="onAdded" @deleted="onDeleted">