fubin 2 anni fa
parent
commit
71989f69fc

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

@@ -5,36 +5,38 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        item_id, acc_item_type, object_id, org_id, staff_id, biznis_type, biznis_id, biznis_no, acc_date, rec_status, amt_should, amt_handle, amt_waive, amt_residue, remarks, 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
+        item_id, acc_item_type, object_id, org_id, staff_id, biznis_type, biznis_id, biznis_no, acc_date, rec_status, amt_rec, amt_pay, amt_should, amt_handle, amt_waive, amt_residue, remarks, 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
     </sql>
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.mac.AccountItem">
         <id column="item_id" property="itemId"/>
-                <result column="acc_item_type" property="accItemType" typeHandler="UuidTypeHandler"/>
+                <result column="acc_item_type" property="accItemType"/>
                 <result column="object_id" property="objectId" typeHandler="UuidTypeHandler"/>
                 <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
                 <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
                 <result column="biznis_type" property="biznisType"/>
                 <result column="biznis_id" property="biznisId" typeHandler="UuidTypeHandler"/>
                 <result column="biznis_no" property="biznisNo"/>
-            <result column="acc_date" property="accDate" typeHandler="TimestampTypeHandler"/>
+                <result column="acc_date" property="accDate" typeHandler="TimestampTypeHandler"/>
                 <result column="rec_status" property="recStatus"/>
+                <result column="amt_rec" property="amtRec"/>
+                <result column="amt_pay" property="amtPay"/>
                 <result column="amt_should" property="amtShould"/>
                 <result column="amt_handle" property="amtHandle"/>
                 <result column="amt_waive" property="amtWaive"/>
                 <result column="amt_residue" property="amtResidue"/>
                 <result column="remarks" property="remarks"/>
                 <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+                <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
                 <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_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_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_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
                 <result column="op_db_user" property="opDbUser"/>
     </resultMap>
 
@@ -68,6 +70,12 @@
             <if test="recStatus != null and recStatus != ''">
                 AND rec_status = #{recStatus}
             </if>
+            <if test="amtRec != null">
+                AND amt_rec = #{amtRec}
+            </if>
+            <if test="amtPay != null">
+                AND amt_pay = #{amtPay}
+            </if>
             <if test="amtShould != null">
                 AND amt_should = #{amtShould}
             </if>
@@ -159,7 +167,7 @@
         SELECT
         <include refid="Base_Column_List"/>
         FROM t_mac_account_item
-        WHERE item_id = #{itemId}
+        WHERE item_id = #{id}::uuid
         for update
     </select>
 
@@ -185,6 +193,8 @@
             biznis_no,
             acc_date,
             rec_status,
+            amt_rec,
+            amt_pay,
             amt_should,
             amt_handle,
             amt_waive,
@@ -200,7 +210,7 @@
         <foreach collection="list" index="index" item="item" separator=",">
             (
             <trim suffixOverrides=",">
-                #{item.accItemType}::uuid,
+                #{item.accItemType},
                 #{item.objectId}::uuid,
                 #{item.orgId}::uuid,
                 #{item.staffId}::uuid,
@@ -209,6 +219,8 @@
                 #{item.biznisNo},
                 #{item.accDate},
                 #{item.recStatus},
+                #{item.amtRec},
+                #{item.amtPay},
                 #{item.amtShould},
                 #{item.amtHandle},
                 #{item.amtWaive},

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

@@ -135,7 +135,7 @@
         SELECT
         <include refid="Base_Column_List"/>
         FROM t_mac_account
-        WHERE object_id = #{objectId}
+        WHERE object_id = #{id}::uuid
         for update
     </select>
 

+ 14 - 20
src/main/java/com/dk/mdm/mapper/mac/RecPayItemMapper.xml

@@ -5,7 +5,7 @@
     <!-- 通用设置 -->
     <!-- 通用查询列 -->
     <sql id="Base_Column_List">
-        item_id, rp_id, mac_id, amt_rec, amt_pay, acc_date, remarks, 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
+        item_id , rp_id, mac_id, amt_rec, amt_pay, acc_item_id, acc_date, remarks, 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
     </sql>
 
     <!-- 通用查询映射结果 -->
@@ -15,19 +15,13 @@
                 <result column="mac_id" property="macId" typeHandler="UuidTypeHandler"/>
                 <result column="amt_rec" property="amtRec"/>
                 <result column="amt_pay" property="amtPay"/>
-            <result column="acc_date" property="accDate" typeHandler="TimestampTypeHandler"/>
+                <result column="acc_item_id" property="accItemId"/>
+                <result column="acc_date" property="accDate" typeHandler="TimestampTypeHandler"/>
                 <result column="remarks" property="remarks"/>
                 <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+                <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
                 <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>
 
     <!-- Response查询映射结果 -->
@@ -37,26 +31,20 @@
                 <result column="mac_id" property="macId" typeHandler="UuidTypeHandler"/>
                 <result column="amt_rec" property="amtRec"/>
                 <result column="amt_pay" property="amtPay"/>
-            <result column="acc_date" property="accDate" typeHandler="TimestampTypeHandler"/>
+                <result column="acc_item_id" property="accItemId"/>
+                <result column="acc_date" property="accDate" typeHandler="TimestampTypeHandler"/>
                 <result column="remarks" property="remarks"/>
                 <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+                <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
                 <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="Condition">
         <where>
             <if test="rpId != null and rpId != ''">
-                AND t.rp_id = #{rpId}
+                AND t.rp_id = #{rpId}::uuid
             </if>
             <if test="macId != null and macId != ''">
                 AND t.mac_id = #{macId}
@@ -67,6 +55,9 @@
             <if test="amtPay != null">
                 AND t.amt_pay = #{amtPay}
             </if>
+            <if test="accItemId != null">
+                AND t.acc_item_id = #{accItemId}
+            </if>
             <if test="accDate != null">
                 AND t.acc_date = #{accDate}
             </if>
@@ -104,6 +95,7 @@
                tmma.mac_name as "macName",
                t.amt_rec,
                t.amt_pay,
+               t.acc_item_id,
                t.acc_date,
                t.remarks,
                t.make_staff,
@@ -161,6 +153,7 @@
             mac_id,
             amt_rec,
             amt_pay,
+            acc_item_id,
             acc_date,
             remarks,
             make_staff,
@@ -177,6 +170,7 @@
                 #{item.macId}::uuid,
                 #{item.amtRec},
                 #{item.amtPay},
+                #{item.accItemId},
                 #{item.accDate},
                 #{item.remarks},
                 #{item.makeStaff}::uuid,

+ 19 - 7
src/main/java/com/dk/mdm/model/pojo/mac/AccountItem.java

@@ -15,10 +15,9 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.alibaba.fastjson.JSONObject;
 
 import java.math.BigDecimal;
-import java.util.List;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -50,9 +49,8 @@ public class AccountItem extends PageInfo<AccountItem> implements Serializable {
     /**
      * 账务类型 (【系统字典】:应收、应付)
      */
-    @Excel(name = "账务类型 (【系统字典】:应收、应付)")
-    @ApiModelProperty(value = "账务类型 (【系统字典】:应收、应付)")
-    @TableField(typeHandler = UuidTypeHandler.class)
+    @Excel(name = "账务类型 (【系统字典】:应收、应付、收款、付款)")
+    @ApiModelProperty(value = "账务类型 (【系统字典】:应收、应付、收款、付款)")
     private String accItemType;
 
 
@@ -113,9 +111,9 @@ public class AccountItem extends PageInfo<AccountItem> 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 accDate;
+    private LocalDate accDate;
 
 
     /**
@@ -125,6 +123,20 @@ public class AccountItem extends PageInfo<AccountItem> implements Serializable {
     @ApiModelProperty(value = "账务状态 (【系统字典】确定、部分、完成)")
     private String recStatus;
 
+    /**
+     * 收款金额
+     */
+    @Excel(name = "收款金额(对客户(收款为正数、退收款为负数))")
+    @ApiModelProperty(value = "收款金额(对客户(收款为正数、退收款为负数))")
+    private BigDecimal amtRec;
+
+
+    /**
+     * 付款金额
+     */
+    @Excel(name = "付款金额(对供应商(付款为正数、退付款为负数))")
+    @ApiModelProperty(value = "付款金额(对供应商(付款为正数、退付款为负数))")
+    private BigDecimal amtPay;
 
     /**
      * 应收/应付金额

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

@@ -81,6 +81,13 @@ public class RecPayItem extends PageInfo<RecPayItem> implements Serializable {
     @ApiModelProperty(value = "付款金额 (对供应商(付款为正数、退付款为负数))")
     private BigDecimal amtPay;
 
+    /**
+     * 账款明细ID
+     */
+    @Excel(name = "账款明细ID")
+    @ApiModelProperty(value = "账款明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String accItemId;
 
     /**
      * 收付款日期 (账务日期)

+ 9 - 0
src/main/java/com/dk/mdm/model/query/mac/RecPayItemQuery.java

@@ -83,6 +83,15 @@ public class RecPayItemQuery extends PageInfo<RecPayItemQuery> implements Serial
 
 
     /**
+     * 账款明细ID
+     */
+    @Excel(name = "账款明细ID")
+    @ApiModelProperty(value = "账款明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String accItemId;
+
+
+    /**
      * 收付款日期 (账务日期)
      */
     @Excel(name = "收付款日期 (账务日期)")

+ 9 - 0
src/main/java/com/dk/mdm/model/response/mac/RecPayItemResponse.java

@@ -83,6 +83,15 @@ public class RecPayItemResponse extends PageInfo<RecPayItemResponse> implements
 
 
     /**
+     * 账款明细ID
+     */
+    @Excel(name = "账款明细ID")
+    @ApiModelProperty(value = "账款明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String accItemId;
+
+
+    /**
      * 收付款日期 (账务日期)
      */
     @Excel(name = "收付款日期 (账务日期)")

+ 9 - 0
src/main/java/com/dk/mdm/model/vo/mac/RecPayItemVO.java

@@ -83,6 +83,15 @@ public class RecPayItemVO extends PageInfo<RecPayItemVO> implements Serializable
 
 
     /**
+     * 账款明细ID
+     */
+    @Excel(name = "账款明细ID")
+    @ApiModelProperty(value = "账款明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String accItemId;
+
+
+    /**
      * 收付款日期 (账务日期)
      */
     @Excel(name = "收付款日期 (账务日期)")

+ 40 - 3
src/main/java/com/dk/mdm/service/mac/RecPayService.java

@@ -11,6 +11,8 @@ import com.dk.mdm.infrastructure.convert.mac.RecPayItemConvert;
 import com.dk.mdm.mapper.mac.AccountItemMapper;
 import com.dk.mdm.mapper.mac.AccountMapper;
 import com.dk.mdm.mapper.mac.RecPayItemMapper;
+import com.dk.mdm.model.pojo.mac.Account;
+import com.dk.mdm.model.pojo.mac.AccountItem;
 import com.dk.mdm.model.pojo.mac.RecPay;
 import com.dk.mdm.mapper.mac.RecPayMapper;
 import com.dk.common.service.BaseService;
@@ -50,6 +52,9 @@ public class RecPayService extends BaseService<RecPay> {
     private RecPayMapper recPayMapper;
 
     @Autowired
+    private RecPayItemService recPayItemService;
+
+    @Autowired
     private RecPayItemMapper recPayItemMapper;
 
     @Autowired
@@ -115,17 +120,49 @@ public class RecPayService extends BaseService<RecPay> {
         recPayVO.setRpId(codeMap.get("outId").toString()).setRpNo(codeMap.get("outNote").toString());
         // 转化实体
         RecPay recPay = recPayConvert.convertToPo(recPayVO);
-        // 订单总单保存
+        // 总单保存
         super.insert(recPay);
 
-        // 订单明细保存
+        // 明细保存
         if (recPayVO.getItemList() != null && recPayVO.getItemList().size() > 0) {
             for (RecPayItemVO recPayItemVO : recPayVO.getItemList()) {
                 RecPayItem recPayItem = recPayItemConvert.convertToPo(recPayItemVO);
-                recPayItem.setRpId(recPay.getRpId()).setCpId(recPay.getCpId()).setAccDate(recPay.getAccDate());
+                recPayItem.setRpId(recPay.getRpId()).setCpId(recPay.getCpId()).setMakeStaff(recPay.getMakeStaff()).setAccDate(recPay.getAccDate());
                 recPayItemMapper.insert(recPayItem);
+
+                // 插入账款明细
+                AccountItem accountItem = new AccountItem();
+                accountItem.setAccItemType(Constant.accItemType.SHOU_KUAN.getName())
+                        .setObjectId(recPayVO.getObjectId()).setOrgId(recPayVO.getOrgId()).setStaffId(recPayVO.getStaffId())
+                        .setAccDate(recPayVO.getAccDate()).setRecStatus(Constant.recStatuse.QUE_DING.getName()).setAmtRec(recPayItemVO.getAmtRec())
+                        .setBiznisType("t_mac_rec_pay_item").setBiznisId(recPayItem.getItemId()).setBiznisNo(recPayVO.getRpNo())
+                        .setMakeStaff(recPayVO.getMakeStaff()).setCpId(recPayVO.getCpId());
+                accountItemMapper.insert(accountItem);
+
+                // 更新收款单上的应收账款
+                RecPayItem recPayItemUpdate = new RecPayItem();
+                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setRpId(recPayVO.getRpId());
+                recPayItemService.updateByUuid(recPayItemUpdate);
             }
         }
+
+        // 插入账款总表
+        Account accountForUpdate = accountMapper.selectByIdForUpdate(recPayVO.getObjectId());
+
+        // 没有账款对象,需要新建
+        if (accountForUpdate == null) {
+            accountForUpdate = new Account();
+            accountForUpdate.setObjectId(recPayVO.getObjectId()).setObjectType(Constant.ObjectType.CUS.getName());
+            accountMapper.insert(accountForUpdate);
+            accountForUpdate = accountMapper.selectByIdForUpdate(recPayVO.getObjectId());
+        }
+
+        // 更新账款总表上收款的相关字段
+        Account accountUpdate = new Account();
+        accountUpdate.setReceipt(accountForUpdate.getReceipt().add(recPayVO.getSumAmtRec()))// 总收款金额
+                .setReceiptResidue(accountForUpdate.getReceiptResidue().add(recPayVO.getSumAmtRec()))//  可退金额
+                .setObjectId(accountForUpdate.getObjectId());
+        accountService.updateByUuid(accountUpdate);
         return ResponseResultUtil.success();
     }