Parcourir la source

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

zhoux il y a 2 ans
Parent
commit
f5aaf7d5da
74 fichiers modifiés avec 1399 ajouts et 363 suppressions
  1. 10 0
      pom.xml
  2. 22 0
      src/main/java/com/dk/mdm/controller/common/CommonController.java
  3. 23 1
      src/main/java/com/dk/mdm/controller/ivt/InboundController.java
  4. 1 1
      src/main/java/com/dk/mdm/controller/ivt/InboundItemController.java
  5. 37 4
      src/main/java/com/dk/mdm/controller/ivt/OutboundController.java
  6. 1 1
      src/main/java/com/dk/mdm/controller/ivt/OutboundItemController.java
  7. 17 7
      src/main/java/com/dk/mdm/controller/mst/MoneyAccountController.java
  8. 16 0
      src/main/java/com/dk/mdm/controller/mst/StaffRightController.java
  9. 22 0
      src/main/java/com/dk/mdm/controller/mst/SupplierController.java
  10. 12 1
      src/main/java/com/dk/mdm/controller/sale/OrderController.java
  11. 1 2
      src/main/java/com/dk/mdm/controller/sale/OutReturnController.java
  12. 1 2
      src/main/java/com/dk/mdm/controller/sale/OutReturnItemController.java
  13. 87 0
      src/main/java/com/dk/mdm/controller/wxapi/basic/WechatPayController.java
  14. 56 0
      src/main/java/com/dk/mdm/infrastructure/config/WechatPayConfigInfo.java
  15. 21 0
      src/main/java/com/dk/mdm/infrastructure/convert/ivt/OutboundConvert.java
  16. 21 0
      src/main/java/com/dk/mdm/infrastructure/convert/ivt/OutboundItemConvert.java
  17. 0 13
      src/main/java/com/dk/mdm/infrastructure/convert/mst/StaffRightConvert.java
  18. 14 0
      src/main/java/com/dk/mdm/mapper/common/CommonMapper.java
  19. 32 32
      src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml
  20. 2 14
      src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml
  21. 20 0
      src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.java
  22. 257 38
      src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml
  23. 17 1
      src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.java
  24. 1 13
      src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml
  25. 7 1
      src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.java
  26. 20 2
      src/main/java/com/dk/mdm/mapper/mst/GoodsSkuMapper.xml
  27. 17 4
      src/main/java/com/dk/mdm/mapper/mst/MoneyAccountMapper.java
  28. 26 27
      src/main/java/com/dk/mdm/mapper/mst/MoneyAccountMapper.xml
  29. 2 2
      src/main/java/com/dk/mdm/mapper/mst/StaffMapper.xml
  30. 7 0
      src/main/java/com/dk/mdm/mapper/mst/StaffRightMapper.java
  31. 22 0
      src/main/java/com/dk/mdm/mapper/mst/StaffRightMapper.xml
  32. 2 1
      src/main/java/com/dk/mdm/mapper/mst/SupplierMapper.xml
  33. 3 3
      src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.xml
  34. 7 0
      src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.java
  35. 69 4
      src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml
  36. 3 3
      src/main/java/com/dk/mdm/model/pojo/ivt/Inbound.java
  37. 0 17
      src/main/java/com/dk/mdm/model/pojo/ivt/InboundItem.java
  38. 3 2
      src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java
  39. 0 16
      src/main/java/com/dk/mdm/model/pojo/ivt/OutboundItem.java
  40. 0 19
      src/main/java/com/dk/mdm/model/query/ivt/InboundItemQuery.java
  41. 3 2
      src/main/java/com/dk/mdm/model/query/ivt/InboundQuery.java
  42. 0 16
      src/main/java/com/dk/mdm/model/query/ivt/OutboundItemQuery.java
  43. 3 2
      src/main/java/com/dk/mdm/model/query/ivt/OutboundQuery.java
  44. 10 1
      src/main/java/com/dk/mdm/model/query/mst/GoodsSkuQuery.java
  45. 2 2
      src/main/java/com/dk/mdm/model/query/mst/MoneyAccountQuery.java
  46. 2 2
      src/main/java/com/dk/mdm/model/query/mst/StaffQuery.java
  47. 9 0
      src/main/java/com/dk/mdm/model/query/mst/SupplierQuery.java
  48. 0 19
      src/main/java/com/dk/mdm/model/response/ivt/InboundItemResponse.java
  49. 5 3
      src/main/java/com/dk/mdm/model/response/ivt/InboundResponse.java
  50. 7 6
      src/main/java/com/dk/mdm/model/response/ivt/IntoReturnItemResponse.java
  51. 0 16
      src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java
  52. 3 2
      src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java
  53. 6 0
      src/main/java/com/dk/mdm/model/response/mst/GoodsSkuResponse.java
  54. 11 0
      src/main/java/com/dk/mdm/model/response/mst/MoneyAccountResponse.java
  55. 10 3
      src/main/java/com/dk/mdm/model/response/mst/SpplierResponse.java
  56. 30 0
      src/main/java/com/dk/mdm/model/response/sale/OrderItemResponse.java
  57. 0 19
      src/main/java/com/dk/mdm/model/vo/ivt/InboundItemVO.java
  58. 3 2
      src/main/java/com/dk/mdm/model/vo/ivt/InboundVO.java
  59. 0 16
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java
  60. 9 2
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java
  61. 1 0
      src/main/java/com/dk/mdm/model/vo/mst/GoodsSkuVO.java
  62. 2 2
      src/main/java/com/dk/mdm/model/vo/sale/OrderVO.java
  63. 22 0
      src/main/java/com/dk/mdm/service/common/CommonService.java
  64. 21 0
      src/main/java/com/dk/mdm/service/ivt/InboundService.java
  65. 5 0
      src/main/java/com/dk/mdm/service/ivt/OutboundItemService.java
  66. 137 0
      src/main/java/com/dk/mdm/service/ivt/OutboundService.java
  67. 15 4
      src/main/java/com/dk/mdm/service/mst/MoneyAccountService.java
  68. 13 0
      src/main/java/com/dk/mdm/service/mst/StaffRightService.java
  69. 5 0
      src/main/java/com/dk/mdm/service/sale/OrderItemService.java
  70. 24 13
      src/main/java/com/dk/mdm/service/sale/OrderService.java
  71. 5 0
      src/main/java/com/dk/mdm/service/sale/OutReturnItemService.java
  72. 5 0
      src/main/java/com/dk/mdm/service/sale/OutReturnService.java
  73. 138 0
      src/main/java/com/dk/mdm/service/wxapi/basic/WechatPayService.java
  74. 14 0
      src/main/resources/dev/bootstrap.yml

+ 10 - 0
pom.xml

@@ -106,6 +106,16 @@
             <artifactId>commons-lang</artifactId>
             <version>2.6</version>
         </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-pay</artifactId>
+            <version>4.4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>4.4.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 22 - 0
src/main/java/com/dk/mdm/controller/common/CommonController.java

@@ -1519,6 +1519,28 @@ public class CommonController extends BaseController<Map<String, Object>> {
     public ResponseResultVO<PageList<Map<String, Object>>> getInventoryByPage(@RequestBody Map<String, Object> param) {
         return commonService.getInventoryByPage(param);
     }
+
+    /**
+     * @desc   : 供应商类别
+     * @author : 宋扬
+     * @date   : 2024/3/6 10:28
+     */
+    @ApiOperation(value = "获取供应商类别", notes = "获取供应商类别")
+    @PostMapping({"get_supType"})
+    public ResponseResultVO<List<Map<String, Object>>> getSupType(@RequestBody Map<String, Object> param) {
+        return commonService.getSupType(param);
+    }
+
+    /**
+     * @desc   : 供应商服务类别
+     * @author : 宋扬
+     * @date   : 2024/3/6 10:29
+     */
+    @ApiOperation(value = "获取供应商服务类别", notes = "获取供应商服务类别")
+    @PostMapping({"get_serviceCategories"})
+    public ResponseResultVO<List<Map<String, Object>>> getServiceCategories(@RequestBody Map<String, Object> param) {
+        return commonService.getServiceCategories(param);
+    }
 }
 
 

+ 23 - 1
src/main/java/com/dk/mdm/controller/ivt/InboundController.java

@@ -1,14 +1,23 @@
 package com.dk.mdm.controller.ivt;
 
+
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.ivt.Inbound;
-import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
+import com.dk.mdm.model.query.ivt.InboundQuery;
+import com.dk.mdm.model.response.ivt.InboundResponse;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 import io.swagger.annotations.Api;
 import com.dk.mdm.service.ivt.InboundService;
 
+
 @Api(tags = "入库单API接口")
 @RestController
 @RequestMapping("/ivt/inbound")
@@ -21,4 +30,17 @@ public class InboundController{
     @Autowired
     private InboundService inboundService;
 
+
+
+
+    /**
+     * @desc : 查看来源单据,总单加明细  采购退货用
+     * @author : 于继渤
+     * @date : 2024/3/6 10:36
+     */
+    @ApiOperation(value = "条件查询", notes = "条件查询")
+    @PostMapping({"select_inbound_and_item"})
+    public ResponseResultVO<PageList<InboundResponse>> selectInboundAndItem(@RequestBody InboundQuery inboundQuery) {
+        return inboundService.selectInboundAndItem(inboundQuery);
+    }
 }

+ 1 - 1
src/main/java/com/dk/mdm/controller/ivt/InboundItemController.java

@@ -11,7 +11,7 @@ import com.dk.mdm.service.ivt.InboundItemService;
 
 @Api(tags = "入库明细API接口")
 @RestController
-@RequestMapping("/ivt/inboundItem")
+@RequestMapping("/inboundItem")
 public class InboundItemController{
 
     public BaseService<InboundItem> getService() {

+ 37 - 4
src/main/java/com/dk/mdm/controller/ivt/OutboundController.java

@@ -1,17 +1,18 @@
 package com.dk.mdm.controller.ivt;
 
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.ivt.Outbound;
-import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.dk.mdm.model.vo.ivt.OutboundVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RestController;
 import io.swagger.annotations.Api;
 import com.dk.mdm.service.ivt.OutboundService;
 
 @Api(tags = "出库单API接口")
 @RestController
-@RequestMapping("/outbound")
+@RequestMapping("/ivt/outbound")
 public class OutboundController{
 
     public BaseService<Outbound> getService() {
@@ -21,4 +22,36 @@ public class OutboundController{
     @Autowired
     private OutboundService outboundService;
 
+    /**
+     * @desc : 新建出库单
+     * @author : 付斌
+     * @date : 2023/1/9 10:48
+     */
+    @ApiOperation(value = "新建出库单", notes = "新建出库单")
+    @PostMapping({"insert"})
+    public ResponseResultVO<?> insert(@RequestBody OutboundVO outboundVO) {
+        return outboundService.insert(outboundVO);
+    }
+
+    /**
+     * @desc   : 获取出库单信息(编辑用)
+     * @author : 付斌
+     * @date   : 2024-03-03 9:28
+     */
+    @ApiOperation(value = "编辑出库单", notes = "编辑出库单")
+    @PostMapping({"get_outbound_for_update/{id}"})
+    public ResponseResultVO<?> getOutboundForUpdate(@PathVariable String id) {
+        return outboundService.getOutboundForUpdate(id);
+    }
+
+    /**
+     * @desc : 编辑出库单
+     * @author : 付斌
+     * @date : 2023/1/9 10:49
+     */
+    @ApiOperation(value = "编辑出库单", notes = "编辑出库单")
+    @PostMapping({"update"})
+    public ResponseResultVO<Boolean> update(@RequestBody OutboundVO outboundVO) {
+        return outboundService.update(outboundVO);
+    }
 }

+ 1 - 1
src/main/java/com/dk/mdm/controller/ivt/OutboundItemController.java

@@ -11,7 +11,7 @@ import com.dk.mdm.service.ivt.OutboundItemService;
 
 @Api(tags = "出库明细API接口")
 @RestController
-@RequestMapping("/outboundItem")
+@RequestMapping("/ivt/outboundItem")
 public class OutboundItemController{
 
     public BaseService<OutboundItem> getService() {

+ 17 - 7
src/main/java/com/dk/mdm/controller/mst/MoneyAccountController.java

@@ -27,7 +27,7 @@ public class MoneyAccountController{
 
     /**
      * @desc : 条件查询
-     * @author : songy
+     * @author : 宋扬
      * @date : 2023/2/29 10:36
      */
     @ApiOperation(value = "分页、关联、条件查询", notes = "分页、关联、条件查询")
@@ -35,10 +35,20 @@ public class MoneyAccountController{
     public ResponseResultVO<PageList<MoneyAccountResponse>> selectByCond(@RequestBody MoneyAccountQuery moneyAccountQuery) {
         return moneyAccountService.selectByCond(moneyAccountQuery);
     }
+    /**
+     * @desc : 维修小程序查询
+     * @author : 王英杰
+     * @date : 2023/2/29 10:36
+     */
+    @ApiOperation(value = "分页、关联、条件查询", notes = "分页、关联、条件查询")
+    @PostMapping({"list_by"})
+    public ResponseResultVO<PageList<MoneyAccountResponse>> wxSelectByCond(@RequestBody MoneyAccountQuery moneyAccountQuery) {
+        return moneyAccountService.wxSelectByCond(moneyAccountQuery);
+    }
 
     /**
      * @desc   : 通过ID查询
-     * @author : songy
+     * @author : 宋扬
      * @date   : 2024/3/1 16:01
      */
     @PostMapping({"/{id}"})
@@ -49,7 +59,7 @@ public class MoneyAccountController{
 
     /**
      * @desc : 新建资金账户
-     * @author : songy
+     * @author : 宋扬
      * @date : 2023/2/29 10:48
      */
     @ApiOperation(value = "新建资金账户", notes = "新建资金账户")
@@ -60,7 +70,7 @@ public class MoneyAccountController{
 
     /**
      * @desc : 编辑员工
-     * @author : songy
+     * @author : 宋扬
      * @date : 2023/2/29 10:49
      */
     @ApiOperation(value = "编辑资金账户", notes = "编辑资金账户")
@@ -70,10 +80,9 @@ public class MoneyAccountController{
     }
 
 
-
     /**
      * @desc : 停用
-     * @author : songy
+     * @author : 宋扬
      * @date : 2023/2/29 10:34
      */
     @ApiOperation(value = "停用", notes = "停用")
@@ -84,7 +93,7 @@ public class MoneyAccountController{
 
     /**
      * @desc : 启用
-     * @author : songy
+     * @author : 宋扬
      * @date : 2023/2/29 10:34
      */
     @ApiOperation(value = "启用", notes = "启用")
@@ -93,4 +102,5 @@ public class MoneyAccountController{
         return this.getService().enable(id);
     }
 
+
 }

+ 16 - 0
src/main/java/com/dk/mdm/controller/mst/StaffRightController.java

@@ -4,6 +4,7 @@ import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.mst.StaffRight;
 import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
+import com.dk.mdm.model.vo.mst.StaffRightVO;
 import com.dk.mdm.model.vo.mst.StaffVO;
 import com.dk.mdm.service.mst.StaffService;
 import io.swagger.annotations.ApiOperation;
@@ -62,4 +63,19 @@ public class StaffRightController{
         return staffService.saveStaffRight(staffVO);
     }
 
+    /**
+     * @desc   : WEB获取员工权限
+     * @author : 常皓宁
+     * @date   : 2024/3/6 13:15
+     */
+    @ApiOperation(
+            value = "WEB获取员工权限",
+            notes = "WEB获取员工权限"
+    )
+    @PostMapping("get_staff_right_web")
+    public ResponseResultVO<Map<String, Object>> getStaffRightWeb(@RequestBody Map<String, Object> param) {
+        return staffRightService.getStaffRightWeb(param);
+    }
+
+
 }

+ 22 - 0
src/main/java/com/dk/mdm/controller/mst/SupplierController.java

@@ -73,6 +73,28 @@ public class SupplierController{
     }
 
     /**
+     * @desc : 停用
+     * @author : songy
+     * @date : 2023/2/29 10:34
+     */
+    @ApiOperation(value = "停用", notes = "停用")
+    @PostMapping("disable/{id}")
+    public ResponseResultVO<Boolean> disable(@PathVariable String id) {
+        return this.getService().disable(id);
+    }
+
+    /**
+     * @desc : 启用
+     * @author : songy
+     * @date : 2023/2/29 10:34
+     */
+    @ApiOperation(value = "启用", notes = "启用")
+    @PostMapping("enable/{id}")
+    public ResponseResultVO<Boolean> enable(@PathVariable String id) {
+        return this.getService().enable(id);
+    }
+
+    /**
      * @desc : 通过ID查询
      * @author : 王英杰
      * @date : 2023/1/9 10:41

+ 12 - 1
src/main/java/com/dk/mdm/controller/sale/OrderController.java

@@ -75,7 +75,7 @@ public class OrderController {
      * @author : 付斌
      * @date   : 2024-03-03 9:28
      */
-    @ApiOperation(value = "编辑订单", notes = "编辑订单")
+    @ApiOperation(value = "获取订单信息(编辑用)", notes = "获取订单信息(编辑用)")
     @PostMapping({"get_order_for_update/{id}"})
     public ResponseResultVO<?> getOrderForUpdate(@PathVariable String id) {
         return orderService.getOrderForUpdate(id);
@@ -91,4 +91,15 @@ public class OrderController {
     public ResponseResultVO<Boolean> update(@RequestBody OrderVO orderVO) {
         return orderService.update(orderVO);
     }
+
+    /**
+     * @desc   : 获取订单信息(出库用)
+     * @author : 付斌
+     * @date   : 2024-03-06 12:58
+     */
+    @ApiOperation(value = "获取订单信息(出库用)", notes = "获取订单信息(出库用)")
+    @PostMapping({"get_order_for_out/{id}"})
+    public ResponseResultVO<?> getOrderForOut(@PathVariable String id) {
+        return orderService.getOrderForOut(id);
+    }
 }

+ 1 - 2
src/main/java/com/dk/mdm/controller/sale/OutReturnController.java

@@ -1,7 +1,6 @@
 package com.dk.mdm.controller.sale;
 
 import com.dk.mdm.model.pojo.sale.OutReturn;
-import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,7 +10,7 @@ import com.dk.mdm.service.sale.OutReturnService;
 
 @Api(tags = "出库退货API接口")
 @RestController
-@RequestMapping("/outReturn")
+@RequestMapping("/sale/outReturn")
 public class OutReturnController{
 
     public BaseService<OutReturn> getService() {

+ 1 - 2
src/main/java/com/dk/mdm/controller/sale/OutReturnItemController.java

@@ -1,7 +1,6 @@
 package com.dk.mdm.controller.sale;
 
 import com.dk.mdm.model.pojo.sale.OutReturnItem;
-import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,7 +10,7 @@ import com.dk.mdm.service.sale.OutReturnItemService;
 
 @Api(tags = "出库退货明细API接口")
 @RestController
-@RequestMapping("/outReturnItem")
+@RequestMapping("/sale/outReturnItem")
 public class OutReturnItemController{
 
     public BaseService<OutReturnItem> getService() {

+ 87 - 0
src/main/java/com/dk/mdm/controller/wxapi/basic/WechatPayController.java

@@ -0,0 +1,87 @@
+package com.dk.mdm.controller.wxapi.basic;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.service.wxapi.basic.WechatPayService;
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
+import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.WxPayService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+
+/**
+ * @author : admin
+ * @desc : 微信支付的接口
+ * @date : 2024/2/22 17:21
+ */
+@Api(tags = "微信支付的接口")
+@RestController
+@RequestMapping("/wxapi/basic/wechat/pay")
+@Slf4j
+public class WechatPayController {
+    private ExecutorService executorService = Executors.newFixedThreadPool(20);
+
+    @Autowired
+    private WechatPayService wechatPayService;
+
+    /**
+     * 商户 下单选取旗舰版或专业版的订单
+     *
+     * @param paymentSn
+     * @return
+     * @throws WxPayException
+     */
+    @ApiOperation(value = "下单选取旗舰版或专业版的订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "openId", value = "openId"),
+            @ApiImplicitParam(name = "paymentSn", value = "支付单号")
+    })
+    @PostMapping("/create_order/{openId}/{paymentSn}")
+    public ResponseResultVO createOrderMiniPlat(@PathVariable String paymentSn, @PathVariable String openId)
+            throws WxPayException {
+        return wechatPayService.createOrderMiniPlat(paymentSn, openId);
+    }
+
+    /**
+     * @desc : 微信支付的回调
+     * @author : 姜永辉
+     * @date : 2024/03/06 11:20
+     */
+    @PostMapping("/notify/order/{appId}")
+    public String parseOrderNotifyResult(@PathVariable(value = "appId") String appId, @RequestBody String xmlData)
+            throws WxPayException {
+        WxPayService wxPayService = wechatPayService.getWxPayService();
+        final WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
+        // 另起线程处理业务
+        executorService.execute(new Runnable() {
+            @Override
+            public void run() {
+                String resultCode = notifyResult.getResultCode();
+                // 支付成功
+                if (resultCode.equals("SUCCESS")) {
+                    // 处理支付成功逻辑
+                    try {
+                        wechatPayService.notifyWechatPay(notifyResult);
+                    } catch (Exception e) {
+                        log.error("微信回调业务处理报错,params:" + notifyResult, e);
+                    }
+                } else {
+                    log.error("没有处理微信回调业务,交易状态:{},params:{}", resultCode, JSONObject.toJSON(notifyResult));
+                }
+            }
+        });
+        return WxPayNotifyResponse.success("成功");
+    }
+
+
+}

+ 56 - 0
src/main/java/com/dk/mdm/infrastructure/config/WechatPayConfigInfo.java

@@ -0,0 +1,56 @@
+package com.dk.mdm.infrastructure.config;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author : aamin
+ * @desc : 微信支付配置信息
+ * @date : 2022-7-7 19:49
+ */
+@Getter
+@Configuration
+public class WechatPayConfigInfo {
+
+    /**
+     * 小程序appid
+     */
+    @Value("${wx.pay.appId}")
+    private String appId;
+
+    /**
+     * 安全码
+     */
+    @Value("${wx.pay.appSecret}")
+    private String appSecret;
+
+    /**
+     * 支付商户号
+     */
+    @Value("${wx.pay.mchId}")
+    private String mchId;
+
+    /**
+     * 支付密钥
+     */
+    @Value("${wx.pay.mchKey}")
+    private String mchKey;
+
+    /**
+     * 证书路径
+     */
+    @Value("${wx.pay.keyPath}")
+    private String keyPath;
+
+
+    /**
+     * 小程序支付的回调接口地址
+     */
+    @Value("${wx.pay.wechatNotifyUrl}")
+    private String wechatNotifyUrl;
+
+
+}

+ 21 - 0
src/main/java/com/dk/mdm/infrastructure/convert/ivt/OutboundConvert.java

@@ -0,0 +1,21 @@
+package com.dk.mdm.infrastructure.convert.ivt;
+
+import com.dk.mdm.model.pojo.ivt.Outbound;
+import com.dk.mdm.model.vo.ivt.OutboundVO;
+import org.mapstruct.Mapper;
+
+/**
+ * @desc   : Outbound转换类
+ * @author : 付斌
+ * @date   : 2024-02-28 10:18
+ */
+@Mapper(componentModel = "spring")
+public interface OutboundConvert {
+
+    /**
+     * @desc   : 转换vo为pojo
+     * @author : 付斌
+     * @date   : 2024-02-28 15:26
+     */
+    Outbound convertToPo(OutboundVO outboundVO);
+}

+ 21 - 0
src/main/java/com/dk/mdm/infrastructure/convert/ivt/OutboundItemConvert.java

@@ -0,0 +1,21 @@
+package com.dk.mdm.infrastructure.convert.ivt;
+
+import com.dk.mdm.model.pojo.ivt.OutboundItem;
+import com.dk.mdm.model.vo.ivt.OutboundItemVO;
+import org.mapstruct.Mapper;
+
+/**
+ * @desc   : OutboundItem转换类
+ * @author : 付斌
+ * @date   : 2024-02-28 10:18
+ */
+@Mapper(componentModel = "spring")
+public interface OutboundItemConvert {
+
+    /**
+     * @desc   : 转换vo为pojo
+     * @author : 付斌
+     * @date   : 2024-02-28 15:25
+     */
+    OutboundItem convertToPo(OutboundItemVO outboundVO);
+}

+ 0 - 13
src/main/java/com/dk/mdm/infrastructure/convert/mst/StaffRightConvert.java

@@ -1,13 +0,0 @@
-package com.dk.mdm.infrastructure.convert.mst;
-
-import org.mapstruct.Mapper;
-
-/**
- * @desc   : StaffRightConvert
- * @author : admin
- * @date   : 2023/2/3 15:44
- */
-@Mapper(componentModel = "spring")
-public class StaffRightConvert {
-
-}

+ 14 - 0
src/main/java/com/dk/mdm/mapper/common/CommonMapper.java

@@ -1067,4 +1067,18 @@ public interface CommonMapper extends BaseMapper<Map<String, Object>> {
      * @date : 2024-03-05 10:52
      */
     Long getInventoryCountByPage(Map param);
+
+    /**
+     * @desc   : 供应商类别
+     * @author : 宋扬
+     * @date   : 2024/3/6 10:45
+     */
+    List<Map<String, Object>> getSupType(Map param);
+
+    /**
+     * @desc   : 供应商服务类别
+     * @author : 宋扬
+     * @date   : 2024/3/6 10:45
+     */
+    List<Map<String, Object>> getServiceCategories(Map param);
 }

+ 32 - 32
src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml

@@ -2625,37 +2625,6 @@
         </if>
     </select>
 
-    <!--获取仓库-->
-    <select id="getWarehouseByPage" resultType="java.util.Map">
-        SELECT mtw.wh_id as "whId",sys.f_code_name(mtw.wh_code,mtw.wh_name) AS "whCodeName"
-        FROM mst.t_warehouse mtw left join core.t_user ctu on ctu.user_id = mtw.op_create_user_id
-        WHERE mtw.fty_id = #{ftyId}
-        and mtw.flg_valid
-        <if test="whCode!=null and whCode!=''">
-            and position(#{whCode} in mtw.wh_code) > 0
-        </if>
-        <if test="whName!=null and whName!=''">
-            and position(#{warehouseName} in mtw.wh_name) > 0
-        </if>
-        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
-            limit #{end} offset #{start}
-        </if>
-    </select>
-
-    <!--获取仓库个数-->
-    <select id="countWarehouseByPage" resultType="Long">
-        select count(1)
-        from mst.t_warehouse mtw
-        WHERE mtw.fty_id = #{ftyId}
-        and mtw.flg_valid
-        <if test="whCode!=null and whCode!=''">
-            and position(#{whCode} in mtw.wh_code) > 0
-        </if>
-        <if test="whName!=null and whName!=''">
-            and position(#{warehouseName} in mtw.wh_name) > 0
-        </if>
-    </select>
-
     <!--获取仓位-->
     <select id="getWarehousePlaceByPage" resultType="java.util.Map">
         SELECT mtwp.place_id as "placeId", mtwp.place_name as "placeName",
@@ -3206,7 +3175,7 @@
 
     <!-- 查询库存 -->
     <select id="getInventory" resultType="java.util.Map">
-        select tmgs.sku_id            as "skuId",
+        select tpi.sku_id            as "skuId",
                tmgs.sku_code          as "skuCode",
                tmgs.sku_name          as "skuName",
                tmgs.sku_model         as "skuModel",
@@ -3242,6 +3211,12 @@
                  left join dkic_b.t_mst_unit as tmgu on tmgs.unit_id = tmgu.unit_id
         where tpi.flg_valid
           AND tpi.cp_id = #{cpId}
+        <if test="skuId != null">
+            AND tpi.sku_id = #{skuId} ::uuid
+        </if>
+        <if test="nonStdCode != null">
+            AND tpi.non_std_code = #{nonStdCode}
+        </if>
         <if test="skuCode != null">
             AND tmgs.sku_code = #{skuCode}
         </if>
@@ -3262,6 +3237,12 @@
                 inner join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = tpi.sku_id
         where tpi.flg_valid
           AND tpi.cp_id = #{cpId}
+        <if test="skuId != null">
+            AND tpi.sku_id = #{skuId} ::uuid
+        </if>
+        <if test="nonStdCode != null">
+            AND tpi.non_std_code = #{nonStdCode}
+        </if>
         <if test="skuCode != null">
             AND tmgs.sku_code = #{skuCode}
         </if>
@@ -3272,4 +3253,23 @@
             AND tmgs.wh_name = #{whName}
         </if>
     </select>
+
+    <!--供应商类别 -->
+    <select id="getSupType" resultType="java.util.Map">
+        select sys.f_get_name_i18n(tdk.kind_name_i18n,'zh_CN' )AS name, tdk.kind_code as code
+        from sys.t_data_kind tdk
+        where tdk.flg_valid
+          and tdk.kind_type = '供应商类别'
+        order by tdk.display_no
+    </select>
+
+    <!--供应商服务类别 -->
+    <select id="getServiceCategories" resultType="java.util.Map">
+        select sys.f_get_name_i18n(tdk.kind_name_i18n,'zh_CN' ) AS name, tdk.kind_code as code
+        from sys.t_data_kind tdk
+        where tdk.flg_valid
+          and tdk.kind_type = '服务类别'
+        order by tdk.display_no
+    </select>
+
 </mapper>

+ 2 - 14
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -5,11 +5,11 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        item_id, into_id, into_type, from_id, from_item_id, item_index, sku_id, item_qty, price_into, item_amt, non_std_code, into_status, intoing_qty, intoing_amt, into_qty, into_amt, return_qty, return_amt, remarks, inv_id, cost_price, cost_amt, out_qty, inv_qty, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+        item_id, into_id, into_type, from_id, from_item_id, item_index, sku_id, price_into, non_std_code, into_status, intoing_qty, intoing_amt, into_qty, into_amt, return_qty, return_amt, remarks, inv_id, cost_price, cost_amt, out_qty, inv_qty, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
     </sql>
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.InboundItemResponse">
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.ivt.InboundItem">
         <id column="item_id" property="itemId"/>
                 <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
                 <result column="into_type" property="intoType"/>
@@ -17,9 +17,7 @@
                 <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
                 <result column="item_index" property="itemIndex"/>
                 <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
-                <result column="item_qty" property="itemQty"/>
                 <result column="price_into" property="priceInto"/>
-                <result column="item_amt" property="itemAmt"/>
                 <result column="non_std_code" property="nonStdCode"/>
                 <result column="into_status" property="intoStatus"/>
                 <result column="intoing_qty" property="intoingQty"/>
@@ -66,15 +64,9 @@
             <if test="skuId != null and skuId != ''">
                 AND sku_id = #{skuId}
             </if>
-            <if test="itemQty != null">
-                AND item_qty = #{itemQty}
-            </if>
             <if test="priceInto != null">
                 AND price_into = #{priceInto}
             </if>
-            <if test="itemAmt != null">
-                AND item_amt = #{itemAmt}
-            </if>
             <if test="nonStdCode != null and nonStdCode != ''">
                 AND non_std_code = #{nonStdCode}
             </if>
@@ -210,9 +202,7 @@
             from_item_id,
             item_index,
             sku_id,
-            item_qty,
             price_into,
-            item_amt,
             non_std_code,
             into_status,
             intoing_qty,
@@ -241,9 +231,7 @@
                 #{item.fromItemId}::uuid,
                 #{item.itemIndex},
                 #{item.skuId}::uuid,
-                #{item.itemQty},
                 #{item.priceInto},
-                #{item.itemAmt},
                 #{item.nonStdCode},
                 #{item.intoStatus},
                 #{item.intoingQty},

+ 20 - 0
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.java

@@ -2,13 +2,33 @@ package com.dk.mdm.mapper.ivt;
 
 import com.dk.mdm.model.pojo.ivt.Inbound;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.ivt.InboundQuery;
+import com.dk.mdm.model.response.mst.DictionaryDataResponse;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
 *  入库单 Mapper
 */
 @Repository
 public interface InboundMapper extends BaseMapper<Inbound>{
+
+
+
+    /**
+     * @desc   : 根据条件进行查询
+     * @author : 于继渤
+     * @date : 2024/2/26 10:36
+     */
+    List<DictionaryDataResponse> selectInboundAndItem(InboundQuery inboundQuery);
+
+    /**
+     * @desc   : 根据条件进行查询(数量)
+     * @author : 于继渤
+     * @date : 2024/2/26 10:36
+     */
+    Long selectInboundAndItemCountByCond(InboundQuery inboundQuery);
 	
 }
 

+ 257 - 38
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml

@@ -5,45 +5,122 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        into_id, into_no, into_type, from_id, from_no, org_id, staff_id, cus_id, sup_id, into_status, intoing_qty, intoing_amt, into_qty, into_amt, return_qty, return_amt, into_date, remarks, annex_paths, make_staff, make_time, receivable_id, payable_id, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+        into_id
+        , into_no, into_type, from_id, from_no, org_id, staff_id, cus_id, sup_id, into_status, intoing_qty, intoing_amt, into_qty, into_amt, return_qty, return_amt, into_date, remarks, annex_paths, make_staff, make_time, receivable_id, payable_id, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
     </sql>
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.InboundResponse">
         <id column="into_id" property="intoId"/>
-                <result column="into_no" property="intoNo"/>
-                <result column="into_type" property="intoType"/>
-                <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
-                <result column="from_no" property="fromNo"/>
-                <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
-                <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
-                <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
-                <result column="sup_id" property="supId" typeHandler="UuidTypeHandler"/>
-                <result column="into_status" property="intoStatus"/>
-                <result column="intoing_qty" property="intoingQty"/>
-                <result column="intoing_amt" property="intoingAmt"/>
-                <result column="into_qty" property="intoQty"/>
-                <result column="into_amt" property="intoAmt"/>
-                <result column="return_qty" property="returnQty"/>
-                <result column="return_amt" property="returnAmt"/>
-            <result column="into_date" property="intoDate" typeHandler="TimestampTypeHandler"/>
-                <result column="remarks" property="remarks"/>
-                <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
-                <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
-                <result column="receivable_id" property="receivableId" typeHandler="UuidTypeHandler"/>
-                <result column="payable_id" property="payableId" typeHandler="UuidTypeHandler"/>
-                <result column="flg_valid" property="flgValid"/>
-                <result column="cp_id" property="cpId"/>
-            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
-                <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
-            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
-                <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
-                <result column="op_app_code" property="opAppCode"/>
-            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
-                <result column="op_db_user" property="opDbUser"/>
+        <result column="into_no" property="intoNo"/>
+        <result column="into_type" property="intoType"/>
+        <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
+        <result column="from_no" property="fromNo"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+        <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+        <result column="sup_id" property="supId" typeHandler="UuidTypeHandler"/>
+        <result column="into_status" property="intoStatus"/>
+        <result column="intoing_qty" property="intoingQty"/>
+        <result column="intoing_amt" property="intoingAmt"/>
+        <result column="into_qty" property="intoQty"/>
+        <result column="into_amt" property="intoAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="into_date" property="intoDate" typeHandler="TimestampTypeHandler"/>
+        <result column="remarks" property="remarks"/>
+        <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+        <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+        <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+        <result column="receivable_id" property="receivableId" typeHandler="UuidTypeHandler"/>
+        <result column="payable_id" property="payableId" typeHandler="UuidTypeHandler"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
+        <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
+        <result column="op_app_code" property="opAppCode"/>
+        <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+        <result column="op_db_user" property="opDbUser"/>
     </resultMap>
 
+
+
+
+    <sql id="Base_Column_List_Item_Response">
+        tpi.into_id
+        , tpi.into_no, tpi.into_type, tpi.from_id, tpi.from_no, tpi.org_id, tpi.staff_id, tpi.cus_id, tpi.sup_id, tpi.into_status, tpi.intoing_qty, tpi.intoing_amt,
+        tpi.into_qty, tpi.into_amt, tpi.return_qty, tpi.return_amt, tpi.into_date, tpi.remarks, tpi.annex_paths, tpi.make_staff, tpi.make_time,
+        tpi.receivable_id, tpi.payable_id, tpi.flg_valid, tpi.cp_id
+    </sql>
+    <!--    关联明细映射-->
+    <resultMap id="BaseResultMapItemResponse" type="com.dk.mdm.model.response.ivt.InboundResponse">
+        <id column="into_id" property="intoId"/>
+        <result column="into_no" property="intoNo"/>
+        <result column="into_type" property="intoType"/>
+        <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
+        <result column="from_no" property="fromNo"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+        <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+        <result column="sup_id" property="supId" typeHandler="UuidTypeHandler"/>
+        <result column="into_status" property="intoStatus"/>
+        <result column="intoing_qty" property="intoingQty"/>
+        <result column="intoing_amt" property="intoingAmt"/>
+        <result column="into_qty" property="intoQty"/>
+        <result column="into_amt" property="intoAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="into_date" property="intoDate" typeHandler="TimestampTypeHandler"/>
+        <result column="remarks" property="remarks"/>
+        <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+        <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+        <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+        <result column="receivable_id" property="receivableId" typeHandler="UuidTypeHandler"/>
+        <result column="payable_id" property="payableId" typeHandler="UuidTypeHandler"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <collection property="inboundItemList" resultMap="inboundItemListMap" columnPrefix="list_"/>
+    </resultMap>
+
+    <!--    关联映射-->
+    <resultMap id="inboundItemListMap" type="java.util.Map">
+        <result column="item_id" property="itemId" typeHandler="UuidTypeHandler"/>
+        <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
+        <result column="into_type" property="intoType"/>
+        <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
+        <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
+        <result column="item_index" property="itemIndex"/>
+        <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+        <result column="item_qty" property="itemQty"/>
+        <result column="price_into" property="priceInto"/>
+        <result column="item_amt" property="itemAmt"/>
+        <result column="non_std_code" property="nonStdCode"/>
+        <result column="into_status" property="intoStatus"/>
+        <result column="intoing_qty" property="intoingQty"/>
+        <result column="intoing_amt" property="intoingAmt"/>
+        <result column="into_qty" property="intoQty"/>
+        <result column="into_amt" property="intoAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="remarks" property="remarks"/>
+        <result column="inv_id" property="invId" typeHandler="UuidTypeHandler"/>
+        <result column="cost_price" property="costPrice"/>
+        <result column="cost_amt" property="costAmt"/>
+        <result column="out_qty" property="outQty"/>
+        <result column="inv_qty" property="invQty"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="sku_code" property="skuCode"/>
+        <result column="sku_name" property="skuName"/>
+        <result column="sku_model" property="skuModel"/>
+        <result column="price_purchase" property="pricePurchase"/>
+        <result column="reject_qty" property="rejectQty"/>
+        <result column="sku_images" property="skuImages"  typeHandler="JsonTypeHandler"/>
+    </resultMap>
+
+
     <!-- 通用条件列 -->
     <sql id="Condition">
         <where>
@@ -143,6 +220,85 @@
         </where>
     </sql>
 
+
+    <sql id="Condition_Join">
+        <where>
+            <if test="intoNo != null and intoNo != ''">
+                AND tpi.into_no = #{intoNo}
+            </if>
+            <if test="intoType != null and intoType != ''">
+                AND tpi.into_type = #{intoType}
+            </if>
+            <if test="fromId != null and fromId != ''">
+                AND tpi.from_id = #{fromId}::uuid
+            </if>
+            <if test="fromNo != null and fromNo != ''">
+                AND tpi.from_no = #{fromNo}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                AND tpi.org_id = #{orgId}::uuid
+            </if>
+            <if test="staffId != null and staffId != ''">
+                AND tpi.staff_id = #{staffId}::uuid
+            </if>
+            <if test="cusId != null and cusId != ''">
+                AND tpi.cus_id = #{cusId}::uuid
+            </if>
+            <if test="supId != null and supId != ''">
+                AND tpi.sup_id = #{supId}::uuid
+            </if>
+            <if test="intoStatus != null and intoStatus != ''">
+                AND tpi.into_status = #{intoStatus}
+            </if>
+            <if test="intoingQty != null">
+                AND tpi.intoing_qty = #{intoingQty}
+            </if>
+            <if test="intoingAmt != null">
+                AND tpi.intoing_amt = #{intoingAmt}
+            </if>
+            <if test="intoQty != null">
+                AND tpi.into_qty = #{intoQty}
+            </if>
+            <if test="intoAmt != null">
+                AND tpi.into_amt = #{intoAmt}
+            </if>
+            <if test="returnQty != null">
+                AND tpi.return_qty = #{returnQty}
+            </if>
+            <if test="returnAmt != null">
+                AND tpi.return_amt = #{returnAmt}
+            </if>
+            <if test="intoDate != null">
+                AND tpi.into_date = #{intoDate}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND tpi.remarks = #{remarks}
+            </if>
+            <if test="annexPaths != null and annexPaths != ''">
+                AND tpi.annex_paths = #{annexPaths}
+            </if>
+            <if test="makeStaff != null and makeStaff != ''">
+                AND tpi.make_staff = #{makeStaff}
+            </if>
+            <if test="makeTime != null">
+                AND tpi.make_time = #{makeTime}
+            </if>
+            <if test="receivableId != null and receivableId != ''">
+                AND tpi.receivable_id = #{receivableId}
+            </if>
+            <if test="payableId != null and payableId != ''">
+                AND tpi.payable_id = #{payableId}
+            </if>
+            <if test="flgValid != null">
+                AND tpi.flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND tpi.cp_id = #{cpId}
+            </if>
+
+        </where>
+    </sql>
+
     <sql id="idsForeach">
         <!-- 根据主键intoId批量操作 -->
         WHERE into_id in
@@ -155,7 +311,7 @@
     <select id="selectByCond" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_inbound
+        FROM dkic_b.t_psi_inbound
         <include refid="Condition"/>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
@@ -166,7 +322,7 @@
     <select id="countByCond" resultType="Long">
         SELECT
         count(1)
-        FROM t_psi_inbound
+        FROM dkic_b.t_psi_inbound
         <include refid="Condition"/>
     </select>
 
@@ -174,7 +330,7 @@
     <select id="selectById" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_inbound
+        FROM dkic_b.t_psi_inbound
         WHERE into_id = #{intoId}::uuid
     </select>
 
@@ -182,7 +338,7 @@
     <select id="selectByIdForUpdate" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_inbound
+        FROM dkic_b.t_psi_inbound
         WHERE into_id = #{intoId}
         for update
     </select>
@@ -191,13 +347,13 @@
     <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_inbound
+        FROM dkic_b.t_psi_inbound
         <include refid="idsForeach"/>
         for update
     </select>
 
     <insert id="insertBatch">
-        insert into t_psi_inbound
+        insert into dkic_b.t_psi_inbound
         (
         <trim suffixOverrides=",">
             into_no,
@@ -258,4 +414,67 @@
             )
         </foreach>
     </insert>
+
+
+    <sql id="Base_Column_List_Item_Response_Join">
+        tpii
+        .
+        item_id
+        AS list_item_id,
+        tpii.into_id AS list_into_id,
+        tpii.into_type AS list_into_type,
+        tpii.from_id AS list_from_id,
+        tpii.from_item_id AS list_from_item_id,
+        tpii.item_index AS list_item_index,
+        tpii.sku_id AS list_sku_id,
+        tpii.item_qty AS list_item_qty,
+        tpii.price_into AS list_price_into,
+        tpii.item_amt AS list_item_amt,
+        tpii.non_std_code AS list_non_std_code,
+        tpii.into_status AS list_into_status,
+        tpii.intoing_qty AS list_intoing_qty,
+        tpii.intoing_amt AS list_intoing_amt,
+        tpii.into_qty AS list_into_qty,
+        tpii.into_amt AS list_into_amt,
+        tpii.return_qty AS list_return_qty,
+        tpii.return_amt AS list_return_amt,
+        tpii.remarks AS list_remarks,
+        tpii.inv_id AS list_inv_id,
+        tpii.cost_price AS list_cost_price,
+        tpii.cost_amt AS list_cost_amt,
+        tpii.out_qty AS list_out_qty,
+        tpii.inv_qty AS list_inv_qty,
+        tpii.flg_valid AS list_flg_valids,
+        tpii.cp_id AS list_cp_id,
+        tmgs.sku_code AS  list_sku_code,
+        tmgs.sku_name AS  list_sku_name,
+        tmgs.sku_model AS  list_sku_model,
+        tmgs.price_purchase AS  list_price_purchase,
+        tmgs.sku_images AS  list_sku_images,
+
+        ( tpii.into_qty - tpii.return_qty)  AS list_reject_qty
+    </sql>
+
+
+    <!-- 查询表t_psi_inbound,(条件查询+分页)列表 -->
+    <select id="selectInboundAndItem" resultMap="BaseResultMapItemResponse">
+        SELECT
+        <include refid="Base_Column_List_Item_Response"/>,
+        <include refid="Base_Column_List_Item_Response_Join"/>
+        FROM dkic_b.t_psi_inbound  tpi
+        left join dkic_b.t_psi_inbound_item tpii  on tpi.into_id = tpii.into_id
+        left join  dkic_b.t_mst_goods_sku  tmgs on tmgs.sku_id = tpii.sku_id
+        <include refid="Condition_Join"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_inbound,(条件查询)个数 -->
+    <select id="selectInboundAndItemCountByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM dkic_b.t_psi_inbound tpi
+        <include refid="Condition_Join"/>
+    </select>
 </mapper>

+ 17 - 1
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.java

@@ -2,13 +2,29 @@ package com.dk.mdm.mapper.ivt;
 
 import com.dk.mdm.model.pojo.ivt.OutboundItem;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.ivt.OutboundItemQuery;
+import com.dk.mdm.model.response.ivt.OutboundItemResponse;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
 *  出库明细 Mapper
 */
 @Repository
 public interface OutboundItemMapper extends BaseMapper<OutboundItem>{
-	
+    /**
+     * @desc   : 根据条件进行查询
+     * @author : 付斌
+     * @date   : 2024-02-28 10:18
+     */
+    List<OutboundItemResponse> selectByCond(OutboundItemQuery orderQuery);
+
+    /**
+     * @desc   : 根据条件进行查询(数量)
+     * @author : 付斌
+     * @date   : 2024-02-28 10:19
+     */
+    Long countByCond(OutboundItemQuery orderQuery);
 }
 

+ 1 - 13
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml

@@ -5,7 +5,7 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        item_id, out_id, out_type, from_id, from_item_id, item_index, sku_id, item_qty, price_out, item_amt, non_std_code, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, remarks, inv_id, cost_price, cost_amt, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+        item_id, out_id, out_type, from_id, from_item_id, item_index, sku_id, price_out, non_std_code, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, remarks, inv_id, cost_price, cost_amt, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
     </sql>
 
     <!-- 通用查询映射结果 -->
@@ -17,9 +17,7 @@
                 <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
                 <result column="item_index" property="itemIndex"/>
                 <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
-                <result column="item_qty" property="itemQty"/>
                 <result column="price_out" property="priceOut"/>
-                <result column="item_amt" property="itemAmt"/>
                 <result column="non_std_code" property="nonStdCode"/>
                 <result column="out_status" property="outStatus"/>
                 <result column="outing_qty" property="outingQty"/>
@@ -64,15 +62,9 @@
             <if test="skuId != null and skuId != ''">
                 AND sku_id = #{skuId}
             </if>
-            <if test="itemQty != null">
-                AND item_qty = #{itemQty}
-            </if>
             <if test="priceOut != null">
                 AND price_out = #{priceOut}
             </if>
-            <if test="itemAmt != null">
-                AND item_amt = #{itemAmt}
-            </if>
             <if test="nonStdCode != null and nonStdCode != ''">
                 AND non_std_code = #{nonStdCode}
             </if>
@@ -202,9 +194,7 @@
             from_item_id,
             item_index,
             sku_id,
-            item_qty,
             price_out,
-            item_amt,
             non_std_code,
             out_status,
             outing_qty,
@@ -231,9 +221,7 @@
                 #{item.fromItemId}::uuid,
                 #{item.itemIndex},
                 #{item.skuId}::uuid,
-                #{item.itemQty},
                 #{item.priceOut},
-                #{item.itemAmt},
                 #{item.nonStdCode},
                 #{item.outStatus},
                 #{item.outingQty},

+ 7 - 1
src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.java

@@ -2,6 +2,7 @@ package com.dk.mdm.mapper.ivt;
 
 import com.dk.mdm.model.pojo.ivt.Outbound;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.response.ivt.OutboundResponse;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -9,6 +10,11 @@ import org.springframework.stereotype.Repository;
 */
 @Repository
 public interface OutboundMapper extends BaseMapper<Outbound>{
-	
+    /**
+     * @desc   : 根据Id进行查询
+     * @author : 付斌
+     * @date   : 2024-03-03 9:25
+     */
+    OutboundResponse selectById(String id);
 }
 

+ 20 - 2
src/main/java/com/dk/mdm/mapper/mst/GoodsSkuMapper.xml

@@ -122,7 +122,16 @@
             <if test="cpId != null">
                 AND tmgs.cp_id = #{cpId}
             </if>
-
+            <if test="brandIds != null">
+                AND   EXISTS (
+                SELECT 1
+                FROM unnest(string_to_array(#{brandIds}, ',')) AS brand_uuid
+                WHERE brand_uuid::uuid = tmgs.brand_id
+                )
+            </if>
+            <if test="searchText !=null">
+                AND ( tmgs.sku_name LIKE concat('%', #{searchText}, '%')
+            </if>
         </where>
     </sql>
 
@@ -138,11 +147,20 @@
     <select id="selectByCond" resultMap="BaseResultMapResponse">
         SELECT
         <include refid="Base_Column_List_JOIN"/>
-        ,tmgb.brand_name AS "brandName",tmgsr.series_name AS "seriesName"
+        ,tmgb.brand_name AS "brandName",tmgsr.series_name AS "seriesName",tpi.usable_qty AS "usableQty"
         FROM dkic_b.t_mst_goods_sku  tmgs
         LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
         LEFT JOIN dkic_b.t_mst_goods_series tmgsr ON tmgsr.series_id = tmgs.series_id
+        LEFT JOIN dkic_b.t_psi_inventory tpi ON tpi.sku_id = tmgs.sku_id
         <include refid="Condition"/>
+        ORDER BY CASE
+        WHEN #{sort}  = 2 THEN tpi.usable_qty
+        ELSE NULL
+        END ASC,
+        CASE
+        WHEN #{sort} != 2 THEN tpi.usable_qty
+        ELSE NULL
+        END DESC
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
         </if>

+ 17 - 4
src/main/java/com/dk/mdm/mapper/mst/MoneyAccountMapper.java

@@ -16,28 +16,41 @@ import java.util.List;
 public interface MoneyAccountMapper extends BaseMapper<MoneyAccount>{
     /**
      * @desc   : 根据条件进行查询
-     * @author : songy
+     * @author : 宋扬
      * @date   : 2024/3/1 10:42
      */
     List<MoneyAccountResponse> selectByCond(MoneyAccountQuery moneyAccountQuery);
+    /**
+     * @desc   : 维修小程序列表
+     * @author : 王英杰
+     * @date   : 2024/3/1 10:42
+     */
+    List<MoneyAccountResponse> wxSelectByCond(MoneyAccountQuery moneyAccountQuery);
 
     /**
      * @desc   : 根据条件进行查询(数量)
-     * @author : songy
+     * @author : 宋扬
      * @date   : 2024/3/1 10:42
      */
     Long countByCond(MoneyAccountQuery moneyAccountQuery);
 
+    /**
+     * @desc   : 小程序列表查询(数量)
+     * @author : 王英杰
+     * @date   : 2024/3/1 10:42
+     */
+    Long wxCountByCond(MoneyAccountQuery moneyAccountQuery);
+
    /**
     * @desc   : 查询
-    * @author : songy
+    * @author : 宋扬
     * @date   : 2024/3/2 16:19
     */
     Integer selectDisplayNo(MoneyAccountQuery moneyAccountQuery);
 
     /**
      * @desc   : 根据Id进行查询
-     * @author : songy
+     * @author : 宋扬
      * @date   : 2024-03-03 9:25
      */
     MoneyAccountResponse selectById(String id);

+ 26 - 27
src/main/java/com/dk/mdm/mapper/mst/MoneyAccountMapper.xml

@@ -34,29 +34,17 @@
     <sql id="Condition">
         <where>
             <if test="macCode != null and macCode != ''">
-                AND ma.mac_code = #{macCode}
+                AND ma.mac_code LIKE concat('%',my_ex.likequery(#{macCode}),'%')
             </if>
             <if test="macName != null and macName != ''">
-                AND ma.mac_name = #{macName}
+                AND ma.mac_name LIKE concat('%',my_ex.likequery(#{macName}),'%')
             </if>
             <if test="remarks != null and remarks != ''">
-                AND ma.remarks = #{remarks}
+                AND ma.remarks = LIKE concat('%',my_ex.likequery(#{remarks}),'%')
             </if>
             <if test="cpId != null">
                 AND ma.cp_id = #{cpId}
             </if>
-            <if test="opCreateTime != null">
-                AND ma.op_create_time = #{opCreateTime}
-            </if>
-            <if test="opCreateUserId != null and opCreateUserId != ''">
-                AND ma.op_create_user_id = #{opCreateUserId}
-            </if>
-            <if test="opUpdateTime != null">
-                AND ma.op_update_time = #{opUpdateTime}
-            </if>
-            <if test="opUpdateUserId != null and opUpdateUserId != ''">
-                AND ma.op_update_user_id = #{opUpdateUserId}
-            </if>
             <if test="opTimestamp != null">
                 AND ma.op_timestamp = #{opTimestamp}
             </if>
@@ -69,14 +57,6 @@
         </where>
     </sql>
 
-    <sql id="idsForeach">
-        <!-- 根据主键macId批量操作 -->
-        WHERE mac_id in
-        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
-            #{item}
-        </foreach>
-    </sql>
-
     <!-- 查询表t_mst_money_account,(条件查询+分页)列表 -->
     <select id="selectByCond" resultMap="BaseResultMap">
         SELECT ma.mac_Type,ma.mac_code,ma.mac_name,ma.remarks
@@ -86,11 +66,10 @@
         FROM dkic_b.t_mst_money_account ma
         left join dkic_b.t_mst_dictionary_data dd on ma.mac_type=dd.data_id
         <include refid="Condition"/>
-        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
-            limit #{end} offset #{start}
-        </if>
     </select>
 
+
+
     <!-- 查询表t_mst_money_account,(条件查询)个数 -->
     <select id="countByCond" resultType="Long">
         SELECT
@@ -99,11 +78,31 @@
         <include refid="Condition"/>
     </select>
 
+    <!-- 王英杰 2024年3月6日 微信小程序用 -->
+    <select id="wxSelectByCond" resultMap="BaseResultMap">
+        SELECT
+        tmma.mac_type, tmdd.data_value AS "macTypeName",
+        SUM(balance) AS totalBalance,
+        json_agg(json_build_object('macId', tmma.mac_id, 'macName', tmma.mac_name, 'balance', tmma.balance)) AS subList
+        FROM dkic_b.t_mst_money_account tmma
+        left join dkic_b.t_mst_dictionary_data tmdd on tmdd.data_id = tmma.mac_type
+        GROUP BY tmma.mac_type,tmdd.data_value
+        <include refid="Condition"/>
+    </select>
+    <!-- 王英杰 2024年3月6日 微信小程序用 -->
+    <select id="wxCountByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM dkic_b.t_mst_money_account tmma
+        left join dkic_b.t_mst_dictionary_data tmdd on tmdd.data_id = tmma.mac_type
+        GROUP BY tmma.mac_type,tmdd.data_value
+        <include refid="Condition"/>
+    </select>
     <!-- 根据主键查询表t_mst_money_account的一行数据 -->
     <select id="selectById" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_mst_money_account
+        FROM dkic_b.t_mst_money_account
         WHERE mac_id = #{macId}::uuid
     </select>
 

+ 2 - 2
src/main/java/com/dk/mdm/mapper/mst/StaffMapper.xml

@@ -69,8 +69,8 @@
                 AND t.hr_status = #{hrStatus}
             </if>
             <if test="roleIds != null and roleIds.size()>0">
-                AND t.role_ids =
-                any(#{roleIds, typeHandler=StringListTypeHandler})
+                AND t.role_ids &amp;&amp;
+                #{roleIds, typeHandler=UuidListTypeHandler}
             </if>
             <if test="orgIds != null and orgIds.size()>0">
                 AND t.org_id =

+ 7 - 0
src/main/java/com/dk/mdm/mapper/mst/StaffRightMapper.java

@@ -18,5 +18,12 @@ public interface StaffRightMapper extends BaseMapper<StaffRight>{
      * @date : 2024/2/26 10:36
      */
     List<Map<String, Object>> getStaffRight(Map param);
+
+    /**
+     * @desc   : WEB获取员工权限
+     * @author : 常皓宁
+     * @date   : 2024/3/6 13:16
+     */
+    List<Map<String, Object>> getStaffRightWeb(Map param);
 }
 

+ 22 - 0
src/main/java/com/dk/mdm/mapper/mst/StaffRightMapper.xml

@@ -163,4 +163,26 @@
           AND menu.object_code != 'home'
         ORDER BY menu.level_code;
     </select>
+
+    <!-- WEB获取功能权限 -->
+    <select id="getStaffRightWeb" resultType="java.util.Map">
+        SELECT menu.menu_uuid    AS "menuUuid",
+               menu.menu_uuid    AS "id",
+               menu.menu_name    AS "menuName",
+               menu.app_code     AS "appCode",
+               menu.parent_uuid  AS "parentId",
+               menu.flg_menu     AS "flgMenu",
+               staffRight.staff_id   AS "staffId",
+               menu.fun_uuid     AS "funUuid",
+               CASE WHEN staffRight.staff_id IS NULL THEN FALSE ELSE TRUE END    AS "checked"
+        FROM sys.t_app_menu menu
+                 left JOIN dkic_b.t_mst_role_fun roleFun ON menu.fun_uuid = roleFun.fun_uuid  and roleFun.role_id::uuid =  any ( (
+                 select  role_ids from dkic_b.t_mst_staff where staff_id = #{staffId}::uuid)::uuid[])
+            left JOIN   dkic_b.t_mst_staff_right staffRight ON menu.fun_uuid = staffRight.fun_uuid  and staffRight.staff_id = #{staffId}::uuid
+
+        WHERE menu.flg_valid
+          AND menu.flg_right
+          AND menu.object_code != 'home'
+        ORDER BY menu.level_code;
+    </select>
 </mapper>

+ 2 - 1
src/main/java/com/dk/mdm/mapper/mst/SupplierMapper.xml

@@ -178,7 +178,7 @@
     <select id="selectByCond" resultMap="BaseResultMap">
         SELECT
         <include refid="msl_Base_Column_List"/>
-        ,tms.staff_name,sys.f_get_name_i18n(tdk.kind_name_i18n,'zh_CN' )AS  "supTypeName"
+        ,tms.staff_name,sys.f_get_name_i18n(tdk.kind_name_i18n,'zh_CN' ) AS  "supTypeName"
           ,
         (
         SELECT
@@ -197,6 +197,7 @@
         tsmb.sup_id = msl.sup_id
         ) AS "brandName"
         ,tmo.org_name
+        ,tmo.org_code
         FROM dkic_b.t_mst_supplier msl
         LEFT JOIN dkic_b.t_mst_staff  tms   ON tms.staff_id = msl.staff_id
         LEFT JOIN dkic_b.t_mst_org  tmo   ON tmo.org_id = msl.org_id

+ 3 - 3
src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.xml

@@ -256,7 +256,7 @@
     <sql id="Condition_1">
         <where>
             <if test="purNo != null and purNo != ''">
-                AND tpp.pur_no = #{purNo}
+                AND tpp.pur_no like concat('%', my_ex.likequery(#{purNo}) , '%')
             </if>
             <if test="purType != null and purType != ''">
                 AND tpp.pur_type = #{purType}
@@ -271,10 +271,10 @@
                 AND tpp.sup_id = #{supId}::uuid
             </if>
             <if test="contactName != null and contactName != ''">
-                AND tpp.contact_name = #{contactName}
+                AND tpp.contact_name like concat('%', my_ex.likequery(#{contactName}) , '%')
             </if>
             <if test="contactPhone != null and contactPhone != ''">
-                AND tpp.contact_phone = #{contactPhone}
+                AND tpp.contact_phone like concat('%', my_ex.likequery(#{contactPhone}) , '%')
             </if>
             <if test="pickupDate != null">
                 AND tpp.pickup_date = #{pickupDate}

+ 7 - 0
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.java

@@ -34,5 +34,12 @@ public interface OrderItemMapper extends BaseMapper<OrderItem>{
      * @date   : 2024-03-03 14:17
      */
     int deleteById(@Param("id") String id);
+
+    /**
+     * @desc   : 根据条件进行查询(出库用)
+     * @author : 付斌
+     * @date   : 2024-03-06 12:59
+     */
+    List<OrderItemResponse> selectByCondForOut(OrderItemQuery orderQuery);
 }
 

+ 69 - 4
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml

@@ -5,11 +5,44 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        item_id , order_id, item_index, sku_id, item_qty, price_std, amt_std, price_sale, item_amt, price_discount, non_std_code, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, remarks, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+        item_id
+        , order_id, item_index, sku_id, item_qty, price_std, amt_std, price_sale, item_amt, price_discount, non_std_code, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, remarks, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
     </sql>
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.sale.OrderItemResponse">
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.sale.OrderItem">
+        <id column="item_id" property="itemId"/>
+                <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
+                <result column="item_index" property="itemIndex"/>
+                <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+                <result column="item_qty" property="itemQty"/>
+                <result column="price_std" property="priceStd"/>
+                <result column="amt_std" property="amtStd"/>
+                <result column="price_sale" property="priceSale"/>
+                <result column="item_amt" property="itemAmt"/>
+                <result column="price_discount" property="priceDiscount"/>
+                <result column="non_std_code" property="nonStdCode"/>
+                <result column="out_status" property="outStatus"/>
+                <result column="outing_qty" property="outingQty"/>
+                <result column="outing_amt" property="outingAmt"/>
+                <result column="out_qty" property="outQty"/>
+                <result column="out_amt" property="outAmt"/>
+                <result column="return_qty" property="returnQty"/>
+                <result column="return_amt" property="returnAmt"/>
+                <result column="remarks" property="remarks"/>
+                <result column="flg_valid" property="flgValid"/>
+                <result column="cp_id" property="cpId"/>
+            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
+            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
+                <result column="op_app_code" property="opAppCode"/>
+            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+                <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMapResponse" type="com.dk.mdm.model.response.sale.OrderItemResponse">
         <id column="item_id" property="itemId"/>
                 <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
                 <result column="item_index" property="itemIndex"/>
@@ -115,7 +148,7 @@
     </sql>
 
     <!-- 查询表t_psi_order_item,(条件查询+分页)列表 -->
-    <select id="selectByCond" resultMap="BaseResultMap">
+    <select id="selectByCond" resultMap="BaseResultMapResponse">
         SELECT tpoi.item_id,
                tpoi.order_id,
                tpoi.item_index,
@@ -237,7 +270,39 @@
     </insert>
 
     <delete id="deleteById">
-        DELETE FROM dkic_b.t_psi_order_item
+        DELETE
+        FROM dkic_b.t_psi_order_item
         WHERE item_id = #{id}::UUID;
     </delete>
+
+    <!-- 根据条件进行查询(出库用) -->
+    <select id="selectByCondForOut" resultMap="BaseResultMapResponse">
+        SELECT tpoi.item_id                                        as "fromItemId",
+               tpoi.order_id                                       as "fromId",
+               tpoi.item_index,
+               tpoi.sku_id,
+               tmgs.sku_code                                       as "skuCode",
+               tmgs.sku_model                                      as "skuModel",
+               tmgs.sku_name                                       as "skuName",
+               tpoi.item_qty                                       as "orderQty",
+               tpoi.item_qty - tpoi.outing_qty                     as "canOutingQty",
+               tpoi.item_qty - tpoi.outing_qty                     as outing_qty,
+               tpoi.price_sale                                     as "priceOut",
+               tpoi.price_sale * (tpoi.item_qty - tpoi.outing_qty) as outing_amt,
+               tpoi.non_std_code,
+               tpoi.remarks,
+               tpi.inv_id                                          as "invId",
+               tpi.wh_id                                           as "whId",
+               tpi.inv_qty                                         as "invQty",
+               tpi.usable_qty                                      as "usableQty",
+               tmw.wh_name                                         as "whName"
+        FROM dkic_b.t_psi_order_item as tpoi
+                 inner join dkic_b.t_mst_goods_sku tmgs on tpoi.sku_id = tmgs.sku_id
+                 left join dkic_b.t_psi_inventory as tpi
+                           on tpi.sku_id = tpoi.sku_id and tpi.non_std_code = tpoi.non_std_code and
+                              tpi.cp_id = tpoi.cp_id
+                 left join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id
+        where tpoi.order_id = #{orderId}::uuid
+        order by tpoi.item_index
+    </select>
 </mapper>

+ 3 - 3
src/main/java/com/dk/mdm/model/pojo/ivt/Inbound.java

@@ -18,6 +18,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.alibaba.fastjson.JSONObject;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 import java.time.LocalDateTime;
 
@@ -41,7 +42,6 @@ public class Inbound extends PageInfo<Inbound> implements Serializable {
     /**
      * 入库单ID
      */
-    @TableId(value = "into_id", type = IdType.AUTO)
     @ApiModelProperty(value = "入库单ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String intoId;
@@ -177,9 +177,9 @@ public class Inbound extends PageInfo<Inbound> implements Serializable {
      */
     @Excel(name = "入库日期")
     @ApiModelProperty(value = "入库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime intoDate;
+    private LocalDate intoDate;
 
 
     /**

+ 0 - 17
src/main/java/com/dk/mdm/model/pojo/ivt/InboundItem.java

@@ -41,7 +41,6 @@ public class InboundItem extends PageInfo<InboundItem> implements Serializable {
     /**
      * 明细ID
      */
-
     @ApiModelProperty(value = "明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String itemId;
@@ -100,14 +99,6 @@ public class InboundItem extends PageInfo<InboundItem> implements Serializable {
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 入库价
      */
     @Excel(name = "入库价")
@@ -116,14 +107,6 @@ public class InboundItem extends PageInfo<InboundItem> implements Serializable {
 
 
     /**
-     * 入库金额 (商品数量*入库价)
-     */
-    @Excel(name = "入库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "入库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 3 - 2
src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java

@@ -18,6 +18,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.alibaba.fastjson.JSONObject;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 import java.time.LocalDateTime;
 
@@ -177,9 +178,9 @@ public class Outbound extends PageInfo<Outbound> implements Serializable {
      */
     @Excel(name = "出库日期")
     @ApiModelProperty(value = "出库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime outDate;
+    private LocalDate outDate;
 
 
     /**

+ 0 - 16
src/main/java/com/dk/mdm/model/pojo/ivt/OutboundItem.java

@@ -100,14 +100,6 @@ public class OutboundItem extends PageInfo<OutboundItem> implements Serializable
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 出库价
      */
     @Excel(name = "出库价")
@@ -116,14 +108,6 @@ public class OutboundItem extends PageInfo<OutboundItem> implements Serializable
 
 
     /**
-     * 出库金额 (商品数量*入库价)
-     */
-    @Excel(name = "出库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 0 - 19
src/main/java/com/dk/mdm/model/query/ivt/InboundItemQuery.java

@@ -1,9 +1,7 @@
 package com.dk.mdm.model.query.ivt;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
@@ -42,7 +40,6 @@ public class InboundItemQuery extends PageInfo<InboundItemQuery> implements Seri
     /**
      * 明细ID
      */
-    @TableId(value = "item_id", type = IdType.AUTO)
     @ApiModelProperty(value = "明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String itemId;
@@ -101,14 +98,6 @@ public class InboundItemQuery extends PageInfo<InboundItemQuery> implements Seri
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 入库价
      */
     @Excel(name = "入库价")
@@ -117,14 +106,6 @@ public class InboundItemQuery extends PageInfo<InboundItemQuery> implements Seri
 
 
     /**
-     * 入库金额 (商品数量*入库价)
-     */
-    @Excel(name = "入库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "入库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 3 - 2
src/main/java/com/dk/mdm/model/query/ivt/InboundQuery.java

@@ -22,6 +22,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -180,9 +181,9 @@ public class InboundQuery extends PageInfo<InboundQuery> implements Serializable
      */
     @Excel(name = "入库日期")
     @ApiModelProperty(value = "入库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime intoDate;
+    private LocalDate intoDate;
 
 
     /**

+ 0 - 16
src/main/java/com/dk/mdm/model/query/ivt/OutboundItemQuery.java

@@ -99,14 +99,6 @@ public class OutboundItemQuery extends PageInfo<OutboundItemQuery> implements Se
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 出库价
      */
     @Excel(name = "出库价")
@@ -115,14 +107,6 @@ public class OutboundItemQuery extends PageInfo<OutboundItemQuery> implements Se
 
 
     /**
-     * 出库金额 (商品数量*入库价)
-     */
-    @Excel(name = "出库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 3 - 2
src/main/java/com/dk/mdm/model/query/ivt/OutboundQuery.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -178,9 +179,9 @@ public class OutboundQuery extends PageInfo<OutboundQuery> implements Serializab
      */
     @Excel(name = "出库日期")
     @ApiModelProperty(value = "出库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime outDate;
+    private LocalDate outDate;
 
 
     /**

+ 10 - 1
src/main/java/com/dk/mdm/model/query/mst/GoodsSkuQuery.java

@@ -91,7 +91,7 @@ public class GoodsSkuQuery extends PageInfo<GoodsSku> implements Serializable {
     @TableField(typeHandler = UuidTypeHandler.class)
     private String categoryId;
 
-
+    private String searchText;
     /**
      * 计量单位
      */
@@ -263,6 +263,15 @@ public class GoodsSkuQuery extends PageInfo<GoodsSku> implements Serializable {
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     private String opDbUser;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "品牌")
+    private String brandIds;
+
+
 
     /*
      * 相关属性

+ 2 - 2
src/main/java/com/dk/mdm/model/query/mst/MoneyAccountQuery.java

@@ -196,7 +196,7 @@ public class MoneyAccountQuery extends PageInfo<MoneyAccountQuery> implements Se
 
     /**
      * @desc   : 有效标识List
-     * @author : songy
+     * @author : 宋扬
      * @date   : 2024/3/2 9:31
      */
     @Excel(name = "有效标识 (1:正常 0:停用)")
@@ -206,7 +206,7 @@ public class MoneyAccountQuery extends PageInfo<MoneyAccountQuery> implements Se
 
     /**
      * @desc   : 账户类别list
-     * @author : songy
+     * @author : 宋扬
      * @date   : 2024/3/2 9:27
      */
     @Excel(name = "账户类别 (【数据字典】)")

+ 2 - 2
src/main/java/com/dk/mdm/model/query/mst/StaffQuery.java

@@ -221,8 +221,8 @@ public class StaffQuery extends PageInfo<StaffQuery> implements Serializable {
      * @desc   : 角色list
      */
     @ApiModelProperty(value = "员工状态list")
-    @TableField(typeHandler = UuidListTypeHandler.class)
-    private String roleIds;
+    @TableField(exist = false)
+    private List<String> roleIds;
 
     /**
      * @desc   : 组织部门list

+ 9 - 0
src/main/java/com/dk/mdm/model/query/mst/SupplierQuery.java

@@ -116,6 +116,15 @@ import java.time.LocalDateTime;
 
 
         /**
+         * @desc   : 有效标识List
+         * @author : songy
+         * @date   : 2024/3/2 9:31
+         */
+        @Excel(name = "有效标识 (1:正常 0:停用)")
+        @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+        private List<Boolean> flgValidList;
+
+        /**
          * 备注
          */
         @Excel(name = "备注")

+ 0 - 19
src/main/java/com/dk/mdm/model/response/ivt/InboundItemResponse.java

@@ -1,9 +1,7 @@
 package com.dk.mdm.model.response.ivt;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
@@ -42,7 +40,6 @@ public class InboundItemResponse extends PageInfo<InboundItemResponse> implement
     /**
      * 明细ID
      */
-    @TableId(value = "item_id", type = IdType.AUTO)
     @ApiModelProperty(value = "明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String itemId;
@@ -101,14 +98,6 @@ public class InboundItemResponse extends PageInfo<InboundItemResponse> implement
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 入库价
      */
     @Excel(name = "入库价")
@@ -117,14 +106,6 @@ public class InboundItemResponse extends PageInfo<InboundItemResponse> implement
 
 
     /**
-     * 入库金额 (商品数量*入库价)
-     */
-    @Excel(name = "入库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "入库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 5 - 3
src/main/java/com/dk/mdm/model/response/ivt/InboundResponse.java

@@ -22,7 +22,9 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  入库单
@@ -180,9 +182,9 @@ public class InboundResponse extends PageInfo<InboundResponse> implements Serial
      */
     @Excel(name = "入库日期")
     @ApiModelProperty(value = "入库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime intoDate;
+    private LocalDate intoDate;
 
 
     /**
@@ -328,7 +330,7 @@ public class InboundResponse extends PageInfo<InboundResponse> implements Serial
      * 关联属性 + 查询条件
      * @TableField(exist = false)
      */
-
+    private List<InboundItemResponse> inboundItemList;
 
     private static final long serialVersionUID = 1L;
 

+ 7 - 6
src/main/java/com/dk/mdm/model/response/ivt/IntoReturnItemResponse.java

@@ -44,13 +44,14 @@ public class IntoReturnItemResponse  implements Serializable {
     private String itemId;
 
 
-    /**
-     * 退货单ID
-     */
-    @Excel(name = "退货单ID")
-    @ApiModelProperty(value = "退货单ID")
+
+    private String fromId;
+
+    private String intoType;
+
+
     @TableField(typeHandler = UuidTypeHandler.class)
-    private String returnId;
+    private String fromItemId;
 
 
     /**

+ 0 - 16
src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java

@@ -99,14 +99,6 @@ public class OutboundItemResponse extends PageInfo<OutboundItemResponse> impleme
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 出库价
      */
     @Excel(name = "出库价")
@@ -115,14 +107,6 @@ public class OutboundItemResponse extends PageInfo<OutboundItemResponse> impleme
 
 
     /**
-     * 出库金额 (商品数量*入库价)
-     */
-    @Excel(name = "出库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 3 - 2
src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -178,9 +179,9 @@ public class OutboundResponse extends PageInfo<OutboundResponse> implements Seri
      */
     @Excel(name = "出库日期")
     @ApiModelProperty(value = "出库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime outDate;
+    private LocalDate outDate;
 
 
     /**

+ 6 - 0
src/main/java/com/dk/mdm/model/response/mst/GoodsSkuResponse.java

@@ -279,6 +279,12 @@ public class GoodsSkuResponse implements Serializable {
     @TableField(exist = false)
     @ApiModelProperty(value = "辅助单位")
     private String subUnitName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "可售量")
+    private Integer usableQty;
+
+
     /*
      * 相关属性
      * @TableField(exist = false)

+ 11 - 0
src/main/java/com/dk/mdm/model/response/mst/MoneyAccountResponse.java

@@ -1,6 +1,7 @@
 package com.dk.mdm.model.response.mst;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -201,6 +202,16 @@ public class MoneyAccountResponse extends PageInfo<MoneyAccountResponse> impleme
     private String opDbUser;
 
 
+
+    /**
+     * 账户余额
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "合计账户余额")
+    private BigDecimal totalBalance;
+
+
+
     /*
      * 相关属性
      * @TableField(exist = false)

+ 10 - 3
src/main/java/com/dk/mdm/model/response/mst/SpplierResponse.java

@@ -73,7 +73,6 @@ public class SpplierResponse extends PageInfo<SpplierResponse> implements Serial
     @ApiModelProperty(value = "供应商类别 (【系统字典】)")
     private String supType;
 
-
     /**
      * 联系人
      */
@@ -113,8 +112,9 @@ public class SpplierResponse extends PageInfo<SpplierResponse> implements Serial
     @ApiModelProperty(value = "业务员")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String staffName;
+
     /**
-     * 业务员
+     * 组织机构
      */
     @Excel(name = "组织机构")
     @ApiModelProperty(value = "组织机构")
@@ -122,6 +122,14 @@ public class SpplierResponse extends PageInfo<SpplierResponse> implements Serial
     private String orgName;
 
     /**
+     * 组织机构编码
+     */
+    @Excel(name = "组织机构")
+    @ApiModelProperty(value = "组织机构")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgCode;
+
+    /**
      * 服务类别 (【系统字典】)
      */
     @Excel(name = "服务类别 (【系统字典】)")
@@ -130,7 +138,6 @@ public class SpplierResponse extends PageInfo<SpplierResponse> implements Serial
     private List<String> serviceCategories;
 
 
-
     /**
      * 备注
      */

+ 30 - 0
src/main/java/com/dk/mdm/model/response/sale/OrderItemResponse.java

@@ -273,6 +273,12 @@ public class OrderItemResponse extends PageInfo<OrderItemResponse> implements Se
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     private String opDbUser;
 
+    @ApiModelProperty(value = "来源单明细ID")
+    private String fromItemId;
+
+    @ApiModelProperty(value = "来源单ID")
+    private String fromId;
+
     @ApiModelProperty(value = "商品编码")
     private String skuCode;
 
@@ -281,6 +287,30 @@ public class OrderItemResponse extends PageInfo<OrderItemResponse> implements Se
 
     @ApiModelProperty(value = "商品名称")
     private String skuName;
+
+    @ApiModelProperty(value = "订单数量")
+    private BigDecimal orderQty;
+
+    @ApiModelProperty(value = "可出库数量")
+    private BigDecimal canOutingQty;
+
+    @ApiModelProperty(value = "出库价")
+    private BigDecimal priceOut;
+
+    @ApiModelProperty(value = "库存ID")
+    private String invId;
+
+    @ApiModelProperty(value = "仓库ID")
+    private String whId;
+
+    @ApiModelProperty(value = "库存数量")
+    private BigDecimal invQty;
+
+    @ApiModelProperty(value = "可用量")
+    private BigDecimal usableQty;
+
+    @ApiModelProperty(value = "仓库名称")
+    private String whName;
     /*
      * 相关属性
      * @TableField(exist = false)

+ 0 - 19
src/main/java/com/dk/mdm/model/vo/ivt/InboundItemVO.java

@@ -1,9 +1,7 @@
 package com.dk.mdm.model.vo.ivt;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
@@ -42,7 +40,6 @@ public class InboundItemVO extends PageInfo<InboundItemVO> implements Serializab
     /**
      * 明细ID
      */
-    @TableId(value = "item_id", type = IdType.AUTO)
     @ApiModelProperty(value = "明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String itemId;
@@ -101,14 +98,6 @@ public class InboundItemVO extends PageInfo<InboundItemVO> implements Serializab
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 入库价
      */
     @Excel(name = "入库价")
@@ -117,14 +106,6 @@ public class InboundItemVO extends PageInfo<InboundItemVO> implements Serializab
 
 
     /**
-     * 入库金额 (商品数量*入库价)
-     */
-    @Excel(name = "入库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "入库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 3 - 2
src/main/java/com/dk/mdm/model/vo/ivt/InboundVO.java

@@ -22,6 +22,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -180,9 +181,9 @@ public class InboundVO extends PageInfo<InboundVO> implements Serializable {
      */
     @Excel(name = "入库日期")
     @ApiModelProperty(value = "入库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime intoDate;
+    private LocalDate intoDate;
 
 
     /**

+ 0 - 16
src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java

@@ -99,14 +99,6 @@ public class OutboundItemVO extends PageInfo<OutboundItemVO> implements Serializ
 
 
     /**
-     * 商品数量
-     */
-    @Excel(name = "商品数量")
-    @ApiModelProperty(value = "商品数量")
-    private BigDecimal itemQty;
-
-
-    /**
      * 出库价
      */
     @Excel(name = "出库价")
@@ -115,14 +107,6 @@ public class OutboundItemVO extends PageInfo<OutboundItemVO> implements Serializ
 
 
     /**
-     * 出库金额 (商品数量*入库价)
-     */
-    @Excel(name = "出库金额 (商品数量*入库价)")
-    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
-    private BigDecimal itemAmt;
-
-
-    /**
      * 非标号
      */
     @Excel(name = "非标号")

+ 9 - 2
src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java

@@ -20,7 +20,9 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  出库单
@@ -178,9 +180,9 @@ public class OutboundVO extends PageInfo<OutboundVO> implements Serializable {
      */
     @Excel(name = "出库日期")
     @ApiModelProperty(value = "出库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime outDate;
+    private LocalDate outDate;
 
 
     /**
@@ -316,6 +318,11 @@ public class OutboundVO extends PageInfo<OutboundVO> implements Serializable {
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     private String opDbUser;
 
+    @ApiModelProperty(value = "明细")
+    private List<OutboundItemVO> itemList;
+
+    @ApiModelProperty(value = "删除明细")
+    private List<OutboundItemVO> deleteItemList;
 
     /*
      * 相关属性

+ 1 - 0
src/main/java/com/dk/mdm/model/vo/mst/GoodsSkuVO.java

@@ -1,6 +1,7 @@
 package com.dk.mdm.model.vo.mst;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;

+ 2 - 2
src/main/java/com/dk/mdm/model/vo/sale/OrderVO.java

@@ -407,8 +407,8 @@ public class OrderVO extends PageInfo<OrderVO> implements Serializable {
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     private String opDbUser;
 
-    @ApiModelProperty(value = "订单明细")
-    private List<OrderItemVO> orderItemList;
+    @ApiModelProperty(value = "明细")
+    private List<OrderItemVO> itemList;
 
     @ApiModelProperty(value = "删除明细")
     private List<OrderItemVO> deleteItemList;

+ 22 - 0
src/main/java/com/dk/mdm/service/common/CommonService.java

@@ -1582,4 +1582,26 @@ public class CommonService extends BaseService<Map<String, Object>> {
         return super.mergeListWithCount(param, commonMapper.getInventory(param),
                 commonMapper.getInventoryCountByPage(param));
     }
+
+    /**
+     * @desc   : 供应商类别
+     * @author : 宋扬
+     * @date   : 2024/3/6 10:41
+     */
+    public ResponseResultVO<List<Map<String, Object>>> getSupType(Map<String, Object> param) {
+        // 获取系统基础数据
+        List<Map<String, Object>> list = commonMapper.getSupType(param);
+        return ResponseResultUtil.success(list);
+    }
+
+    /**
+     * @desc   : 供应商服务类别
+     * @author : 宋扬
+     * @date   : 2024/3/6 10:43
+     */
+    public ResponseResultVO<List<Map<String, Object>>> getServiceCategories(Map<String, Object> param) {
+        // 获取系统基础数据
+        List<Map<String, Object>> list = commonMapper.getServiceCategories(param);
+        return ResponseResultUtil.success(list);
+    }
 }

+ 21 - 0
src/main/java/com/dk/mdm/service/ivt/InboundService.java

@@ -1,13 +1,20 @@
 package com.dk.mdm.service.ivt;
 
+import com.dk.common.infrastructure.annotaiton.Pagination;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.ivt.Inbound;
 import com.dk.mdm.mapper.ivt.InboundMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.ivt.InboundQuery;
+import com.dk.mdm.model.response.ivt.InboundResponse;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+
+
 @Service
 @Transactional
 public class InboundService extends BaseService<Inbound> {
@@ -20,4 +27,18 @@ public class InboundService extends BaseService<Inbound> {
 	@Autowired
 	private InboundMapper inboundMapper;
 
+
+
+
+	/**
+	 * @desc : 查看来源单据,总单加明细  采购退货用
+	 * @author : 于继渤
+	 * @date : 2024/3/6 10:36
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<InboundResponse>> selectInboundAndItem(InboundQuery inboundQuery) {
+		return super.mergeListWithCount(inboundQuery, inboundMapper.selectInboundAndItem(inboundQuery),
+				inboundMapper.selectInboundAndItemCountByCond(inboundQuery));
+	}
+
 }

+ 5 - 0
src/main/java/com/dk/mdm/service/ivt/OutboundItemService.java

@@ -13,6 +13,11 @@ import org.springframework.transaction.annotation.Transactional;
 public class OutboundItemService extends BaseService<OutboundItem> {
 
 	@Override
+	public String getPrimaryKey() {
+		return "item_id";
+	}
+
+	@Override
 	public BaseMapper<OutboundItem> getRepository() {
 		return outboundItemMapper;
 	}

+ 137 - 0
src/main/java/com/dk/mdm/service/ivt/OutboundService.java

@@ -1,18 +1,49 @@
 package com.dk.mdm.service.ivt;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dk.common.exception.BaseBusinessException;
+import com.dk.common.infrastructure.constant.Constant;
+import com.dk.common.infrastructure.enums.ErrorCodeEnum;
+import com.dk.common.response.ResponseCodeEnum;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.infrastructure.convert.ivt.OutboundConvert;
+import com.dk.mdm.infrastructure.convert.ivt.OutboundItemConvert;
+import com.dk.mdm.mapper.ivt.OutboundItemMapper;
+import com.dk.mdm.mapper.sale.OrderItemMapper;
 import com.dk.mdm.model.pojo.ivt.Outbound;
 import com.dk.mdm.mapper.ivt.OutboundMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.ivt.OutboundItem;
+import com.dk.mdm.model.pojo.sale.OrderItem;
+import com.dk.mdm.model.query.ivt.OutboundItemQuery;
+import com.dk.mdm.model.response.ivt.OutboundItemResponse;
+import com.dk.mdm.model.response.ivt.OutboundResponse;
+import com.dk.mdm.model.vo.ivt.OutboundItemVO;
+import com.dk.mdm.model.vo.ivt.OutboundVO;
+import com.dk.mdm.service.common.CommonService;
+import com.dk.mdm.service.sale.OrderItemService;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
 @Service
 @Transactional
 public class OutboundService extends BaseService<Outbound> {
 
 	@Override
+	public String getPrimaryKey() {
+		return "out_id";
+	}
+
+	@Override
 	public BaseMapper<Outbound> getRepository() {
 		return outboundMapper;
 	}
@@ -20,4 +51,110 @@ public class OutboundService extends BaseService<Outbound> {
 	@Autowired
 	private OutboundMapper outboundMapper;
 
+	@Autowired
+	private OutboundItemService outboundItemService;
+
+	@Autowired
+	private OutboundItemMapper outboundItemMapper;
+
+	@Autowired
+	private OrderItemService orderItemService;
+
+	@Autowired
+	private OrderItemMapper orderItemMapper;
+
+	@Autowired
+	private CommonService commonService;
+
+	@Autowired
+	private OutboundConvert outboundConvert;
+
+	@Autowired
+	private OutboundItemConvert outboundItemConvert;
+
+	/**
+	 * @desc : 新建方法
+	 * @author : 付斌
+	 * @date : 2023/1/9 10:49
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> insert(OutboundVO outboundVO) {
+
+		// 获取单号
+		Map<String , Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OUTBOUND.getName(),false);
+		outboundVO.setOutId(codeMap.get("outId").toString()).setOutNo(codeMap.get("outNote").toString())
+				.setOutType(Constant.OutType.SALE.getName());
+		// 转化实体
+		Outbound outbound = outboundConvert.convertToPo(outboundVO);
+		// 总单保存
+		super.insert(outbound);
+
+		// 明细保存
+		if (outboundVO.getItemList() != null && outboundVO.getItemList().size() > 0) {
+			for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
+				OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
+				outboundItem.setOutId(outbound.getOutId()).setCpId(outbound.getCpId()).setOutStatus(Constant.OutStatus.CHUKUZHONG.getName())
+					.setOutType(Constant.OutType.SALE.getName());
+				outboundItemMapper.insert(outboundItem);
+
+				// 反写订单出库中数量
+				OrderItem orderItem = orderItemMapper.selectById(outboundItem.getFromItemId());
+				// 如果商品数量小于订单+本次出库单上的出库中数量
+				if(orderItem.getItemQty().compareTo(orderItem.getOutingQty().add(outboundItem.getOutingQty())) == -1){
+					throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
+				}else{
+					OrderItem orderItemUpdate = new OrderItem();
+					orderItemUpdate.setOutingQty(orderItem.getOutingQty().add(outboundItem.getOutingQty())).setItemId(orderItem.getItemId());
+					orderItemService.updateByUuid(orderItemUpdate);
+				}
+			}
+		}
+		return ResponseResultUtil.success();
+	}
+
+	/**
+	 * @desc   : 获取订单信息(编辑用)
+	 * @author : 付斌
+	 * @date   : 2024-03-02 17:27
+	 */
+	public ResponseResultVO<?> getOutboundForUpdate(String id) {
+		Map<String, Object> outboundInfo = new HashMap<>();
+		OutboundResponse outboundResponse = outboundMapper.selectById(id);
+		outboundInfo.put("outbound", outboundResponse);
+
+		// 商品明细
+		List<OutboundItemResponse> outboundItemResponse = outboundItemMapper.selectByCond(new OutboundItemQuery().setOutId(id));
+		outboundInfo.put("outboundItem", outboundItemResponse);
+		return ResponseResultUtil.success(outboundInfo);
+	}
+
+	/**
+	 * @desc : 编辑方法
+	 * @author : 付斌
+	 * @date : 2023/1/9 10:49
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<Boolean> update(OutboundVO outboundVO) {
+		// 转化实体
+		Outbound outbound = outboundConvert.convertToPo(outboundVO);
+
+		// 编辑的
+		List<OutboundItemVO> editOutboundItemVOList = outboundVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
+		for (OutboundItemVO outboundItemVO : editOutboundItemVOList) {
+			// 出库中数量不能小于出库数量
+			if(outboundItemVO.getOutingQty().compareTo(outboundItemVO.getOutQty()) == -1){
+				throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
+			} else {
+				OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
+				outboundItemService.updateByUuid(outboundItem);
+			}
+		}
+
+		return ResponseResultUtil.success(super.update(outbound, new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId,
+				UUID.fromString(outbound.getOutId()))));
+	}
 }

+ 15 - 4
src/main/java/com/dk/mdm/service/mst/MoneyAccountService.java

@@ -42,7 +42,7 @@ public class MoneyAccountService extends BaseService<MoneyAccount> {
 
 	/**
 	 * @desc   : 重写主键
-	 * @author : songy
+	 * @author : 宋扬
 	 * @date   : 2023/1/9 10:39
 	 */
 	@Override
@@ -53,7 +53,7 @@ public class MoneyAccountService extends BaseService<MoneyAccount> {
 
 	/**
 	 * @desc   : 条件查询
-	 * @author : songy
+	 * @author : 宋扬
 	 * @date   : 2023/2/29 10:40
 	 */
 	@Pagination
@@ -62,10 +62,21 @@ public class MoneyAccountService extends BaseService<MoneyAccount> {
 				moneyAccountMapper.countByCond(moneyAccountQuery));
 	}
 
+	/**
+	 * @desc   : 维修小程序列表
+	 * @author : 王英杰
+	 * @date   : 2023/2/29 10:40
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<MoneyAccountResponse>> wxSelectByCond(MoneyAccountQuery moneyAccountQuery) {
+		return super.mergeListWithCount(moneyAccountQuery, moneyAccountMapper.wxSelectByCond(moneyAccountQuery),
+				moneyAccountMapper.wxCountByCond(moneyAccountQuery));
+	}
+
 
 	/**
 	 * @desc : 保存方法
-	 * @author : songy
+	 * @author : 宋扬
 	 * @date : 2023/2/29 10:49
 	 */
 	@Transactional(
@@ -86,7 +97,7 @@ public class MoneyAccountService extends BaseService<MoneyAccount> {
 
 	/**
 	 * @desc : 编辑方法
-	 * @author : songy
+	 * @author : 宋扬
 	 * @date : 2023/2/29 10:49
 	 */
 	@Transactional(

+ 13 - 0
src/main/java/com/dk/mdm/service/mst/StaffRightService.java

@@ -61,4 +61,17 @@ public class StaffRightService extends BaseService<StaffRight> {
         return  ResponseResultUtil.success(staffRightMapper.deleteById(new StaffRight().setStaffId(id)) > 0) ;
     }
 
+    /**
+     * @desc   : WEB获取员工权限
+     * @author : 常皓宁
+     * @date   : 2024/3/6 13:16
+     */
+    public ResponseResultVO<Map<String, Object>> getStaffRightWeb(Map<String, Object> param) {
+        // 获取系统基础数据
+        List<Map<String, Object>> list = staffRightMapper.getStaffRightWeb(param);
+        Map<String, Object> objectObjectHashMap = new HashMap<>();
+        objectObjectHashMap.put("list", list);
+        return ResponseResultUtil.success(objectObjectHashMap);
+    }
+
 }

+ 5 - 0
src/main/java/com/dk/mdm/service/sale/OrderItemService.java

@@ -13,6 +13,11 @@ import org.springframework.transaction.annotation.Transactional;
 public class OrderItemService extends BaseService<OrderItem> {
 
 	@Override
+	public String getPrimaryKey() {
+		return "item_id";
+	}
+
+	@Override
 	public BaseMapper<OrderItem> getRepository() {
 		return orderItemMapper;
 	}

+ 24 - 13
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -38,18 +38,13 @@ import java.util.stream.Collectors;
 public class OrderService extends BaseService<Order> {
 
     @Override
-    public BaseMapper<Order> getRepository() {
-        return orderMapper;
+    public String getPrimaryKey() {
+        return "order_id";
     }
 
-    /**
-     * @desc : 重写主键
-     * @author : 付斌
-     * @date : 2023/1/9 10:39
-     */
     @Override
-    public String getPrimaryKey() {
-        return "order_id";
+    public BaseMapper<Order> getRepository() {
+        return orderMapper;
     }
 
     @Autowired
@@ -149,8 +144,8 @@ public class OrderService extends BaseService<Order> {
 //                UUID.fromString(updateOrder.getOrderId())));
 
         // 订单明细保存
-        if (orderVO.getOrderItemList() != null && orderVO.getOrderItemList().size() > 0) {
-            for (OrderItemVO orderItemVO : orderVO.getOrderItemList()) {
+        if (orderVO.getItemList() != null && orderVO.getItemList().size() > 0) {
+            for (OrderItemVO orderItemVO : orderVO.getItemList()) {
                 OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
                 orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
                 orderItemMapper.insert(orderItem);
@@ -200,14 +195,14 @@ public class OrderService extends BaseService<Order> {
         }
         // 编辑的(包括新增的)
         // 新增的
-        List<OrderItemVO> insertOrderItemVOList = orderVO.getOrderItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
+        List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
         for (OrderItemVO orderItemVO : insertOrderItemVOList) {
             OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
             orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
             orderItemMapper.insert(orderItem);
         }
         // 编辑的
-        List<OrderItemVO> editOrderItemVOList = orderVO.getOrderItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
+        List<OrderItemVO> editOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
         for (OrderItemVO orderItemVO : editOrderItemVOList) {
             // 商品数量不能小于出库中数量
             if(orderItemVO.getItemQty().compareTo(orderItemVO.getOutingQty()) == -1){
@@ -221,4 +216,20 @@ public class OrderService extends BaseService<Order> {
         return ResponseResultUtil.success(super.update(order, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
                 UUID.fromString(order.getOrderId()))));
     }
+
+    /**
+     * @desc   : 获取订单信息(编辑用)
+     * @author : 付斌
+     * @date   : 2024-03-02 17:27
+     */
+    public ResponseResultVO<?> getOrderForOut(String id) {
+        Map<String, Object> orderInfo = new HashMap<>();
+        OrderResponse orderResponse = orderMapper.selectById(id);
+        orderInfo.put("order", orderResponse);
+
+        // 商品明细
+        List<OrderItemResponse> orderItem = orderItemMapper.selectByCondForOut(new OrderItemQuery().setOrderId(id));
+        orderInfo.put("orderItem", orderItem);
+        return ResponseResultUtil.success(orderInfo);
+    }
 }

+ 5 - 0
src/main/java/com/dk/mdm/service/sale/OutReturnItemService.java

@@ -13,6 +13,11 @@ import org.springframework.transaction.annotation.Transactional;
 public class OutReturnItemService extends BaseService<OutReturnItem> {
 
 	@Override
+	public String getPrimaryKey() {
+		return "item_id";
+	}
+
+	@Override
 	public BaseMapper<OutReturnItem> getRepository() {
 		return outReturnItemMapper;
 	}

+ 5 - 0
src/main/java/com/dk/mdm/service/sale/OutReturnService.java

@@ -13,6 +13,11 @@ import org.springframework.transaction.annotation.Transactional;
 public class OutReturnService extends BaseService<OutReturn> {
 
 	@Override
+	public String getPrimaryKey() {
+		return "return_id";
+	}
+
+	@Override
 	public BaseMapper<OutReturn> getRepository() {
 		return outReturnMapper;
 	}

+ 138 - 0
src/main/java/com/dk/mdm/service/wxapi/basic/WechatPayService.java

@@ -0,0 +1,138 @@
+package com.dk.mdm.service.wxapi.basic;
+
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.common.util.*;
+import com.dk.mdm.infrastructure.config.WechatPayConfigInfo;
+import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
+import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
+import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
+import com.github.binarywang.wxpay.config.WxPayConfig;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+import java.math.BigDecimal;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 微信支付服务
+ *
+ * @author 姜永辉
+ * @since 20223-07-01 09:41:05
+ */
+@Service("wechatPayService")
+@Slf4j
+public class WechatPayService {
+    @Autowired
+    private WechatPayConfigInfo wechatPayConfigInfo;
+
+    /**
+     * 商户 下单选取旗舰版或专业版的订单
+     *
+     * @param paymentSn
+     * @return
+     * @throws WxPayException
+     */
+    public ResponseResultVO createOrderMiniPlat(String paymentSn, String openId) throws WxPayException {
+        try {
+            // 获取单据的金额
+            BigDecimal payFee = BigDecimal.ONE;
+
+
+            WxPayService wxPayService = this.getWxPayService();
+            WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
+            orderRequest.setBody("");
+            orderRequest.setOutTradeNo(paymentSn);
+            orderRequest.setTotalFee(BaseWxPayRequest.yuanToFen(payFee.toString()));//元转成分
+            orderRequest.setOpenid(openId);
+            orderRequest.setSpbillCreateIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+            orderRequest.setNotifyUrl(wechatPayConfigInfo.getWechatNotifyUrl() + "/" + wechatPayConfigInfo.getAppId());
+            orderRequest.setTradeType("JSAPI");
+            WxPayUnifiedOrderResult wxPayUnifiedOrderResult = wxPayService.unifiedOrder(orderRequest);
+            String prepay_id = wxPayUnifiedOrderResult.getPrepayId();
+            String timeStamp = new Date().getTime() + "";
+            String nonceStr = UUID.fastUUID().toString(true);
+            String pack = "prepay_id=" + prepay_id;
+            String signType = "MD5";
+            String paySign = "";
+            String sigmTemp = "appId=" + wxPayUnifiedOrderResult.getAppid() + "&nonceStr=" + nonceStr + "&package="
+                    + pack + "&signType=" + signType + "&timeStamp=" + timeStamp;
+            sigmTemp = sigmTemp + "&key=" + wechatPayConfigInfo.getMchKey();
+            paySign = Md5Utils.hash(sigmTemp);
+            Map<String, Object> params = new HashMap<String, Object>();
+            params.put("appId", wxPayUnifiedOrderResult.getAppid());
+            params.put("timeStamp", timeStamp);
+            params.put("nonceStr", nonceStr);
+            params.put("pack", pack);
+            params.put("signType", signType);
+            params.put("paySign", paySign);
+            return ResponseResultUtil.success(params);
+        } catch (Exception e) {
+            log.error("微信支付失败!支付单号:{},原因:{}", paymentSn, e.getMessage());
+            return ResponseResultUtil.error("支付失败,请稍后重试!");
+        }
+    }
+
+
+    /**
+     * @desc : 处理支付成功逻辑
+     * @author : 姜永辉
+     * @date : 2024/03/06 11:29
+     */
+    public ResponseResultVO notifyWechatPay(WxPayOrderNotifyResult info) {
+        //  判断支付金额是否一致
+//        ShopOrderPaymentDto sop = new ShopOrderPaymentDto();
+//        sop.setPaymentsn(info.getOutTradeNo());
+//        sop.setPaystatus(0L);
+//        ShopOrderPayment shopOrderPaymentReturn = shopOrderPaymentMapper.selectEntity(sop);
+//        log.info("从订单流水表没有查到数据----------" + info.getOutTradeNo());
+//        if (shopOrderPaymentReturn == null) {
+//            log.error("从订单流水表没有查到数据----------" + info.getOutTradeNo());
+//            return ResponseResultUtil.error("从订单流水表没有查到数据----------" + info.getOutTradeNo());
+//        }
+//        // //  230918  在生成 微信码时候插入 待支付的 数据
+//        BigDecimal payFee = new BigDecimal(info.getTotalFee()).divide(new BigDecimal(100), 2, RoundingMode.HALF_EVEN);
+//        log.info("微信扫码和插入待支付订单的钱不符-------" + shopOrderPaymentReturn.getAmount()
+//                + "--" + payFee);
+//        if (shopOrderPaymentReturn.getAmount().compareTo(payFee) != 0) {
+//            log.error("微信扫码和插入待支付订单的钱不符-------" + shopOrderPaymentReturn.getAmount()
+//                    + "--" + payFee);
+//            return CommonResult.fail("微信扫码和插入待支付订单的钱不符-------" + shopOrderPaymentReturn.getAmount()
+//                    + "--" + payFee);
+//
+//        }
+        //判断是否已经做支付处理
+//        log.info("判断是否已经做支付处理----------" + shopOrderPaymentReturn.getPaystatus().toString());
+
+        return ResponseResultUtil.success();
+    }
+
+    /**
+     * @desc : 获取商户配置信息
+     * @author : 姜永辉
+     * @date : 2023-08-02 17:30
+     */
+    public WxPayService getWxPayService() {
+        WxPayConfig payConfig = new WxPayConfig();
+        payConfig.setAppId(StringUtils.trimToNull(wechatPayConfigInfo.getAppId()));
+        payConfig.setMchId(StringUtils.trimToNull(wechatPayConfigInfo.getMchId()));
+        payConfig.setMchKey(StringUtils.trimToNull(wechatPayConfigInfo.getMchKey()));
+//        payConfig.setSubAppId(null);
+//        payConfig.setSubMchId(null);
+        payConfig.setKeyPath(StringUtils.trimToNull(wechatPayConfigInfo.getKeyPath()));
+        // 可以指定是否使用沙箱环境
+        payConfig.setUseSandboxEnv(false);
+        WxPayService wxPayService = new WxPayServiceImpl();
+        wxPayService.setConfig(payConfig);
+        return wxPayService;
+    }
+}

+ 14 - 0
src/main/resources/dev/bootstrap.yml

@@ -110,6 +110,20 @@ wx:
   edit_corp_tag: https://qyapi.weixin.qq.com/cgi-bin/externalcontact/edit_corp_tag?access_token=
   #  删除企业客户标签
   del_corp_tag: https://qyapi.weixin.qq.com/cgi-bin/externalcontact/del_corp_tag?access_token=
+  # 支付的信息
+  pay:
+    mchId: XXXXXXXXXXx
+    # 小程序的appid
+    appId: wxe27c8f5249b7aeab
+    # 小程序的appSecret
+    appSecret: 9bd0efa102f148ff4ca09a1152310555
+    # 支付密钥
+    mchKey: 9bd0efa102f148ff4ca09a1152310555
+    # 证书路径
+    keyPath: /mnt/cert/2021/05/11/404727f0-e5be-424e-b009-59f1ec8d102e.p12
+    # 小程序支付的回调接口地址
+    wechatNotifyUrl: https://ibossmp.dongkesoft.com:7040/mdm-server/wxapi/basic/wechat/pay/notify/order
+
 
 dongke:
   base: