java110 лет назад: 5
Родитель
Сommit
7afd3a4121

+ 6 - 2
docs/operateDoc/README.md

@@ -14,7 +14,11 @@ HC小区物业管理系统是由java110团队于2017年4月份发起的前后端
 [https://hc.demo.winqi.cn](https://hc.demo.winqi.cn)
 
 
-## 1.1.3 产品源码
+## 1.1.3 功能图
+
+![image](img/func.png)
+
+## 1.1.4 产品源码
 
 #### HC小区后端代码
 [https://gitee.com/wuxw7/MicroCommunity](https://gitee.com/wuxw7/MicroCommunity)
@@ -28,7 +32,7 @@ HC小区物业管理系统是由java110团队于2017年4月份发起的前后端
 #### HC掌上物业
 [https://gitee.com/java110/PropertyApp](https://gitee.com/java110/PropertyApp)
 
-## 关于我们
+## 1.1.5 关于我们
 
 HC小区管理系统交流群 827669685(已满),799748606(群二)
 

BIN
docs/operateDoc/img/func.png


+ 4 - 4
java110-core/src/main/java/com/java110/core/aop/Java110TransactionalAop.java

@@ -53,19 +53,19 @@ public class Java110TransactionalAop {
             logger.debug("请求头信息 key= " + key+",value = "+value);
 
             key = key.toLowerCase();
-            if (CommonConstant.APP_ID.equals(key)) {
+            if (CommonConstant.APP_ID.equals(key) || CommonConstant.HTTP_APP_ID.equals(key)) {
                 orderDto.setAppId(value);
             }
-            if (CommonConstant.TRANSACTION_ID.equals(key)) {
+            if (CommonConstant.TRANSACTION_ID.equals(key)|| CommonConstant.HTTP_TRANSACTION_ID.equals(key)) {
                 orderDto.setExtTransactionId(value);
             }
-            if (CommonConstant.REQUEST_TIME.equals(key)) {
+            if (CommonConstant.REQUEST_TIME.equals(key)|| CommonConstant.HTTP_REQ_TIME.equals(key)) {
                 orderDto.setRequestTime(value);
             }
             if (OrderDto.O_ID.equals(key)) {
                 orderDto.setoId(value);
             }
-            if (CommonConstant.USER_ID.equals(key)) {
+            if (CommonConstant.USER_ID.equals(key)|| CommonConstant.HTTP_USER_ID.equals(key)) {
                 orderDto.setUserId(value);
             }
         }

+ 6 - 12
service-fee/src/main/java/com/java110/fee/api/FeeApi.java

@@ -6,11 +6,7 @@ import com.java110.core.context.BusinessServiceDataFlow;
 import com.java110.core.factory.DataTransactionFactory;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.fee.bmo.IImportRoomFee;
-import com.java110.fee.bmo.IPayOweFee;
-import com.java110.fee.bmo.IQueryFeeByAttr;
-import com.java110.fee.bmo.IQueryOweFee;
-import com.java110.fee.bmo.IQueryParkspaceFee;
+import com.java110.fee.bmo.*;
 import com.java110.fee.smo.IFeeServiceSMO;
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.exception.InitConfigDataException;
@@ -20,11 +16,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
@@ -218,11 +210,13 @@ public class FeeApi extends BaseController {
     /**
      * 费用导入
      *
-     * @param reqJson
+     * @param reqString
      * @return
      */
     @RequestMapping(value = "/importRoomFees", method = RequestMethod.POST)
-    public ResponseEntity<String> importRoomFees(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> importRoomFees(@RequestBody String reqString) {
+
+        JSONObject reqJson = JSONObject.parseObject(reqString);
         Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息");
         Assert.hasKeyAndValue(reqJson, "feeTypeCd", "未包含费用类型");
         Assert.hasKeyAndValue(reqJson, "storeId", "未包含商户信息");

+ 1 - 0
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java

@@ -184,6 +184,7 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
         payFeeConfigPo.setPaymentCd("2100");
         payFeeConfigPo.setFeeName(IMPORT_FEE_NAME);
         payFeeConfigPo.setSquarePrice("0");
+        payFeeConfigPo.setPaymentCycle("1");
         payFeeConfigPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         int saveFlag = feeConfigInnerServiceSMOImpl.saveFeeConfig(payFeeConfigPo);
 

+ 1 - 1
service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportRoomSMOImpl.java

@@ -58,7 +58,7 @@ public class ExportRoomSMOImpl extends BaseComponentSMO implements IExportRoomSM
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         MultiValueMap headers = new HttpHeaders();
         headers.add("content-type", "application/octet-stream;charset=UTF-8");
-        headers.add("Content-Disposition", "attachment;filename=feeImport_" + DateUtil.getyyyyMMddhhmmssDateString() + ".xls");
+        headers.add("Content-Disposition", "attachment;filename=feeImport_" + DateUtil.getyyyyMMddhhmmssDateString() + ".xlsx");
         headers.add("Pargam", "no-cache");
         headers.add("Cache-Control", "no-cache");
         //headers.add("Content-Disposition", "attachment; filename=" + outParam.getString("fileName"));

+ 38 - 5
service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportRoomFeeSMOImpl.java

@@ -26,7 +26,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -98,6 +100,7 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
         data.put("importFeeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         data.put("storeId", result.getStoreId());
         data.put("userId", result.getUserId());
+        data.put("communityId", result.getCommunityId());
 
         List<ImportRoomFee> tmpImportRoomFees = new ArrayList<>();
         for (int roomIndex = 0; roomIndex < roomFees.size(); roomIndex++) {
@@ -143,7 +146,7 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
      */
     private void getRooms(Workbook workbook, List<ImportRoomFee> rooms) {
         Sheet sheet = null;
-        sheet = ImportExcelUtils.getSheet(workbook, "房屋信息");
+        sheet = ImportExcelUtils.getSheet(workbook, "房屋费用信息");
         List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
         ImportRoomFee importRoomFee = null;
         for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
@@ -166,21 +169,51 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
             Assert.hasValue(os[5], (osIndex + 1) + "行结束时间不能为空");
             Assert.hasValue(os[6], (osIndex + 1) + "行费用不能为空");
 
-            Assert.isDate(os[4].toString(), DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD 文本格式");
-            Assert.isDate(os[5].toString(), DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD 文本格式");
+//
+
+            String startTime = excelDoubleToDate(os[4].toString());
+            String endTime = excelDoubleToDate(os[5].toString());
+            Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD 文本格式");
+            Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD 文本格式");
+
 
             importRoomFee = new ImportRoomFee();
             importRoomFee.setFloorNum(os[0].toString());
             importRoomFee.setUnitNum(os[1].toString());
             importRoomFee.setRoomNum(os[2].toString());
             importRoomFee.setFeeName(os[3].toString());
-            importRoomFee.setStartTime(os[4].toString());
-            importRoomFee.setEndTime(os[5].toString());
+            importRoomFee.setStartTime(startTime);
+            importRoomFee.setEndTime(endTime);
             importRoomFee.setAmount(os[6].toString());
             rooms.add(importRoomFee);
         }
     }
 
+
+    //解析Excel日期格式
+    public static String excelDoubleToDate(String strDate) {
+        if (strDate.length() == 5) {
+            try {
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                Date tDate = DoubleToDate(Double.parseDouble(strDate));
+                return sdf.format(tDate);
+            } catch (Exception e) {
+                e.printStackTrace();
+                return strDate;
+            }
+        }
+        return strDate;
+    }
+
+    //解析Excel日期格式
+    public static Date DoubleToDate(Double dVal) {
+        Date tDate = new Date();
+        long localOffset = tDate.getTimezoneOffset() * 60000; //系统时区偏移 1900/1/1 到 1970/1/1 的 25569 天
+        tDate.setTime((long) ((dVal - 25569) * 24 * 3600 * 1000 + localOffset));
+
+        return tDate;
+    }
+
     public RestTemplate getRestTemplate() {
         return restTemplate;
     }