LAPTOP-FO2T5SIU\35838 10 ヶ月 前
コミット
20435bf216

+ 30 - 0
pro-base/src/main/java/com/idea/customerManagement/controller/IntentionalDepositController.java

@@ -37,6 +37,18 @@ public class IntentionalDepositController extends BaseController {
     }
 
 
+    /**
+     * 获取定金金流水号
+     * @param id
+     * @return
+     */
+    @PostMapping(value = "getDepositSerialNumber",produces = {"application/json;charset=UTF-8"})
+    @ResponseBody
+    public String getDepositSerialNumber(String id) {
+        return modelService.getDepositSerialNumber(id);
+    }
+
+
     /**
      * 意向金登记
      * @param model
@@ -105,5 +117,23 @@ public class IntentionalDepositController extends BaseController {
         return result(result);
     }
 
+    /**
+     * 根据客户id查找意向金
+     * @param id
+     * @return
+     */
+    @PostMapping(value = "getById",produces = {"application/json;charset=UTF-8"})
+    @ResponseBody
+    public Object getById(String id){
+        return modelService.getById(id);
+    }
+
+
+
+
+
+
+
+
 
 }

+ 2 - 0
pro-base/src/main/java/com/idea/customerManagement/dto/IntentionalDepositDto.java

@@ -14,6 +14,8 @@ public class IntentionalDepositDto extends IntentionalDeposit {
 
     private String houseName;
 
+    private String handleName;
+
 
 
 }

+ 10 - 0
pro-base/src/main/java/com/idea/customerManagement/model/IntentionalDeposit.java

@@ -70,8 +70,18 @@ public class IntentionalDeposit implements Serializable {
 
     private BigDecimal refundMoney;
 
+    private String houseName;
+
     private static final long serialVersionUID = 1L;
 
+    public String getHouseName() {
+        return houseName;
+    }
+
+    public void setHouseName(String houseName) {
+        this.houseName = houseName;
+    }
+
     public BigDecimal getRefundMoney() {
         return refundMoney;
     }

+ 70 - 0
pro-base/src/main/java/com/idea/customerManagement/model/IntentionalDepositExample.java

@@ -1475,6 +1475,76 @@ public class IntentionalDepositExample {
             addCriterion("refund_money not between", value1, value2, "refundMoney");
             return (Criteria) this;
         }
+
+        public Criteria andHouseNameIsNull() {
+            addCriterion("house_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameIsNotNull() {
+            addCriterion("house_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameEqualTo(String value) {
+            addCriterion("house_name =", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameNotEqualTo(String value) {
+            addCriterion("house_name <>", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameGreaterThan(String value) {
+            addCriterion("house_name >", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameGreaterThanOrEqualTo(String value) {
+            addCriterion("house_name >=", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameLessThan(String value) {
+            addCriterion("house_name <", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameLessThanOrEqualTo(String value) {
+            addCriterion("house_name <=", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameLike(String value) {
+            addCriterion("house_name like", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameNotLike(String value) {
+            addCriterion("house_name not like", value, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameIn(List<String> values) {
+            addCriterion("house_name in", values, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameNotIn(List<String> values) {
+            addCriterion("house_name not in", values, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameBetween(String value1, String value2) {
+            addCriterion("house_name between", value1, value2, "houseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andHouseNameNotBetween(String value1, String value2) {
+            addCriterion("house_name not between", value1, value2, "houseName");
+            return (Criteria) this;
+        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 6 - 2
pro-base/src/main/java/com/idea/customerManagement/service/ContractManageService.java

@@ -20,6 +20,7 @@ import com.rockstar.frame.model.extend.DateTrans;
 import com.rockstar.frame.model.extend.Tablepar;
 import com.rockstar.shiro.util.ShiroUtils;
 import com.rockstar.system.service.SysDictService;
+import com.rockstar.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -107,13 +108,16 @@ public class ContractManageService implements BaseService<ContractManage, Contra
      * @param roomSelectionInfo
      * @return
      */
-    public int addContract(RoomSelectionInfo roomSelectionInfo){
+    public int addContract(RoomSelectionInfo roomSelectionInfo,String contractId){
 
         ParkRoom parkRoom = parkRoomService.selectByPrimaryKey(roomSelectionInfo.getHouseId());
         ParkFloorDisc parkFloorDisc = parkFloorDiscService.selectByPrimaryKey(parkRoom.getDiscId());
 
+        if(StringUtils.isEmpty(contractId)){
+            contractId =  IdUtil.simpleUUID();
+        }
         ContractManage contractManage = new ContractManage();
-        contractManage.setId(IdUtil.simpleUUID());
+        contractManage.setId(contractId);
         contractManage.setCustomerManagementId(roomSelectionInfo.getCustomerManagementId());
         contractManage.setHouseId(roomSelectionInfo.getHouseId());
         contractManage.setSubscriptionFunds(roomSelectionInfo.getReceivableMoney());

+ 75 - 4
pro-base/src/main/java/com/idea/customerManagement/service/IntentionalDepositService.java

@@ -20,12 +20,15 @@ import com.idea.customerManagement.mapper.IntentionalDepositExtendMapper;
 import com.idea.customerManagement.mapper.IntentionalDepositMapper;
 import com.idea.customerManagement.mapper.RoomSelectionInfoMapper;
 import com.idea.customerManagement.model.*;
+import com.idea.paymentManagement.mapper.PayLogMapper;
+import com.idea.paymentManagement.model.PayLog;
 import com.rockstar.common.base.BaseService;
 import com.rockstar.frame.model.FrameUser;
 import com.rockstar.frame.model.extend.DateTrans;
 import com.rockstar.frame.model.extend.Tablepar;
 import com.rockstar.frame.service.FrameUserService;
 import com.rockstar.shiro.util.ShiroUtils;
+import com.rockstar.util.StringUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -55,6 +58,10 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
     private RoomSelectionInfoMapper roomSelectionInfoMapper;
     @Autowired
     private ParkRoomMapper parkRoomMapper;
+    @Autowired
+    private ContractManageService contractManageService;
+    @Autowired
+    private PayLogMapper payLogMapper;
 
 
     @Override
@@ -133,6 +140,34 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         return serialNumber;
     }
 
+    /**
+     * 获取收据流水号(意向金编号)
+     * @param id
+     * @return
+     */
+    public String getDepositSerialNumber(String id){
+
+        IntentionalDeposit deposit = selectByPrimaryKey(id);
+        String groupId = deposit.getGroupId();
+        String discId = deposit.getDiscId();
+        ParkInfo parkInfo = parkInfoMapper.selectByPrimaryKey(groupId);
+        ParkFloorDisc parkFloorDisc = parkFloorDiscMapper.selectByPrimaryKey(discId);
+        // 查找这个小区已收取认购金的 数据量
+        RoomSelectionInfoExample example = new RoomSelectionInfoExample();
+        example.createCriteria().andGroupIdEqualTo(groupId).andStatusEqualTo(2);
+        Long count = roomSelectionInfoMapper.countByExample(example);
+        String number = "";
+        if(count.doubleValue() == 0){
+            number = "00001";
+        }else {
+            count ++;
+            number = String.format("%05d", count);
+        }
+        String serialNumber = parkInfo.getGroupName()+ parkFloorDisc.getName() + "-DJ" + number;
+        return serialNumber;
+    }
+
+
     /**
      * 意向金登记
      * @param model
@@ -222,6 +257,9 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         // 拼接房屋名称
         ParkRoomResponse response = roomExtendMapper.getFullName(houseId);
         builder.append(response.getBuildName()).append("-").append(response.getRoomNo()).append(",");
+        if (builder.length() > 0) {
+            builder.deleteCharAt(builder.length() - 1);
+        }
         customerManagement.setHouseName(builder.toString());
         customerManagementMapper.updateByPrimaryKeySelective(customerManagement);
 
@@ -237,19 +275,41 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         roomSelectionInfo.setReceivableMoney(response.getSubscriptionFunds());
         // 收取状态 意向金转入
         roomSelectionInfo.setStatus(3);
+        roomSelectionInfo.setId(IdUtil.simpleUUID());
+        roomSelectionInfo.setDepositNumber(model.getDepositSerialNumber());
         roomSelectionInfoMapper.insertSelective(roomSelectionInfo);
 
+        // 转定金后生产合同
+        String contractId = IdUtil.simpleUUID();
+        contractManageService.addContract(roomSelectionInfo,contractId);
+
+        // 新增一条定金收款记录
+        PayLog payLog = new PayLog();
+        payLog.setId(IdUtil.simpleUUID());
+        payLog.setHouseId(houseId);
+        payLog.setContractId(contractId);
+        payLog.setCustomerManagementId(customerManagementId);
+        // 收款类型 预收款
+        payLog.setPayType(1);
+        // 款项内容 定金
+        payLog.setContentType(1);
+        payLog.setPayMoney(model.getReceivedAmount());
+        payLog.setPayTime(new Date());
+        payLog.setPaymentMethod(model.getPaymentMethod());
+        payLog.setStatus(0);
+        payLogMapper.insertSelective(payLog);
+
         // 更新房间状态
         ParkRoom parkRoom = new ParkRoom();
         parkRoom.setId(response.getId());
         parkRoom.setIsChoose(1);
         parkRoomMapper.updateByPrimaryKeySelective(parkRoom);
-        if (builder.length() > 0) {
-            builder.deleteCharAt(builder.length() - 1);
-        }
+
 
         // 转定金
         model.setStatus(2);
+        model.setHandleId(ShiroUtils.getUserId());
+        model.setHandleDate(new Date());
         modelMapper.updateByPrimaryKeySelective(model);
 
         return 1;
@@ -269,6 +329,17 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         return result;
     }
 
-
+    public IntentionalDepositDto getById(String id) {
+        IntentionalDeposit intentionalDeposit = modelMapper.selectByPrimaryKey(id);
+        IntentionalDepositDto intentionalDepositDto = new IntentionalDepositDto();
+        String handleName = "";
+        if(StringUtils.isNotEmpty(intentionalDeposit.getHandleId())){
+            FrameUser frameUser = frameUserService.selectByPrimaryKey(intentionalDeposit.getHandleId());
+            handleName = frameUser == null ? "" : frameUser.getTruename();
+        }
+        BeanUtil.copyProperties(intentionalDeposit,intentionalDepositDto);
+        intentionalDepositDto.setHandleName(handleName);
+        return intentionalDepositDto;
+    }
 
 }

+ 1 - 1
pro-base/src/main/java/com/idea/customerManagement/service/RoomSelectionInfoService.java

@@ -199,7 +199,7 @@ public class RoomSelectionInfoService implements BaseService<RoomSelectionInfo,
         model.setCollectionId(ShiroUtils.getUserId());
         model.setCollectionTime(new Date());
         int result = updateByPrimaryKeySelective(model);
-        contractManageService.addContract(model);
+        contractManageService.addContract(model,null);
         // 生成合同
         return result;
     }

+ 8 - 1
pro-base/src/main/resources/mybatis/customerManagement/IntentionalDepositExtendMapper.xml

@@ -4,10 +4,17 @@
 
 
   <select id="listByModel" resultType="com.idea.customerManagement.dto.IntentionalDepositDto">
-    select intentional_deposit.*,customer_management.buyer_name,customer_management.house_name,frame_user.truename as createdName
+    select intentional_deposit.*,
+           customer_management.buyer_name,
+           customer_management.house_name,
+           frame_user.truename as createdName,
+           customer_management.house_id,
+           concat(park_info.group_name,'-',park_floor_disc.name) groupDiscName
     from intentional_deposit
     left join customer_management on customer_management.id = intentional_deposit.customer_management_id
     left join frame_user on frame_user.id = intentional_deposit.created_id
+    left join park_info on park_info.id = intentional_deposit.group_id
+    left join park_floor_disc on park_floor_disc.id = intentional_deposit.disc_id
   </select>
 
 </mapper>

+ 26 - 9
pro-base/src/main/resources/mybatis/customerManagement/IntentionalDepositMapper.xml

@@ -23,6 +23,7 @@
     <result column="refund_handle_date" jdbcType="TIMESTAMP" property="refundHandleDate" />
     <result column="status" jdbcType="INTEGER" property="status" />
     <result column="refund_money" jdbcType="DECIMAL" property="refundMoney" />
+    <result column="house_name" jdbcType="VARCHAR" property="houseName" />
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.idea.customerManagement.model.IntentionalDeposit">
     <result column="remark" jdbcType="LONGVARCHAR" property="remark" />
@@ -93,7 +94,7 @@
     id, group_id, disc_id, house_id, customer_management_id, receivable_money, received_amount,
     payment_method, serial_number, deposit_serial_number, collection_time, created_id,
     created_at, updated_at, updated_id, handle_id, handle_date, refund_handle_id, refund_handle_date,
-    status, refund_money
+    status, refund_money, house_name
   </sql>
   <sql id="Blob_Column_List">
     remark, deposit_remark, refund_remark, file_list, paper_receipts
@@ -154,9 +155,9 @@
                                      created_id, created_at, updated_at,
                                      updated_id, handle_id, handle_date,
                                      refund_handle_id, refund_handle_date, status,
-                                     refund_money, remark, deposit_remark,
-                                     refund_remark, file_list, paper_receipts
-    )
+                                     refund_money, house_name, remark,
+                                     deposit_remark, refund_remark, file_list,
+                                     paper_receipts)
     values (#{id,jdbcType=VARCHAR}, #{groupId,jdbcType=VARCHAR}, #{discId,jdbcType=VARCHAR},
             #{houseId,jdbcType=VARCHAR}, #{customerManagementId,jdbcType=VARCHAR}, #{receivableMoney,jdbcType=DECIMAL},
             #{receivedAmount,jdbcType=DECIMAL}, #{paymentMethod,jdbcType=INTEGER}, #{serialNumber,jdbcType=VARCHAR},
@@ -164,9 +165,9 @@
             #{createdId,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
             #{updatedId,jdbcType=VARCHAR}, #{handleId,jdbcType=VARCHAR}, #{handleDate,jdbcType=TIMESTAMP},
             #{refundHandleId,jdbcType=VARCHAR}, #{refundHandleDate,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER},
-            #{refundMoney,jdbcType=DECIMAL}, #{remark,jdbcType=LONGVARCHAR}, #{depositRemark,jdbcType=LONGVARCHAR},
-            #{refundRemark,jdbcType=LONGVARCHAR}, #{fileList,jdbcType=LONGVARCHAR}, #{paperReceipts,jdbcType=LONGVARCHAR}
-           )
+            #{refundMoney,jdbcType=DECIMAL}, #{houseName,jdbcType=VARCHAR}, #{remark,jdbcType=LONGVARCHAR},
+            #{depositRemark,jdbcType=LONGVARCHAR}, #{refundRemark,jdbcType=LONGVARCHAR}, #{fileList,jdbcType=LONGVARCHAR},
+            #{paperReceipts,jdbcType=LONGVARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.idea.customerManagement.model.IntentionalDeposit">
     insert into intentional_deposit
@@ -234,6 +235,9 @@
       <if test="refundMoney != null">
         refund_money,
       </if>
+      <if test="houseName != null">
+        house_name,
+      </if>
       <if test="remark != null">
         remark,
       </if>
@@ -314,6 +318,9 @@
       <if test="refundMoney != null">
         #{refundMoney,jdbcType=DECIMAL},
       </if>
+      <if test="houseName != null">
+        #{houseName,jdbcType=VARCHAR},
+      </if>
       <if test="remark != null">
         #{remark,jdbcType=LONGVARCHAR},
       </if>
@@ -403,6 +410,9 @@
       <if test="record.refundMoney != null">
         refund_money = #{record.refundMoney,jdbcType=DECIMAL},
       </if>
+      <if test="record.houseName != null">
+        house_name = #{record.houseName,jdbcType=VARCHAR},
+      </if>
       <if test="record.remark != null">
         remark = #{record.remark,jdbcType=LONGVARCHAR},
       </if>
@@ -446,6 +456,7 @@
     refund_handle_date = #{record.refundHandleDate,jdbcType=TIMESTAMP},
     status = #{record.status,jdbcType=INTEGER},
     refund_money = #{record.refundMoney,jdbcType=DECIMAL},
+    house_name = #{record.houseName,jdbcType=VARCHAR},
     remark = #{record.remark,jdbcType=LONGVARCHAR},
     deposit_remark = #{record.depositRemark,jdbcType=LONGVARCHAR},
     refund_remark = #{record.refundRemark,jdbcType=LONGVARCHAR},
@@ -477,7 +488,8 @@
     refund_handle_id = #{record.refundHandleId,jdbcType=VARCHAR},
     refund_handle_date = #{record.refundHandleDate,jdbcType=TIMESTAMP},
     status = #{record.status,jdbcType=INTEGER},
-    refund_money = #{record.refundMoney,jdbcType=DECIMAL}
+    refund_money = #{record.refundMoney,jdbcType=DECIMAL},
+    house_name = #{record.houseName,jdbcType=VARCHAR}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -545,6 +557,9 @@
       <if test="refundMoney != null">
         refund_money = #{refundMoney,jdbcType=DECIMAL},
       </if>
+      <if test="houseName != null">
+        house_name = #{houseName,jdbcType=VARCHAR},
+      </if>
       <if test="remark != null">
         remark = #{remark,jdbcType=LONGVARCHAR},
       </if>
@@ -585,6 +600,7 @@
         refund_handle_date = #{refundHandleDate,jdbcType=TIMESTAMP},
         status = #{status,jdbcType=INTEGER},
         refund_money = #{refundMoney,jdbcType=DECIMAL},
+        house_name = #{houseName,jdbcType=VARCHAR},
         remark = #{remark,jdbcType=LONGVARCHAR},
         deposit_remark = #{depositRemark,jdbcType=LONGVARCHAR},
         refund_remark = #{refundRemark,jdbcType=LONGVARCHAR},
@@ -613,7 +629,8 @@
         refund_handle_id = #{refundHandleId,jdbcType=VARCHAR},
         refund_handle_date = #{refundHandleDate,jdbcType=TIMESTAMP},
         status = #{status,jdbcType=INTEGER},
-        refund_money = #{refundMoney,jdbcType=DECIMAL}
+        refund_money = #{refundMoney,jdbcType=DECIMAL},
+        house_name = #{houseName,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
 </mapper>