Commit 51416b3d by 李传峰

Merge branch 'feature/1008406' into 'master'

feat: [1008406] 【优化】ERP出版基金相关环节优化

See merge request rays/pcloud-book!1681
parents 9c9f46fd 4437228d
......@@ -72,4 +72,7 @@ public class BookFundDetailDto implements Serializable {
@ApiModelProperty("解冻时间")
private Date thawTime;
@ApiModelProperty("批次号")
private String batchNumber;
}
......@@ -180,4 +180,9 @@ public interface BookFundBiz {
* 同步旧数据
*/
Map<Long, BookFundDetailDto> synOldFundData(List<Long> bookIds);
/**
* 验证批次号是否重复
*/
Boolean checkRepeatBatchNumber (String batchNumber);
}
......@@ -46,6 +46,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import lombok.val;
/**
* @描述:书刊基金业务实现层
......@@ -91,8 +92,8 @@ public class BookFundBizImpl implements BookFundBiz {
BookFundDto dto=bookFundDao.getMaxEndTimeByBookId(bookId);
if(null!=dto) {
//如果endTime最大的一个复合要求就同步
if (new Date().before(dto.getStartTime()) || (new Date().after(dto.getStartTime()) && new Date().before(dto.getEndTime())) ) {
erpConsr.addFund(bookId, DateUtil.formatDateTime(dto.getStartTime()), DateUtil.formatDateTime(dto.getEndTime()), dto.getFundName(), dto.getPurchaseMoney());
if (new Date().before(dto.getEndTime())){
erpConsr.addFund(bookId, DateUtil.formatDateTime(dto.getStartTime()), DateUtil.formatDateTime(dto.getEndTime()), dto.getFundName(), dto.getPurchaseMoney(),dto.getBatchNumber());
} else {
//否则删除
erpConsr.deleteFund(bookId);
......@@ -425,6 +426,7 @@ public class BookFundBizImpl implements BookFundBiz {
return;
}
// erp逻辑,此处先解冻。
// 可能有的没有冻结
List<BookFund> list=new ArrayList<>();
BookFund build=null;
for (Long bookId : bookFund.getBookIds()) {
......@@ -482,7 +484,7 @@ public class BookFundBizImpl implements BookFundBiz {
BookFundDetailDto dto=new BookFundDetailDto();
if(CollUtil.isNotEmpty(bookFundMap) && bookFundMap.containsKey(bookId)){
List<BookFundDto> bookFundDtos = bookFundMap.get(bookId);
bookFundDtos.sort(Comparator.comparing(BookFundDto::getEndTime));
bookFundDtos.sort(Comparator.comparing(BookFundDto::getStartTime).reversed());
for (BookFundDto bookFundDto : bookFundDtos) {
Date startTime = bookFundDto.getStartTime();
Date endTime = bookFundDto.getEndTime();
......@@ -494,8 +496,8 @@ public class BookFundBizImpl implements BookFundBiz {
if (new Date().before(endTime)) {
isFundSupport = true;
}
//这些字段取最后一个
if(BookFreezeEnum.NO_FREEZE.value.equals(freezeStatus)) {
//这些字段取最后一个,因为排序是从最后开始。所以第一个取到了后面就不更新了。
if(BookFreezeEnum.NO_FREEZE.value.equals(freezeStatus) && null==dto.getStartTime()) {
dto.setStartTime(startTime);
dto.setEndTime(endTime);
dto.setFundName(bookFundDto.getFundName());
......@@ -522,4 +524,10 @@ public class BookFundBizImpl implements BookFundBiz {
}
return result;
}
@Override
public Boolean checkRepeatBatchNumber(String batchNumber) {
Integer count = bookFundDao.getCountByBatchNumber(batchNumber);
return count > 0;
}
}
......@@ -141,4 +141,6 @@ public interface BookFundDao extends BaseDao<BookFund> {
List<BookFundDto> getListByBookIds(List<Long> bookIds);
BookFundDto getMaxEndTimeByBookId(Long bookId);
Integer getCountByBatchNumber(String batchNumber);
}
......@@ -144,4 +144,11 @@ public class BookFundDaoImpl extends BaseDaoImpl<BookFund> implements BookFundDa
paramMap.put("bookId",bookId);
return super.getSqlSession().selectOne(this.getStatement("getMaxEndTimeByBookId"), paramMap);
}
@Override
public Integer getCountByBatchNumber(String batchNumber) {
Map<String, Object> paramMap=new HashMap<>();
paramMap.put("batchNumber",batchNumber);
return super.getSqlSession().selectOne(this.getStatement("getCountByBatchNumber"), paramMap);
}
}
......@@ -119,4 +119,15 @@ public class BookFreezeFacadeImpl implements BookFreezeFacade {
public ResponseDto<List<BookFreezeInfoDto>> listBookFreezeInfo(@RequestBody List<Long> bookIds){
return new ResponseDto<>(bookFreezeBiz.listBookFreezeInfo(bookIds));
}
@ApiOperation("filterFreezeBook")
@PostMapping("filterFreezeBook")
public ResponseDto<List<Long>> filterFreezeBook(@RequestBody List<Long> bookIds){
return new ResponseDto<>(bookFreezeBiz.filterFreezeBook(bookIds));
}
@PostMapping("listFreezeInfo")
public ResponseDto<List<BookFreezeDto>> listFreezeInfo(@RequestBody List<Long> bookIds){
return new ResponseDto<>(bookFreezeBiz.listFreezeInfo(bookIds));
}
}
package com.pcloud.book.book.facade.impl;
import com.pcloud.book.book.biz.BookFundBiz;
import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.dto.BookFundDto;
import com.pcloud.book.book.entity.BookFund;
import com.pcloud.book.book.facade.BookFundFacade;
......@@ -12,6 +13,7 @@ import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -145,4 +147,12 @@ public class BookFundFacadeImpl implements BookFundFacade {
return new ResponseDto<>(bookFundBiz.synOldFundData(bookIds));
}
/**
* 验证批次号是否重复
*/
@RequestMapping("checkRepeatBatchNumber")
public ResponseDto<Boolean> checkRepeatBatchNumber(@RequestParam(value = "batchNumber") String batchNumber){
return new ResponseDto<>(bookFundBiz.checkRepeatBatchNumber(batchNumber));
}
}
......@@ -465,13 +465,14 @@ public class ErpConsr {
/**
* 添加基金书刊
*/
public void addFund(Long bookId, String startTime, String endTime, String fundName, BigDecimal purchaseMoney) {
public void addFund(Long bookId, String startTime, String endTime, String fundName, BigDecimal purchaseMoney,String batchNumber) {
Map<String, String> querys = new HashMap<>();
querys.put("bookId", bookId.toString());
querys.put("startTime", startTime);
querys.put("endTime", endTime);
querys.put("fundName", fundName);
querys.put("purchaseMoney", purchaseMoney.toString());
querys.put("batchNumber", batchNumber);
try {
HttpResponse response = HttpUtils.doGet(domain, "/erp/project4Third/addFund", "GET", new HashMap<>(), querys);
String entityString = EntityUtils.toString(response.getEntity());
......
......@@ -311,4 +311,10 @@
limit 1
</select>
<select id="getCountByBatchNumber" parameterType="map" resultType="Integer">
select ifnull(count(1),0)
from BOOK_FUND
where BATCH_NUMBER=#{batchNumber}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment