Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

dongke 2 лет назад
Родитель
Сommit
9e67b91f23
23 измененных файлов с 579 добавлено и 307 удалено
  1. 20 0
      src/main/java/com/dk/mdm/controller/common/CommonController.java
  2. 30 2
      src/main/java/com/dk/mdm/controller/mst/ComMenuController.java
  3. 3 3
      src/main/java/com/dk/mdm/generator/Generator.java
  4. 14 0
      src/main/java/com/dk/mdm/mapper/common/CommonMapper.java
  5. 93 0
      src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml
  6. 36 21
      src/main/java/com/dk/mdm/mapper/mac/AccountItemMapper.xml
  7. 3 0
      src/main/java/com/dk/mdm/mapper/mac/AccountMapper.xml
  8. 1 1
      src/main/java/com/dk/mdm/mapper/mac/RecPayMapper.xml
  9. 26 1
      src/main/java/com/dk/mdm/mapper/mst/ComMenuMapper.java
  10. 37 3
      src/main/java/com/dk/mdm/mapper/mst/ComMenuMapper.xml
  11. 1 1
      src/main/java/com/dk/mdm/mapper/mst/MoneyAccountItemMapper.xml
  12. 0 75
      src/main/java/com/dk/mdm/model/pojo/mac/RecPay.java
  13. 1 1
      src/main/java/com/dk/mdm/model/pojo/mac/RecPayItem.java
  14. 2 9
      src/main/java/com/dk/mdm/model/query/mac/AccountItemQuery.java
  15. 22 11
      src/main/java/com/dk/mdm/model/query/mac/RecPayQuery.java
  16. 7 0
      src/main/java/com/dk/mdm/model/response/mac/AccountItemResponse.java
  17. 0 7
      src/main/java/com/dk/mdm/model/response/mac/RecPayResponse.java
  18. 1 0
      src/main/java/com/dk/mdm/model/vo/mst/ComMenuVO.java
  19. 27 0
      src/main/java/com/dk/mdm/service/common/CommonService.java
  20. 201 162
      src/main/java/com/dk/mdm/service/ivt/InboundReturnService.java
  21. 0 6
      src/main/java/com/dk/mdm/service/mac/AccountService.java
  22. 12 4
      src/main/java/com/dk/mdm/service/mac/RecPayService.java
  23. 42 0
      src/main/java/com/dk/mdm/service/mst/ComMenuService.java

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

@@ -676,6 +676,26 @@ public class CommonController extends BaseController<Map<String, Object>> {
     public ResponseResultVO<List<Map<String, Object>>> selectMultiMoneyAccount(@RequestBody Map<String, Object> param) {
         return commonService.selectMultiMoneyAccount(param);
     }
+
+    /**
+     * @desc   : 获取商品(采购订单开单用)
+     * @author : 常皓宁
+     * @date   : 2024/3/9 10:08
+     */
+    @PostMapping("get_goods_for_purchase_return")
+    public ResponseResultVO<List<Map<String, Object>>> getGoodsForPurchaseReturn(@RequestBody Map<String, Object> param) {
+        return commonService.getGoodsForPurchaseReturn(param);
+    }
+
+    /**
+     * @desc   : 获取商品(采购订单开单用)(分页)
+     * @author : 常皓宁
+     * @date   : 2024/3/9 10:08
+     */
+    @PostMapping({"get_goods_for_purchase_return_by_page"})
+    public ResponseResultVO<PageList<Map<String, Object>>> getGoodsForPurchaseReturnByPage(@RequestBody Map<String, Object> param) {
+        return commonService.getGoodsForPurchaseReturnByPage(param);
+    }
 }
 
 

+ 30 - 2
src/main/java/com/dk/mdm/controller/mst/ComMenuController.java

@@ -1,17 +1,24 @@
 package com.dk.mdm.controller.mst;
 
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.mst.ComMenu;
-import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
+import com.dk.mdm.model.query.mst.ComMenuQuery;
+import com.dk.mdm.model.vo.mst.MenuFrequencyVO;
+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.mst.ComMenuService;
 
+import java.util.List;
+
 @Api(tags = "常用功能API接口")
 @RestController
-@RequestMapping("/comMenu")
+@RequestMapping("/mst/comMenu")
 public class ComMenuController{
 
     public BaseService<ComMenu> getService() {
@@ -21,4 +28,25 @@ public class ComMenuController{
     @Autowired
     private ComMenuService comMenuService;
 
+    /**
+     * @desc : 条件查询
+     * @author : 周兴
+     * @date : 2024/3/29 10:36
+     */
+    @ApiOperation(value = "条件查询", notes = "条件查询")
+    @PostMapping({"list_by"})
+    public ResponseResultVO<?> selectByCond(@RequestBody ComMenuQuery comMenuQuery) {
+        return comMenuService.selectByCond(comMenuQuery);
+    }
+
+    /**
+     * @desc   : 保存常用功能
+     * @author : 周兴
+     * @date   : 2024/3/28 9:13
+     */
+    @ApiOperation( value = "保存常用功能", notes = "保存常用功能" )
+    @PostMapping({"save"})
+    public ResponseResultVO<?> save(@RequestBody List<ComMenu> comMenuList) {
+        return comMenuService.save(comMenuList);
+    }
 }

+ 3 - 3
src/main/java/com/dk/mdm/generator/Generator.java

@@ -53,7 +53,7 @@ public class Generator {
         GlobalConfig gc = new GlobalConfig();
         String projectPath = System.getProperty("user.dir");    //获取当前目录
         gc.setOutputDir(projectPath+"/src/main/java");          //输出到哪个目录
-        gc.setAuthor("宋扬");                                    //作者
+        gc.setAuthor("周兴");                                    //作者
         gc.setOpen(false);                                      //是否打开目录
         gc.setFileOverride(false);                              //是否覆盖
         gc.setServiceName("%sService");                         //去Service的I前缀
@@ -95,8 +95,8 @@ public class Generator {
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
         strategy.setTablePrefix("t_mst");                                             //表名前缀
-        strategy.setInclude("t_mst_org_mac");                                        //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
-        strategy.setInclude("t_mst_org_wh");                                        //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
+        strategy.setInclude("t_mst_menu_frequency");                                    //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
+        strategy.setInclude("t_mst_com_menu");
         strategy.setNaming(NamingStrategy.underline_to_camel);                      //转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);                //字段下划线转驼峰
         strategy.setEntityLombokModel(true);                                        //是否使用lombok开启注解

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

@@ -465,4 +465,18 @@ public interface CommonMapper extends BaseMapper<Map<String, Object>> {
      * @date   : 2024/3/22 15:22
      */
     List<Map<String, Object>> selectMultiMoneyAccount(Map param);
+
+    /**
+     * @desc   : 获取商品(采购订单开单用)
+     * @author : 常皓宁
+     * @date   : 2024/3/9 10:08
+     */
+    List<Map<String, Object>> getGoodsForPurchaseReturn(Map param);
+
+    /**
+     * @desc   : 获取商品(采购订单开单用)(分页)
+     * @author : 常皓宁
+     * @date   : 2024/3/9 10:08
+     */
+    Long getGoodsForPurchaseReturnByPage(Map param);
 }

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

@@ -1420,4 +1420,97 @@
             limit #{end} offset #{start}
         </if>
     </select>
+
+    <!-- 查询库存 -->
+    <select id="getGoodsForPurchaseReturn" resultType="java.util.Map">
+        select tpi.inv_id             as "invId",
+        tpi.sku_id             as "skuId",
+        tmgs.sku_code          as "skuCode",
+        tmgs.sku_name          as "skuName",
+        tmgs.sku_model         as "skuModel",
+        tmgs.brand_id          as "brandId",
+        tmgb.brand_name        as "brandName",
+        tmgs.category_id       as "categoryId",
+        tmgc.cat_name          as "categoryName",
+        tmgs.unit_id           as "unitId",
+        tmgu.unit_name         as "unitName",
+        tmgs.sub_unit_id       as "subUnitId",
+        tmgs.conversion_factor as "conversionFactor",
+        tmgs.series_id         as "seriesId",
+        tmgseries.series_name  as "seriesName",
+        tmgs.sku_spec          as "skuSpec",
+        tmgs.price_purchase    as "pricePurchase",
+        tmgs.price_standard    as "priceStandard",
+        tmgs.price_wholesale   as "priceWholesale",
+        tmgs.price_limited     as "priceLimited",
+        tmgs.sku_images        as "skuImages",
+        tpi.non_std_code       as "nonStdCode",
+        tpi.inv_qty            as "invQty",
+        tpi.outing_qty         as "outingQty",
+        tpi.usable_qty         as "usableQty",
+        tpi.wh_id              as "whId",
+        tmw.wh_code            as "whCode",
+        tmw.wh_name            as "whName",
+        tpi.cost_price         as "costPrice",
+        tpi.cost_amt           as "costAmt",
+        tpi.remarks
+        from dkic_b.t_psi_inventory as tpi
+        inner join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id
+        inner join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = tpi.sku_id
+        left join dkic_b.t_mst_goods_brand as tmgb on tmgs.brand_id = tmgb.brand_id
+        left join dkic_b.t_mst_goods_category as tmgc on tmgs.category_id = tmgc.cat_id
+        left join dkic_b.t_mst_goods_series as tmgseries on tmgs.series_id = tmgseries.series_id
+        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 LIKE concat('%',my_ex.likequery(#{skuCode}),'%')
+        </if>
+        <if test="skuName != null">
+            AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
+        </if>
+        <if test="whName != null">
+            AND tmgs.wh_name LIKE concat('%',my_ex.likequery(#{whName}),'%')
+        </if>
+        <if test="whId != null">
+            AND tpi.wh_id = #{whId} ::uuid
+        </if>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询库存个数 -->
+    <select id="getGoodsForPurchaseReturnByPage" resultType="Long">
+        SELECT
+        count(1)
+        from dkic_b.t_psi_inventory as tpi
+        inner join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id
+        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 LIKE concat('%',my_ex.likequery(#{skuCode}),'%')
+        </if>
+        <if test="skuName != null">
+            AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
+        </if>
+        <if test="whName != null">
+            AND tmgs.wh_name LIKE concat('%',my_ex.likequery(#{whName}),'%')
+        </if>
+    </select>
+
+
 </mapper>

+ 36 - 21
src/main/java/com/dk/mdm/mapper/mac/AccountItemMapper.xml

@@ -126,6 +126,10 @@
             <if test="cpId != null">
                 AND t.cp_id = #{cpId}
             </if>
+            <!-- 如果是退货,只差剩余应收小于0的 -->
+            <if test="formType == 'refund'">
+                AND t.amt_residue <![CDATA[ < ]]> 0
+            </if>
     </sql>
 
     <sql id="idsForeach">
@@ -158,44 +162,49 @@
     <!-- 查询应收账款明细 -->
     <select id="getReceivableAccountItem" resultMap="BaseResultMapResponse">
         SELECT t.item_id,
-               t.item_id                                         as "accItemId",
+               t.item_id               as "accItemId",
                t.acc_item_type,
                t.object_id,
-               tmc.cus_code                                      as "cusCode",
-               tmc.cus_name                                      as "cusName",
-               tmc.cus_phone                                     as "cusPhone",
-               tmc.address_full                                  as "addressFull",
+               tmc.cus_code            as "cusCode",
+               tmc.cus_name            as "cusName",
+               tmc.cus_phone           as "cusPhone",
+               tmc.address_full        as "addressFull",
                t.org_id,
-               tmo.org_name                                      as "orgName",
+               tmo.org_name            as "orgName",
                t.staff_id,
-               tms.staff_name                                    as "staffName",
+               tms.staff_name          as "staffName",
                t.biznis_type,
                t.biznis_id,
                t.biznis_no,
                t.acc_date,
                t.rec_status,
                sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "recStatusName",
+               sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "biznisTypeName",
                t.amt_rec,
                t.amt_pay,
                t.amt_should,
                t.amt_handle,
                t.amt_waive,
-               0                                                 as amt_residue,
+               t.amt_residue           as "amtNotHandle",
+               t.amt_residue           as "amtReceivableHandle",
+               t.amt_residue,
                t.remarks,
                t.make_staff,
                t.make_time,
                t.flg_valid,
-               t.cp_id,
-               t.amt_residue as "amtReceivableHandle"
+               t.cp_id
         FROM dkic_b.t_mac_account_item as t
+                 left join dkic_b.t_psi_outbound as tpo on tpo.out_id = t.biznis_id and t.biznis_type = 't_psi_outbound'
+                 LEFT JOIN sys.t_data_kind tdk2 ON tdk2.kind_code = tpo.out_type
                  left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.object_id
                  left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
                  left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
                  left join sys.t_data_kind as tdk1 on t.rec_status = tdk1.kind_code
         where t.flg_valid
           and t.acc_item_type = '账款类型-应收'
-          and t.amt_residue > 0
+          and t.amt_residue <![CDATA[ <> ]]> 0
         <include refid="Condition"/>
+        order by t.acc_date
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
         </if>
@@ -204,43 +213,49 @@
     <!-- 查询应付账款明细 -->
     <select id="getPayableAccountItem" resultMap="BaseResultMapResponse">
         SELECT t.item_id,
-               t.item_id          as "accItemId",
+               t.item_id               as "accItemId",
                t.acc_item_type,
                t.object_id,
-               tms.sup_code       as "supCode",
-               tms.sup_name       as "supName",
-               tms.contact_phone  as "contactPhone",
-               tms.return_address as "returnAddress",
+               supplier.sup_code       as "supCode",
+               supplier.sup_name       as "supName",
+               supplier.contact_phone  as "contactPhone",
+               supplier.return_address as "returnAddress",
                t.org_id,
-               tmo.org_name       as "orgName",
+               tmo.org_name            as "orgName",
                t.staff_id,
-               tms.staff_name     as "staffName",
+               tms.staff_name          as "staffName",
                t.biznis_type,
                t.biznis_id,
                t.biznis_no,
                t.acc_date,
                t.rec_status,
                sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "recStatusName",
+               sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "biznisTypeName",
                t.amt_rec,
                t.amt_pay,
                t.amt_should,
                t.amt_handle,
                t.amt_waive,
                t.amt_residue,
+               t.amt_residue           as "amtNotHandle",
+               t.amt_residue           as "amtPayableHandle",
                t.remarks,
                t.make_staff,
                t.make_time,
                t.flg_valid,
                t.cp_id
         FROM dkic_b.t_mac_account_item as t
-                 left join dkic_b.t_mst_supplier tms on tms.sup_id = t.object_id
+                 left join dkic_b.t_psi_inbound as tpi on tpi.into_id = t.biznis_id and t.biznis_type = 't_psi_inbound'
+                 LEFT JOIN sys.t_data_kind tdk2 ON tdk2.kind_code = tpi.into_type
+                 left join dkic_b.t_mst_supplier supplier on supplier.sup_id = t.object_id
                  left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
                  left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
                  left join sys.t_data_kind as tdk1 on t.rec_status = tdk1.kind_code
         where t.flg_valid
           and t.acc_item_type = '账款类型-应付'
-          and t.amt_residue > 0
+          and t.amt_residue <![CDATA[ <> ]]> 0
         <include refid="Condition"/>
+        order by t.acc_date
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
         </if>
@@ -330,7 +345,7 @@
 
     <!-- 查询收款总额 -->
     <select id="getSumAmtRec" resultType="java.util.Map">
-        SELECT sum(tmai.amt_rec) as "sumAmtRec"
+        SELECT COALESCE(sum(tmai.amt_rec), 0) as "sumAmtRec"
         FROM dkic_b.t_mac_account_item as tmai
         where tmai.flg_valid
           and tmai.object_id = #{id}::uuid

+ 3 - 0
src/main/java/com/dk/mdm/mapper/mac/AccountMapper.xml

@@ -62,6 +62,9 @@
     <!-- 通用条件列 -->
     <sql id="Condition">
         <where>
+            <if test="objectId != null and objectId != ''">
+                AND object_id = #{objectId}::uuid
+            </if>
             <if test="objectType != null and objectType != ''">
                 AND object_type = #{objectType}
             </if>

+ 1 - 1
src/main/java/com/dk/mdm/mapper/mac/RecPayMapper.xml

@@ -5,7 +5,7 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        rp_id, rp_no, rp_type, object_id, org_id, staff_id, sum_amt_rec, sum_amt_pay, sum_amt_receivable_handle, sum_amt_payable_handle, sum_waive_amt, acc_date, remarks, biznis_type, biznis_id, biznis_no, flg_lock, make_staff, make_time, 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
+        rp_id, rp_no, rp_type, object_id, org_id, staff_id, sum_amt_rec, sum_amt_pay, sum_amt_receivable_handle, sum_amt_payable_handle, sum_waive_amt, acc_date, remarks, biznis_type, biznis_id, biznis_no, flg_lock, make_staff, make_time, flg_valid, cp_id
     </sql>
 
     <!-- 通用查询映射结果 -->

+ 26 - 1
src/main/java/com/dk/mdm/mapper/mst/ComMenuMapper.java

@@ -2,13 +2,38 @@ package com.dk.mdm.mapper.mst;
 
 import com.dk.mdm.model.pojo.mst.ComMenu;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.mst.MenuFrequency;
+import com.dk.mdm.model.query.mst.ComMenuQuery;
+import com.dk.mdm.model.response.mst.ComMenuResponse;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
 *  常用功能 Mapper
 */
 @Repository
 public interface ComMenuMapper extends BaseMapper<ComMenu>{
-	
+    /**
+     * @desc   : 根据条件进行查询
+     * @author : 周兴
+     * @date   : 2024/3/29 10:42
+     */
+    List<ComMenuResponse> selectByCond(ComMenuQuery comMenuQuery);
+
+    /**
+     * @desc   : 保存常用功能
+     * @author : 周兴
+     * @date   : 2024-03-28 10:30
+     */
+    int save(List<ComMenu> comMenuList);
+
+    /**
+     * @desc   : 删除该员工的功能
+     * @author : 周兴
+     * @date   : 2024-03-29 10:30
+     */
+    int deleteMenuByStaff(@Param("staffId") String staffId);
 }
 

+ 37 - 3
src/main/java/com/dk/mdm/mapper/mst/ComMenuMapper.xml

@@ -57,7 +57,7 @@
             tmcm.menu_uuid,
             tam.object_code,
             tam.object_path,
-            tam.object_icon
+            CASE WHEN tam.object_icon IS NULL THEN NULL ELSE tam.object_icon || '.png' END AS object_icon
         FROM
             dkic_b.t_mst_com_menu tmcm
                 INNER JOIN sys.t_app_menu tam ON tmcm.menu_uuid = tam.menu_uuid
@@ -100,15 +100,49 @@
         for update
     </select>
 
+    <!--删除常用功能-->
+    <delete id="deleteMenuByStaff">
+        delete from dkic_b.t_mst_com_menu where staff_id = #{staffId} ::uuid
+    </delete>
+
+    <!--新建编辑常用功能-->
+    <insert id="save">
+        insert into dkic_b.t_mst_com_menu
+        (
+        <trim suffixOverrides=",">
+            menu_uuid,
+            cp_id,
+            staff_id,
+            app_code,
+            display_no,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+        (
+        <trim suffixOverrides=",">
+            #{item.menuUuid} ::uuid,
+            #{item.cpId},
+            #{item.staffId}  ::uuid,
+            #{item.appCode},
+            #{item.displayNo},
+        </trim>
+            )
+        </foreach>
+        on conflict (menu_uuid,staff_id,app_code) do update set
+        cp_id = excluded."cp_id",
+        display_no = excluded."display_no";
+    </insert>
+
     <insert id="insertBatch">
         insert into t_mst_com_menu
         (
         <trim suffixOverrides=",">
             cp_id,
             staff_id,
+            menu_uuid,
             app_code,
             display_no,
-            op_app_code,
         </trim>
         )
         values
@@ -117,9 +151,9 @@
             <trim suffixOverrides=",">
                 #{item.cpId},
                 #{item.staffId}::uuid,
+                #{item.menuUuid} ::uuid,
                 #{item.appCode},
                 #{item.displayNo},
-                #{item.opAppCode},
             </trim>
             )
         </foreach>

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

@@ -182,7 +182,7 @@
 
     <!-- 查询收款总额 -->
     <select id="getSumAmtInflow" resultType="java.util.Map">
-        SELECT sum(tmmai.amt_inflow) as "sumAmtInflow"
+        SELECT COALESCE(sum(tmmai.amt_inflow), 0) as "sumAmtInflow"
         FROM dkic_b.t_mst_money_account_item as tmmai
         where tmmai.flg_valid
           and tmmai.mac_id = #{id}::uuid

+ 0 - 75
src/main/java/com/dk/mdm/model/pojo/mac/RecPay.java

@@ -219,81 +219,6 @@ public class RecPay extends PageInfo<RecPay> implements Serializable {
     private Integer cpId;
 
 
-    /**
-     * 创建时间 (触发器自动处理)
-     */
-    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
-    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime opCreateTime;
-
-
-    /**
-     * 创建用户 (触发器自动处理)
-     */
-    @Excel(name = "创建用户 (触发器自动处理)")
-    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
-    @TableField(typeHandler = UuidTypeHandler.class)
-    private String opCreateUserId;
-
-
-    /**
-     * 修改时间 (触发器自动处理)
-     */
-    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
-    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime opUpdateTime;
-
-
-    /**
-     * 修改用户 (触发器自动处理)
-     */
-    @Excel(name = "修改用户 (触发器自动处理)")
-    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
-    @TableField(typeHandler = UuidTypeHandler.class)
-    private String opUpdateUserId;
-
-
-    /**
-     * 数据操作应用 (触发器自动处理)
-     */
-    @Excel(name = "数据操作应用 (触发器自动处理)")
-    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
-    private String opAppCode;
-
-
-    /**
-     * 数据时间戳 (触发器自动处理)
-     */
-    @Excel(name = "数据时间戳 (触发器自动处理)")
-    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime opTimestamp;
-
-
-    /**
-     * 数据操作数据库用户 (触发器自动处理)
-     */
-    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
-    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
-    private String opDbUser;
-
-
-    /*
-     * 相关属性
-     * @TableField(exist = false)
-     */
-
-    /*
-     * 关联属性 + 查询条件
-     * @TableField(exist = false)
-     */
-
-
     private static final long serialVersionUID = 1L;
 
 }

+ 1 - 1
src/main/java/com/dk/mdm/model/pojo/mac/RecPayItem.java

@@ -42,7 +42,7 @@ public class RecPayItem extends PageInfo<RecPayItem> implements Serializable {
     /**
      * 明细ID
      */
-//    @TableId(value = "item_id", type = IdType.AUTO)
+    @TableId(value = "item_id", type = IdType.AUTO)
     @ApiModelProperty(value = "明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String itemId;

+ 2 - 9
src/main/java/com/dk/mdm/model/query/mac/AccountItemQuery.java

@@ -218,15 +218,8 @@ public class AccountItemQuery extends PageInfo<AccountItemQuery> implements Seri
     @ApiModelProperty(value = "剩余金额是否大于0")
     private Boolean amtResidueFlg;
 
-    /*
-     * 相关属性
-     * @TableField(exist = false)
-     */
-
-    /*
-     * 关联属性 + 查询条件
-     * @TableField(exist = false)
-     */
+    @ApiModelProperty(value = "功能入口类型:add/refund")
+    private String formType;
 
 
     private static final long serialVersionUID = 1L;

+ 22 - 11
src/main/java/com/dk/mdm/model/query/mac/RecPayQuery.java

@@ -153,17 +153,6 @@ public class RecPayQuery extends PageInfo<RecPayQuery> implements Serializable {
     @TableField(typeHandler = TimestampTypeHandler.class)
     private LocalDate accDate;
 
-    @ApiModelProperty(value = "制单时间开始")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDate makeTimeStart;
-
-    @ApiModelProperty(value = "制单时间结束")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDate makeTimeEnd;
-
-
     /**
      * 备注
      */
@@ -249,6 +238,28 @@ public class RecPayQuery extends PageInfo<RecPayQuery> implements Serializable {
     @ApiModelProperty(value = "企业ID")
     private Integer cpId;
 
+    @ApiModelProperty(value = "客户电话")
+    private String cusPhone;
+
+    @ApiModelProperty(value = "客户名称")
+    private String cusName;
+
+    @ApiModelProperty(value = "部门List")
+    private List<String> orgIdList;
+
+    @ApiModelProperty(value = "业务员List")
+    private List<String> staffIdList;
+
+    @ApiModelProperty(value = "制单时间开始")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate makeTimeStart;
+
+    @ApiModelProperty(value = "制单时间结束")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate makeTimeEnd;
+
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private List<Boolean> flgValidList;
 
     private static final long serialVersionUID = 1L;
 

+ 7 - 0
src/main/java/com/dk/mdm/model/response/mac/AccountItemResponse.java

@@ -243,6 +243,13 @@ public class AccountItemResponse extends PageInfo<AccountItemResponse> implement
     @ApiModelProperty(value = "本次核销金额")
     private BigDecimal amtReceivableHandle;
 
+    @ApiModelProperty(value = "单据类型")
+    private String biznisTypeName;
+
+    @ApiModelProperty(value = "未核销金额")
+    private BigDecimal amtNotHandle;
+
+
     private static final long serialVersionUID = 1L;
 
 }

+ 0 - 7
src/main/java/com/dk/mdm/model/response/mac/RecPayResponse.java

@@ -221,13 +221,6 @@ public class RecPayResponse extends PageInfo<RecPayResponse> implements Serializ
     private Integer cpId;
 
 
-    /**
-     * 数据操作数据库用户 (触发器自动处理)
-     */
-    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
-    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
-    private String opDbUser;
-
     @ApiModelProperty(value = "收付款类型")
     private String rpTypeName;
 

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

@@ -124,6 +124,7 @@ public class ComMenuVO extends PageInfo<ComMenuVO> implements Serializable {
     private String opDbUser;
 
 
+
     /*
      * 相关属性
      * @TableField(exist = false)

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

@@ -882,4 +882,31 @@ public class CommonService extends BaseService<Map<String, Object>> {
         List<Map<String, Object>> list = commonMapper.selectMultiMoneyAccount(param);
         return ResponseResultUtil.success(list);
     }
+
+    /**
+     * @desc   : 获取商品(采购订单开单用)
+     * @author : 常皓宁
+     * @date   : 2024/3/9 10:08
+     */
+    public ResponseResultVO<List<Map<String, Object>>> getGoodsForPurchaseReturn(Map<String, Object> param) {
+        // 获取系统基础数据
+        List<Map<String, Object>> list = commonMapper.getGoodsForPurchaseReturn(param);
+        return ResponseResultUtil.success(list);
+    }
+
+    /**
+     * @desc   : 获取商品(采购订单开单用)(分页)
+     * @author : 常皓宁
+     * @date   : 2024/3/9 10:08
+     */
+    public ResponseResultVO<PageList<Map<String, Object>>> getGoodsForPurchaseReturnByPage(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
+        // 分页参数赋值
+        param = this.getLimit(param);
+        return super.mergeListWithCount(param, commonMapper.getGoodsForPurchaseReturn(param),
+                commonMapper.getGoodsForPurchaseReturnByPage(param));
+    }
 }

+ 201 - 162
src/main/java/com/dk/mdm/service/ivt/InboundReturnService.java

@@ -79,6 +79,7 @@ public class InboundReturnService extends BaseService<Inbound> {
 
     @Autowired
     private CommonMapper commonMapper;
+
     @Pagination
     public ResponseResultVO<PageList<InboundResponse>> selectByCond(InboundQuery inboundQuery) {
         return super.mergeListWithCount(inboundQuery, inboundMapper.selectByInboundReturnCond(inboundQuery), inboundMapper.countByInboundReturnCond(inboundQuery));
@@ -119,47 +120,57 @@ public class InboundReturnService extends BaseService<Inbound> {
             //返回 采购退货明细不可为空,请重新操作
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
         }
-        //查询采购订单
-        PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId()); //采购订单id
-
         inboundVO.setReturnQty(inboundVO.getReturnQty().abs());
         inboundVO.setReturnAmt(inboundVO.getReturnAmt().abs());
-        //反写采购订单已入库退货数量、金额
-        purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
-                .setReturnQty(purchaseResponse.getReturnQty().add(inboundVO.getReturnQty()))
-                .setReturnAmt(purchaseResponse.getReturnAmt().add(inboundVO.getReturnAmt()))
-        );
+        if (inboundVO.getFromId() != null) {
+            //查询采购订单
+            PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId()); //采购订单id
+
+
+            //反写采购订单已入库退货数量、金额
+            purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
+                    .setReturnQty(purchaseResponse.getReturnQty().add(inboundVO.getReturnQty()))
+                    .setReturnAmt(purchaseResponse.getReturnAmt().add(inboundVO.getReturnAmt()))
+            );
+        }
+
 
         //反写入库订单明细、反写订单明细
         for (InboundItemVO inboundItemVO : itemList) {
+
             inboundItemVO.setReturnQty(inboundItemVO.getReturnQty().abs());
             inboundItemVO.setReturnAmt(inboundItemVO.getReturnAmt().abs());
-            //根据退货明细中入库明细id查询入库明细数据
-            InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId()); //原入库单明细id
-            BigDecimal returnQty = inboundItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
-            BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
-
-            //反写入库单退货数量金额
-            InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getIntoId()); //原入库单id
-            inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getIntoId())
-                    .setReturnQty(inboundResponse.getReturnQty().add(returnQty))
-                    .setReturnAmt(inboundResponse.getReturnAmt().add(returnAmt)));
-            inboundItemMapper.updateAmount(
-                    new InboundItem()
-                            .setItemId(inboundItemResponse.getItemId())
-                            .setReturnQty(returnQty)
-                            .setReturnAmt(returnAmt)
-            );
-            //反写订单出库明细 退货数量和退货金额
-            //查询采购订单明细数据
-            PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
-            //反写订单明细退货数量和退货金额
-            purchaseItemMapper.updateAmount(
-                    new PurchaseItem()
-                            .setItemId(inboundItemVO.getFromItemId())
-                            .setReturnQty(purchaseItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
-                            .setReturnAmt(purchaseItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
-            );
+            if (inboundItemVO.getItemId() != null) {
+                //根据退货明细中入库明细id查询入库明细数据
+                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId()); //原入库单明细id
+                BigDecimal returnQty = inboundItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
+                BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
+
+                //反写入库单退货数量金额
+                InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getIntoId()); //原入库单id
+                inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getIntoId())
+                        .setReturnQty(inboundResponse.getReturnQty().add(returnQty))
+                        .setReturnAmt(inboundResponse.getReturnAmt().add(returnAmt)));
+                inboundItemMapper.updateAmount(
+                        new InboundItem()
+                                .setItemId(inboundItemResponse.getItemId())
+                                .setReturnQty(returnQty)
+                                .setReturnAmt(returnAmt)
+                );
+            }
+            if (inboundItemVO.getFromItemId() != null) {
+                //反写订单出库明细 退货数量和退货金额
+                //查询采购订单明细数据
+                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
+                //反写订单明细退货数量和退货金额
+                purchaseItemMapper.updateAmount(
+                        new PurchaseItem()
+                                .setItemId(inboundItemVO.getFromItemId())
+                                .setReturnQty(purchaseItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                                .setReturnAmt(purchaseItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                );
+            }
+
         }
         inboundVO.setIntoingQty(inboundVO.getReturnQty().multiply(new BigDecimal(-1)));
         inboundVO.setIntoingAmt(inboundVO.getReturnAmt().multiply(new BigDecimal(-1)));
@@ -207,57 +218,67 @@ public class InboundReturnService extends BaseService<Inbound> {
         inboundReturnResponse.setReturnAmt(inboundReturnResponse.getReturnAmt().abs());
 
         inboundVO.setReturnAmt(inboundVO.getReturnAmt().abs());
-        //查询采购订单
-        PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId());
-        //采购订单原始退货数量 - 原始退货单退货数量
-        BigDecimal purchaseReturnQty = purchaseResponse.getReturnQty().subtract(inboundReturnResponse.getReturnQty());
-        BigDecimal purchaseReturnAmt = purchaseResponse.getReturnAmt().subtract(inboundReturnResponse.getReturnAmt());
-        //反写采购订单已入库退货数量、金额
-        purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
-                .setReturnQty(purchaseReturnQty.add(inboundVO.getReturnAmt()))
-                .setReturnAmt(purchaseReturnAmt.add(inboundVO.getReturnQty()))
-        );
+        if(inboundVO.getFromId() != null ){
+            //查询采购订单
+            PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId());
+            //采购订单原始退货数量 - 原始退货单退货数量
+            BigDecimal purchaseReturnQty = purchaseResponse.getReturnQty().subtract(inboundReturnResponse.getReturnQty());
+            BigDecimal purchaseReturnAmt = purchaseResponse.getReturnAmt().subtract(inboundReturnResponse.getReturnAmt());
+            //反写采购订单已入库退货数量、金额
+            purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
+                    .setReturnQty(purchaseReturnQty.add(inboundVO.getReturnAmt()))
+                    .setReturnAmt(purchaseReturnAmt.add(inboundVO.getReturnQty()))
+            );
+        }
+
         //校验明细
-        if(inboundVO.getItemList() != null &&  inboundVO.getItemList().size() > 0){
+        if (inboundVO.getItemList() != null && inboundVO.getItemList().size() > 0) {
             for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
-                InboundItemResponse inboundItemReturnResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId());
-                inboundItemReturnResponse.setReturnQty(inboundItemReturnResponse.getReturnQty().abs());
-                inboundItemReturnResponse.setReturnAmt(inboundItemReturnResponse.getReturnAmt().abs());
                 inboundItemVO.setReturnQty(inboundItemVO.getReturnQty().abs());
                 inboundItemVO.setReturnAmt(inboundItemVO.getReturnAmt().abs());
-                //查询采购订单明细数据
-                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getSPurItemId());
-                BigDecimal purchaseItemReturnQty = purchaseItemResponse.getReturnQty().subtract(inboundItemReturnResponse.getReturnQty());
-                BigDecimal purchaseItemReturnAmt = purchaseItemResponse.getReturnAmt().subtract(inboundItemReturnResponse.getReturnAmt());
-                //反写采购订单明细退货数量和退货金额
-                purchaseItemMapper.updateAmount(
-                        new PurchaseItem()
-                                .setItemId(inboundItemVO.getSPurItemId())
-                                .setReturnQty(purchaseItemReturnQty.add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
-                                .setReturnAmt(purchaseItemReturnAmt.add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
-                );
-                //根据退货明细中入库明细id查询入库明细数据
-                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId());
-                BigDecimal inboundItemReturnQty = inboundItemResponse.getReturnQty().subtract(inboundItemReturnResponse.getReturnQty());
-                BigDecimal inboundItemReturnAmt = inboundItemResponse.getReturnAmt().subtract(inboundItemReturnResponse.getReturnAmt());
+                if(inboundItemVO.getSIntoItemId() != null ){
+                    InboundItemResponse inboundItemReturnResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId());
+                    inboundItemReturnResponse.setReturnQty(inboundItemReturnResponse.getReturnQty().abs());
+                    inboundItemReturnResponse.setReturnAmt(inboundItemReturnResponse.getReturnAmt().abs());
+
+
+                    //查询采购订单明细数据
+                    PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getSPurItemId());
+                    BigDecimal purchaseItemReturnQty = purchaseItemResponse.getReturnQty().subtract(inboundItemReturnResponse.getReturnQty());
+                    BigDecimal purchaseItemReturnAmt = purchaseItemResponse.getReturnAmt().subtract(inboundItemReturnResponse.getReturnAmt());
+                    //反写采购订单明细退货数量和退货金额
+                    purchaseItemMapper.updateAmount(
+                            new PurchaseItem()
+                                    .setItemId(inboundItemVO.getSPurItemId())
+                                    .setReturnQty(purchaseItemReturnQty.add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                                    .setReturnAmt(purchaseItemReturnAmt.add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                    );
+                    //根据退货明细中入库明细id查询入库明细数据
+                    InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId());
+                    BigDecimal inboundItemReturnQty = inboundItemResponse.getReturnQty().subtract(inboundItemReturnResponse.getReturnQty());
+                    BigDecimal inboundItemReturnAmt = inboundItemResponse.getReturnAmt().subtract(inboundItemReturnResponse.getReturnAmt());
+
+
+                    BigDecimal ReturnQty = inboundItemReturnQty.add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
+                    BigDecimal ReturnAm = inboundItemReturnAmt.add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //反写原始入库单明细 不是负向的入库单
+                    inboundItemMapper.updateAmount(
+                            new InboundItem()
+                                    .setItemId(inboundItemResponse.getItemId())
+                                    .setReturnQty(ReturnQty)
+                                    .setReturnAmt(ReturnAm)
+                    );
+                    //反写原始入库单
+                    InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getSIntoId());
+                    BigDecimal inboundReturnQty = inboundResponse.getReturnQty().subtract(inboundItemReturnResponse.getReturnQty());
+                    BigDecimal inboundReturnAmt = inboundResponse.getReturnAmt().subtract(inboundItemReturnResponse.getReturnAmt());
+                    inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getSIntoId())
+                            .setReturnQty(inboundReturnQty.add(inboundItemVO.getReturnQty()))
+                            .setReturnAmt(inboundReturnAmt.add(inboundItemVO.getReturnAmt())));
+                }
+
 
 
-                BigDecimal ReturnQty = inboundItemReturnQty.add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
-                BigDecimal ReturnAm = inboundItemReturnAmt.add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
-                //反写原始入库单明细 不是负向的入库单
-                inboundItemMapper.updateAmount(
-                        new InboundItem()
-                                .setItemId(inboundItemResponse.getItemId())
-                                .setReturnQty(ReturnQty)
-                                .setReturnAmt(ReturnAm)
-                );
-                //反写原始入库单
-                InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getSIntoId());
-                BigDecimal inboundReturnQty = inboundResponse.getReturnQty().subtract(inboundItemReturnResponse.getReturnQty());
-                BigDecimal inboundReturnAmt = inboundResponse.getReturnAmt().subtract(inboundItemReturnResponse.getReturnAmt());
-                inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getSIntoId())
-                        .setReturnQty(inboundReturnQty.add(inboundItemVO.getReturnQty()))
-                        .setReturnAmt(inboundReturnAmt.add(inboundItemVO.getReturnAmt())));
 
                 //修改采退明细
                 InboundItem inboundItem = new InboundItem();
@@ -273,7 +294,7 @@ public class InboundReturnService extends BaseService<Inbound> {
         }
 
         //删除 采退入库明细
-        if(inboundVO.getDeleteItemList() != null  && inboundVO.getDeleteItemList().size() > 0){
+        if (inboundVO.getDeleteItemList() != null && inboundVO.getDeleteItemList().size() > 0) {
             for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                 if (inboundItemVO.getItemId() != null) {
                     //修改 采退明细 状态
@@ -302,6 +323,7 @@ public class InboundReturnService extends BaseService<Inbound> {
         inboundPurchaseReturnService.purchaseReturnInboundUpdate(inboundVO);
         return ResponseResultUtil.success();
     }
+
     /**
      * @desc : 作废
      * @date : 2022/6/28 16:58
@@ -325,13 +347,13 @@ public class InboundReturnService extends BaseService<Inbound> {
         //自动办理标识
         String flgHandleSetting = commonMapper.getSettingValue(map);
         //自动办理标识为1 自动办理入库
-        if(Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)){
+        if (Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)) {
             inboundVO.setFlgHandleSetting(Constant.FlgHandleSetting.TRUE.getValue());
             inboundVO.setFlgAutoHandle(Constant.FlgAutoHandle.TRUE.getValue());
         }
 
         //TODO  //系统参数自动出入库办理 已出库(未退款)可以作废,已出库(已退款)不可以作废
-        if(inboundResponse.getFlgHandleSetting() &&  inboundResponse.getIntoStatus().equals(Constant.IntoStatus.YIRUKU.getName())){
+        if (inboundResponse.getFlgHandleSetting() && inboundResponse.getIntoStatus().equals(Constant.IntoStatus.YIRUKU.getName())) {
             return ResponseResultUtil.error(ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getCode(),
                     ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getMessage());
         }
@@ -340,62 +362,71 @@ public class InboundReturnService extends BaseService<Inbound> {
             return ResponseResultUtil.error(ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getCode(),
                     ErrorCodeEnum.NO_WAIT_INTO_RETURN_CANCEL.getMessage());
         }
-        //查询采购单
-        PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundResponse.getFromId());
-        if (purchaseResponse == null) {
-            //返回 单据所对应的原始单据不存在,请重新操作
-            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+        if(inboundResponse.getFromId()!=null){
+            //查询采购单
+            PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundResponse.getFromId());
+            if (purchaseResponse == null) {
+                //返回 单据所对应的原始单据不存在,请重新操作
+                return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+            }
+            //修改采购单 已入库数量/金额
+            //TODO 如果 退货存的 退货数量是负数的话
+            System.out.println(purchaseResponse.getReturnQty().subtract(inboundResponse.getReturnQty()));
+
+            purchaseMapper.updateAmount(
+                    new Purchase().setReturnQty(purchaseResponse.getReturnQty().subtract(inboundResponse.getReturnQty().abs()))
+                            .setReturnAmt(purchaseResponse.getReturnAmt().subtract(inboundResponse.getReturnAmt().abs())).setPurId(purchaseResponse.getPurId())
+            );
         }
-        //修改采购单 已入库数量/金额
-        //TODO 如果 退货存的 退货数量是负数的话
-        System.out.println(purchaseResponse.getReturnQty().subtract(inboundResponse.getReturnQty()));
 
-        purchaseMapper.updateAmount(
-                new Purchase().setReturnQty(purchaseResponse.getReturnQty().subtract(inboundResponse.getReturnQty().abs()))
-                        .setReturnAmt(purchaseResponse.getReturnAmt().subtract(inboundResponse.getReturnAmt().abs())).setPurId(purchaseResponse.getPurId())
-        );
         //查询退货明细
         List<InboundItemResponse> inboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
         for (InboundItemResponse inboundItemRespons : inboundItemResponses) {
+            if(inboundItemRespons.getSIntoItemId() != null){
+                //查询源入库单明细
+                InboundItemResponse inboundItem = inboundItemMapper.selectById(inboundItemRespons.getSIntoItemId());
+                if (inboundItem == null) {
+                    //返回 单据所对应的原始单据不存在,请重新操作
+                    return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+                }
+                //修改入库单明细 已入库退货数量/金额
+                inboundItemMapper.updateAmount(new InboundItem()
+                        .setItemId(inboundItem.getItemId())
+                        .setReturnQty(inboundItem.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
+                        .setReturnAmt(inboundItem.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs()))
+                );
+            }
 
-            //查询源入库单明细
-            InboundItemResponse inboundItem = inboundItemMapper.selectById(inboundItemRespons.getSIntoItemId());
-            if (inboundItem == null) {
-                //返回 单据所对应的原始单据不存在,请重新操作
-                return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+            if(inboundItemRespons.getSIntoId() != null){
+                //查询源入库单 修改 已入库退货数量/金额
+                InboundResponse inboundRes = inboundMapper.selectById(inboundItemRespons.getSIntoId());
+                if (inboundRes == null) {
+                    //返回 单据所对应的原始单据不存在,请重新操作
+                    return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+                }
+                inboundMapper.updateAmount(new Inbound().setIntoId(inboundRes.getIntoId())
+                        .setReturnQty(inboundRes.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
+                        .setReturnAmt(inboundRes.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs())));
             }
-            //修改入库单明细 已入库退货数量/金额
-            inboundItemMapper.updateAmount(new InboundItem()
-                    .setItemId(inboundItem.getItemId())
-                    .setReturnQty(inboundItem.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
-                    .setReturnAmt(inboundItem.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs()))
-            );
 
 
-            //查询源入库单 修改 已入库退货数量/金额
-            InboundResponse inboundRes = inboundMapper.selectById(inboundItemRespons.getSIntoId());
-            if (inboundRes == null) {
-                //返回 单据所对应的原始单据不存在,请重新操作
-                return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+            if(inboundItemRespons.getSPurItemId()!=null){
+                //查询采购单明细
+                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemRespons.getSPurItemId());
+                if (purchaseItemResponse == null) {
+                    //返回 单据所对应的原始单据不存在,请重新操作
+                    return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+                }
+                //修改采购单明细 已入库退货数量/金额
+                purchaseItemMapper.updateAmount(
+                        new PurchaseItem()
+                                .setItemId(purchaseItemResponse.getItemId())
+                                .setReturnQty(purchaseItemResponse.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
+                                .setReturnAmt(purchaseItemResponse.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs()))
+                );
             }
-            inboundMapper.updateAmount(new Inbound().setIntoId(inboundRes.getIntoId())
-                    .setReturnQty(inboundRes.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
-                    .setReturnAmt(inboundRes.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs())));
 
 
-            //查询采购单明细
-            PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemRespons.getSPurItemId());
-            if (purchaseItemResponse == null) {
-                //返回 单据所对应的原始单据不存在,请重新操作
-                return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
-            }
-            //修改采购单明细 已入库退货数量/金额
-            purchaseItemMapper.updateAmount(
-                    new PurchaseItem()
-                            .setItemId(purchaseItemResponse.getItemId())
-                            .setReturnQty(purchaseItemResponse.getReturnQty().subtract(inboundItemRespons.getReturnQty().abs()))
-                            .setReturnAmt(purchaseItemResponse.getReturnAmt().subtract(inboundItemRespons.getReturnAmt().abs()))
-            );
         }
         //修改 负向入库单 状态为作废
         inboundMapper.updateIntoStatus(new Inbound()
@@ -412,14 +443,13 @@ public class InboundReturnService extends BaseService<Inbound> {
     }
 
 
-
     /**
      * @desc : 办理
      * @date : 2022/6/28 16:58
      * @author : 于继渤
      */
     @Transactional(rollbackFor = {Exception.class})
-    public ResponseResultVO<String> returnHandle(InboundVO inboundVO){
+    public ResponseResultVO<String> returnHandle(InboundVO inboundVO) {
         //校验明细长度
         List<InboundItemVO> itemList = inboundVO.getItemList();
         //明细不存在
@@ -427,47 +457,55 @@ public class InboundReturnService extends BaseService<Inbound> {
             //返回 采购退货明细不可为空,请重新操作
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
         }
-        //查询采购订单
-        PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId()); //采购订单id
-
         inboundVO.setReturnQty(inboundVO.getReturnQty().abs());
         inboundVO.setReturnAmt(inboundVO.getReturnAmt().abs());
-        //反写采购订单已入库退货数量、金额
-        purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
-                .setReturnQty(purchaseResponse.getReturnQty().add(inboundVO.getReturnQty()))
-                .setReturnAmt(purchaseResponse.getReturnAmt().add(inboundVO.getReturnAmt()))
-        );
+        if(inboundVO.getFromId() != null){
+            //查询采购订单
+            PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId()); //采购订单id
+
+            //反写采购订单已入库退货数量、金额
+            purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
+                    .setReturnQty(purchaseResponse.getReturnQty().add(inboundVO.getReturnQty()))
+                    .setReturnAmt(purchaseResponse.getReturnAmt().add(inboundVO.getReturnAmt()))
+            );
+        }
+
 
         //反写入库订单明细、反写订单明细
         for (InboundItemVO inboundItemVO : itemList) {
             inboundItemVO.setReturnQty(inboundItemVO.getReturnQty().abs());
             inboundItemVO.setReturnAmt(inboundItemVO.getReturnAmt().abs());
             //根据退货明细中入库明细id查询入库明细数据
-            InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId()); //原入库单明细id
-            BigDecimal returnQty = inboundItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
-            BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
-
-            //反写入库单退货数量金额
-            InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getSIntoId()); //原入库单id
-            inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getSIntoId())
-                    .setReturnQty(inboundResponse.getReturnQty().add(returnQty))
-                    .setReturnAmt(inboundResponse.getReturnAmt().add(returnAmt)));
-            inboundItemMapper.updateAmount(
-                    new InboundItem()
-                            .setItemId(inboundItemResponse.getSIntoItemId())
-                            .setReturnQty(returnQty)
-                            .setReturnAmt(returnAmt)
-            );
-            //反写订单出库明细 退货数量和退货金额
-            //查询采购订单明细数据
-            PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getSPurItemId());
-            //反写订单明细退货数量和退货金额
-            purchaseItemMapper.updateAmount(
-                    new PurchaseItem()
-                            .setItemId(inboundItemVO.getSPurItemId())
-                            .setReturnQty(purchaseItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
-                            .setReturnAmt(purchaseItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
-            );
+            if(inboundItemVO.getSIntoItemId() != null){
+                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId()); //原入库单明细id
+                BigDecimal returnQty = inboundItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
+                BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
+
+                //反写入库单退货数量金额
+                InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getSIntoId()); //原入库单id
+                inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getSIntoId())
+                        .setReturnQty(inboundResponse.getReturnQty().add(returnQty))
+                        .setReturnAmt(inboundResponse.getReturnAmt().add(returnAmt)));
+                inboundItemMapper.updateAmount(
+                        new InboundItem()
+                                .setItemId(inboundItemResponse.getSIntoItemId())
+                                .setReturnQty(returnQty)
+                                .setReturnAmt(returnAmt)
+                );
+            }
+            if(inboundItemVO.getSPurItemId() != null){
+                //反写订单出库明细 退货数量和退货金额
+                //查询采购订单明细数据
+                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getSPurItemId());
+                //反写订单明细退货数量和退货金额
+                purchaseItemMapper.updateAmount(
+                        new PurchaseItem()
+                                .setItemId(inboundItemVO.getSPurItemId())
+                                .setReturnQty(purchaseItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                                .setReturnAmt(purchaseItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                );
+            }
+
 
             inboundItemVO.setIntoingQty(inboundItemVO.getReturnQty().abs());
             inboundItemVO.setIntoingAmt(inboundItemVO.getReturnAmt().abs());
@@ -481,13 +519,14 @@ public class InboundReturnService extends BaseService<Inbound> {
         inboundPurchaseReturnService.saleReturnHandleInbound(inboundVO);
         return ResponseResultUtil.success();
     }
+
     /**
      * @desc : 采购退货入库撤销
      * @date : 2022/6/28 16:58
      * @author : 于继渤
      */
     @Transactional(rollbackFor = {Exception.class})
-    public ResponseResultVO<String> inboundReturnCancel(InboundVO inboundVO){
+    public ResponseResultVO<String> inboundReturnCancel(InboundVO inboundVO) {
         inboundPurchaseReturnService.saleReturnInboundCancel(inboundVO);
         return ResponseResultUtil.success();
     }

+ 0 - 6
src/main/java/com/dk/mdm/service/mac/AccountService.java

@@ -62,15 +62,9 @@ public class AccountService extends BaseService<Account> {
     private MoneyAccountItemMapper moneyAccountItemMapper;
 
     @Autowired
-    private OutboundService outboundService;
-
-    @Autowired
     private OutboundMapper outboundMapper;
 
     @Autowired
-    private InboundService inboundService;
-
-    @Autowired
     private InboundMapper inboundMapper;
 
     /**

+ 12 - 4
src/main/java/com/dk/mdm/service/mac/RecPayService.java

@@ -82,6 +82,9 @@ public class RecPayService extends BaseService<RecPay> {
     private MoneyAccountItemMapper moneyAccountItemMapper;
 
     @Autowired
+    private RecPayHandleItemService recPayHandleItemService;
+
+    @Autowired
     private RecPayHandleItemMapper recPayHandleItemMapper;
 
     @Autowired
@@ -163,7 +166,7 @@ public class RecPayService extends BaseService<RecPay> {
 
                 // 更新收款单上的账款明细Id
                 RecPayItem recPayItemUpdate = new RecPayItem();
-                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setRpId(recPayVO.getRpId());
+                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setItemId(recPayItem.getItemId());
                 recPayItemService.updateByUuid(recPayItemUpdate);
 
                 // 插入资金流水
@@ -235,7 +238,7 @@ public class RecPayService extends BaseService<RecPay> {
 
                 // 更新收款单上的账款明细Id
                 RecPayItem recPayItemUpdate = new RecPayItem();
-                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setRpId(recPayVO.getRpId());
+                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setItemId(recPayItem.getItemId());
                 recPayItemService.updateByUuid(recPayItemUpdate);
 
                 // 插入资金流水
@@ -312,7 +315,7 @@ public class RecPayService extends BaseService<RecPay> {
 
             // 更新收款单上的账款明细Id
             RecPayItem recPayItemUpdate = new RecPayItem();
-            recPayItemUpdate.setAccItemId(accountItem.getItemId()).setRpId(recPayVO.getRpId());
+            recPayItemUpdate.setAccItemId(accountItem.getItemId()).setItemId(recPayItem.getItemId());
             recPayItemService.updateByUuid(recPayItemUpdate);
 
             // 插入资金流水
@@ -393,7 +396,7 @@ public class RecPayService extends BaseService<RecPay> {
 
                 // 更新收款单上的账款明细Id
                 RecPayItem recPayItemUpdate = new RecPayItem();
-                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setRpId(recPayVO.getRpId());
+                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setItemId(recPayItem.getItemId());
                 recPayItemService.updateByUuid(recPayItemUpdate);
 
                 // 插入资金流水
@@ -505,6 +508,11 @@ public class RecPayService extends BaseService<RecPay> {
                     .setItemId(recPayHandleItemForUpdate.getAccItemId());
             accountItemUpdate.setAmtResidue(accountItemForUpdate.getAmtShould().subtract(accountItemUpdate.getAmtHandle()).subtract(accountItemUpdate.getAmtWaive()));
             accountItemService.updateByUuid(accountItemUpdate);
+
+            // 将核销明细有效标识置为false
+            RecPayHandleItem recPayHandleItemUpdate = new RecPayHandleItem();
+            recPayHandleItemUpdate.setFlgValid(false).setItemId(recPayHandleItemForUpdate.getItemId());
+            recPayHandleItemService.updateByUuid(recPayHandleItemUpdate);
         }
 
         // 把总帐上的钱加回来

+ 42 - 0
src/main/java/com/dk/mdm/service/mst/ComMenuService.java

@@ -1,13 +1,27 @@
 package com.dk.mdm.service.mst;
 
+import com.dk.common.infrastructure.annotaiton.Pagination;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.infrastructure.util.AuthUtils;
 import com.dk.mdm.model.pojo.mst.ComMenu;
 import com.dk.mdm.mapper.mst.ComMenuMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.mst.MenuFrequency;
+import com.dk.mdm.model.query.mst.ComMenuQuery;
+import com.dk.mdm.model.query.sale.OrderQuery;
+import com.dk.mdm.model.response.sale.OrderResponse;
+import com.dk.mdm.model.vo.mst.ComMenuVO;
+import com.dk.mdm.model.vo.mst.MenuFrequencyVO;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+import java.util.Map;
+
 @Service
 @Transactional
 public class ComMenuService extends BaseService<ComMenu> {
@@ -20,4 +34,32 @@ public class ComMenuService extends BaseService<ComMenu> {
 	@Autowired
 	private ComMenuMapper comMenuMapper;
 
+	@Autowired
+	private AuthUtils authUtils;
+
+	/**
+	 * @desc : 条件查询
+	 * @author : 周兴
+	 * @date : 2024/3/29 10:40
+	 */
+	public ResponseResultVO<?> selectByCond(ComMenuQuery comMenuQuery) {
+		return ResponseResultUtil.success(comMenuMapper.selectByCond(comMenuQuery));
+	}
+
+	/**
+	 * @desc : 保存常用功能频率表
+	 * @author : 周兴
+	 * @date : 2024/3/29 9:39
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> save(List<ComMenu> comMenuList) {
+		// 先删除该员工的常用功能
+		String staffId = authUtils.getStaff().getStaffId();
+		comMenuMapper.deleteMenuByStaff(staffId);
+		// 保存常用功能
+		comMenuMapper.insertBatch(comMenuList);
+		return ResponseResultUtil.success();
+	}
 }