Преглед изворни кода

Merge commit '086ca2cc802acb8a4228bd664c86a6bb0c623d95' into release

release_toaliyun_real
luozukai пре 7 година
родитељ
комит
ac86daa4ca
3 измењених фајлова са 39 додато и 35 уклоњено
  1. +11
    -1
      mallinkCallback/src/main/java/com/iformall/controller/device/KwBoxV1Controller.java
  2. +9
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  3. +19
    -28
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 11
- 1
mallinkCallback/src/main/java/com/iformall/controller/device/KwBoxV1Controller.java Прегледај датотеку

@@ -10,6 +10,7 @@ import com.iformall.domain.po.KwBoxCmdHistory;
import com.iformall.enums.EnumBoxRegisterStatus;
import com.iformall.service.kw.KwBoxCmdHistoryService;
import com.iformall.service.kw.KwBoxService;

import io.netty.util.internal.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -19,6 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;

@@ -135,6 +139,12 @@ public class KwBoxV1Controller extends BaseController {
record.setId(kwBox.getId());
record.setLastOnlineTime(new Date());
kwBoxService.saveOrUpdate(record);
Instant instant = deviceTime.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
if (localDateTime.getYear() == 1980)
deviceTime = new Date();

List<Map<String,String>> metersData = (List<Map<String,String>>)paramMap.get("meters");
kwBoxService.saveMeterData(kwBox, metersData, deviceTime);
@@ -147,7 +157,7 @@ public class KwBoxV1Controller extends BaseController {
{
updateMeters = true;
} else {
if (!meters.containsAll(metersData.stream().map(m->m.get("addr")).collect(Collectors.toList())))
if (!meters.containsAll(metersData.stream().map(m->m.get(KwBoxService.METER_ADDRESS)).collect(Collectors.toList())))
updateMeters = true;
}



+ 9
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java Прегледај датотеку

@@ -268,7 +268,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
}
//保存物业合同信息
String message;
boolean hasFlow = true;
if (record.getId() == null) {
hasFlow = false;
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
record.setRentalStartDate(wxRentContract.getRentalStartDate());
@@ -330,6 +332,10 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
record.setPrice(record.getPrice() != null ? record.getPrice() : 0);
record.setDeposit(record.getDeposit() != null ? record.getDeposit() : 0);
record.setUpdatetime(new Date());
if (CollectionUtils.isEmpty(record.getFlowParams())) {
hasFlow = false;
record.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode());
}
try {
wxPropertyContractMapper.updateByPrimaryKeySelective(record);
} catch (Exception e) {
@@ -340,8 +346,8 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
message = "更新物业合同信息成功";
}

if (record.getOperationType().equals(EnumContractOperationType.PART.getCode())) {
if (!CollectionUtils.isEmpty(record.getFlowParams())) {
if (hasFlow) {
if (record.getOperationType().equals(EnumContractOperationType.PART.getCode())) {
if (wxFlowService.getModelByType((Integer) record.getFlowParams().get("businessType"), record.getTenantId()) == null) {
updatePropertyContractStatus(record.getId());
} else {
@@ -355,10 +361,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
wxPropertyContractMapper.updateStatus(updateRentContract);
logger.info("id:{},启动审批流成功", record.getId().toString());
}
}
} else {
//有模板,启动审批流,没有,直接生产账单
if (!CollectionUtils.isEmpty(record.getFlowParams())) {
} else {
if (wxFlowService.getModelByType((Integer) record.getFlowParams().get("businessType"), record.getTenantId()) == null
&& record.getMerchantId() != null) {
wxRentContractService.updateRentContractStatus(record.getId());


+ 19
- 28
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Прегледај датотеку

@@ -769,7 +769,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
//按月计租
// if (wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode())
// ||wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) {
rentList = buildRentMonth(wxMerchant, userId, wxRentContract, receivePeriod, lease, rentalStartDate, price,isPreview);
rentList = buildRentMonth(userId, wxRentContract, receivePeriod, lease, rentalStartDate, price, isPreview);
// } else {
// //如果按日
// List<Date> yearList = new ArrayList<>();
@@ -830,7 +830,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return priceList;
}

public List<WxBillRent> buildRentMonth(WxMerchant wxMerchant, Long userId, WxRentContract wxRentContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview) {
public List<WxBillRent> buildRentMonth(Long userId, WxRentContract wxRentContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview) {
int size = 0;
long[] priceArrs = null;
List<Map<String, Object>> shopInfos = new ArrayList<>();
@@ -877,8 +877,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
} else {
for (int i = 1; i < size; i++) {
BigDecimal divide = priceD.add(new BigDecimal(integers.get(i)));
priceD = priceD.add(divide);
priceD = priceD.add(new BigDecimal(integers.get(i)));
priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue();
}
}
@@ -919,13 +918,27 @@ public class WxRentContractServiceImpl implements WxRentContractService {
yearList.add(startDate);
}

Map<String, Object> resultMap = buildRent(receivePeriod, priceArrs, yearList, Calendar.MONTH, wxRentContract, userId, wxMerchant, billcount, isPreview, shopInfos);

String shopInfoStr = null;
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
String rentInfo = wxRentContract.getRentInfo();
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
int rentSize = rentInfoArray.size();
Map<String, Object> shopInfoMap = new HashMap<>(rentSize);
for (int j = 0; j < rentSize; j++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(j);
shopInfoMap.put(rentInfoObject.getString("shopNumber"), rentInfoObject.getString("buildArea"));
}
shopInfoStr = JSONObject.toJSONString(shopInfoMap);
}

Map<String, Object> resultMap = buildRent(receivePeriod, priceArrs, yearList, Calendar.MONTH, wxRentContract, userId, billcount, isPreview, shopInfoStr);
List<WxBillRent> billRentList = (List<WxBillRent>)resultMap.get("billList");
resultList.addAll(billRentList);
return resultList;
}

public Map<String, Object> buildRent(int receivePeriod,long[] priceArrs, List<Date> yearList,int dayType, WxRentContract wxRentContract, Long userId, WxMerchant wxMerchant, int billcount, Integer isPreview,List<Map<String, Object>> shopInfoList) {
public Map<String, Object> buildRent(int receivePeriod, long[] priceArrs, List<Date> yearList, int dayType, WxRentContract wxRentContract, Long userId, int billcount, Integer isPreview, String shopInfoStr) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Map<String,Object> resultMap = new HashedMap();
List<WxBillRent> resultList = new ArrayList<>();
@@ -958,28 +971,6 @@ public class WxRentContractServiceImpl implements WxRentContractService {

//获取price 、shopInfo
long price = priceArrs[index];
Map<String, Object> shopInfo = null;
if(!CollectionUtils.isEmpty(shopInfoList)){
shopInfo = shopInfoList.get(index);
}

String shopInfoStr = null;
if (shopInfo != null) {
shopInfoStr = JSONObject.toJSONString(shopInfo);
} else {
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) &&
wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
String rentInfo = wxRentContract.getRentInfo();
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
int rentSize = rentInfoArray.size();
Map<String, Object> shopInfoMap = new HashMap<>();
for (int j = 0; j < rentSize; j++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(j);
shopInfoMap.put(rentInfoObject.getString("shopNumber"), 0);
}
shopInfoStr = JSONObject.toJSONString(shopInfoMap);
}
}

WxBillRent wxBillRent = new WxBillRent();
wxBillRent.setIsPreview(isPreview);


Loading…
Откажи
Сачувај