Procházet zdrojové kódy

优化 非因公加入批次

java110 před 4 roky
rodič
revize
b18faca8d7

+ 41 - 1
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportFeeDetailSMOImpl.java

@@ -10,9 +10,14 @@ import com.java110.core.smo.ISaveTransactionLogSMO;
 import com.java110.dto.assetImportLog.AssetImportLogDto;
 import com.java110.dto.assetImportLogDetail.AssetImportLogDetailDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.assetImport.ImportRoomFee;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.api.smo.assetImport.IImportFeeDetailSMO;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
@@ -56,6 +61,13 @@ public class ImportFeeDetailSMOImpl extends DefaultAbstractComponentSMO implemen
     @Autowired
     private ISaveTransactionLogSMO saveTransactionLogSMOImpl;
 
+
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
 
@@ -160,11 +172,14 @@ public class ImportFeeDetailSMOImpl extends DefaultAbstractComponentSMO implemen
             throw new IllegalArgumentException("没有数据需要处理");
         }
 
+        //生成批次
         JSONObject data = JSONObject.parseObject(pd.getReqData());
+        data.put("userId", pd.getUserId());
+        data.put("communityId", result.getCommunityId());
+        generatorBatch(data);
         data.put("importFeeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         data.put("storeId", result.getStoreId());
         data.put("userId", result.getUserId());
-        data.put("communityId", result.getCommunityId());
         AssetImportLogDto assetImportLogDto = new AssetImportLogDto();
         assetImportLogDto.setSuccessCount(0L);
         assetImportLogDto.setErrorCount(0L);
@@ -306,7 +321,32 @@ public class ImportFeeDetailSMOImpl extends DefaultAbstractComponentSMO implemen
             rooms.add(importRoomFee);
         }
     }
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
 
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
 
     //解析Excel日期格式
     public static String excelDoubleToDate(String strDate) {

+ 1 - 0
service-fee/src/main/java/com/java110/fee/api/PayFeeDetailApi.java

@@ -32,6 +32,7 @@ public class PayFeeDetailApi {
         JSONObject reqJson = JSONObject.parseObject(reqJsonStr);
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
         Assert.hasKeyAndValue(reqJson, "objType", "请求报文中未包含费用对象");
+        Assert.hasKeyAndValue(reqJson, "batchId", "请求报文中未包含批次");
 
 
 

+ 11 - 9
service-fee/src/main/java/com/java110/fee/bmo/payFeeDetail/impl/ImportPayFeeDetailBMOImpl.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeConfigDto;
-import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.entity.assetImport.ImportRoomFee;
 import com.java110.fee.bmo.payFeeDetail.IImportPayFeeBMODetail;
@@ -63,6 +62,7 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
         String storeId = reqJson.getString("storeId");
         String userId = reqJson.getString("userId");
         String objType = reqJson.getString("objType");
+        String batchId = reqJson.getString("batchId");
 
         JSONArray datas = reqJson.getJSONArray("importRoomFees");
 
@@ -78,34 +78,34 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
             return ResultVo.success();
         }
         if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(objType)) {
-            importFeeDetails(storeId, userId, importRoomFees);
+            importFeeDetails(storeId, userId, importRoomFees, batchId);
         } else {
-            importCarFeeDetails(storeId, userId, importRoomFees);
+            importCarFeeDetails(storeId, userId, importRoomFees, batchId);
         }
 
         return ResultVo.success();
     }
 
-    private void importFeeDetails(String storeId, String userId, List<ImportRoomFee> importRoomFees) {
+    private void importFeeDetails(String storeId, String userId, List<ImportRoomFee> importRoomFees, String batchId) {
 
         importRoomFees = roomInnerServiceSMOImpl.freshRoomIds(importRoomFees);
         for (ImportRoomFee importRoomFee : importRoomFees) {
             if (StringUtil.isEmpty(importRoomFee.getRoomId())) {
                 continue;
             }
-            importFeeDetail(importRoomFee, storeId, userId);
+            importFeeDetail(importRoomFee, storeId, userId, batchId);
         }
     }
 
 
-    private void importCarFeeDetails(String storeId, String userId, List<ImportRoomFee> importCarFees) {
+    private void importCarFeeDetails(String storeId, String userId, List<ImportRoomFee> importCarFees, String batchId) {
 
         importCarFees = ownerCarInnerServiceSMOImpl.freshCarIds(importCarFees);
         for (ImportRoomFee importCarFee : importCarFees) {
             if (StringUtil.isEmpty(importCarFee.getCarId())) {
                 continue;
             }
-            importCarFeeDetail(importCarFee, storeId, userId);
+            importCarFeeDetail(importCarFee, storeId, userId, batchId);
         }
     }
 
@@ -114,7 +114,7 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
      *
      * @param importRoomFee
      */
-    private void importCarFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId) {
+    private void importCarFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId, String batchId) {
 
         FeeConfigDto feeConfigDto = new FeeConfigDto();
         feeConfigDto.setFeeNameEq(importRoomFee.getFeeName());
@@ -145,6 +145,7 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
                 payFeePo.setFeeFlag(tmpFeeConfigDto.getFeeFlag());
                 payFeePo.setFeeTypeCd(tmpFeeConfigDto.getFeeTypeCd());
                 payFeePo.setIncomeObjId(storeId);
+                payFeePo.setBatchId(batchId);
                 if (FeeDto.FEE_FLAG_ONCE.equals(tmpFeeConfigDto.getFeeFlag())) {
                     payFeePo.setState(FeeDto.STATE_FINISH);
                 } else {
@@ -178,7 +179,7 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
      *
      * @param importRoomFee
      */
-    private void importFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId) {
+    private void importFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId, String batchId) {
 
         FeeConfigDto feeConfigDto = new FeeConfigDto();
         feeConfigDto.setFeeName(importRoomFee.getFeeName());
@@ -209,6 +210,7 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
                 payFeePo.setFeeFlag(tmpFeeConfigDto.getFeeFlag());
                 payFeePo.setFeeTypeCd(tmpFeeConfigDto.getFeeTypeCd());
                 payFeePo.setIncomeObjId(storeId);
+                payFeePo.setBatchId(batchId);
                 if (FeeDto.FEE_FLAG_ONCE.equals(tmpFeeConfigDto.getFeeFlag())) {
                     payFeePo.setState(FeeDto.STATE_FINISH);
                 } else {