Commit 9018c100 by huluobin

update

parent 556d3d98
...@@ -228,7 +228,8 @@ public class CostCheckController { ...@@ -228,7 +228,8 @@ public class CostCheckController {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
CashierCallbackUrlVo cashierCallbackUrlVo = null; CashierCallbackUrlVo cashierCallbackUrlVo = null;
CostCashiercallbackDomain costCashiercallbackDomain = new CostCashiercallbackDomain();check/lend/CashierCallbackUrl CostCashiercallbackDomain costCashiercallbackDomain = new CostCashiercallbackDomain();
check / lend / CashierCallbackUrl
BigDecimal toRmbRate = null; // 转人民币汇率 BigDecimal toRmbRate = null; // 转人民币汇率
try { try {
cashierCallbackUrlVo = mapper.readValue(line, CashierCallbackUrlVo.class); cashierCallbackUrlVo = mapper.readValue(line, CashierCallbackUrlVo.class);
...@@ -393,6 +394,7 @@ public class CostCheckController { ...@@ -393,6 +394,7 @@ public class CostCheckController {
requestEntity.add("ApplyCallbackUrl", costApplyCallbackUrlPost); // 审核回调地址(ApplyCallbackUrl)不可为空; requestEntity.add("ApplyCallbackUrl", costApplyCallbackUrlPost); // 审核回调地址(ApplyCallbackUrl)不可为空;
requestEntity.add("CashierCallbackUrl", costCashierCallbackUrlPost); // 出纳回调地址(CashierCallbackUrl)不可为空; requestEntity.add("CashierCallbackUrl", costCashierCallbackUrlPost); // 出纳回调地址(CashierCallbackUrl)不可为空;
} }
requestEntity.add("UnitCode", cost.getDic()); // 币种编号(UnitCode)不可为空; requestEntity.add("UnitCode", cost.getDic()); // 币种编号(UnitCode)不可为空;
requestEntity.add("UnitName", cost.getDic()); // 币种名称(UnitName)不可为空; requestEntity.add("UnitName", cost.getDic()); // 币种名称(UnitName)不可为空;
// 交易对象改为付款/收款单位 // 交易对象改为付款/收款单位
......
...@@ -16,8 +16,7 @@ import com.blt.other.module.cost.service.CostListSearchService; ...@@ -16,8 +16,7 @@ import com.blt.other.module.cost.service.CostListSearchService;
import com.blt.other.module.cost.service.CostLogService; import com.blt.other.module.cost.service.CostLogService;
import com.blt.other.module.cost.service.CostService; import com.blt.other.module.cost.service.CostService;
import com.blt.other.module.cost.service.impl.cost.CostServiceFactory; import com.blt.other.module.cost.service.impl.cost.CostServiceFactory;
import com.blt.other.module.cost.service.impl.costcheck.CostContext; import com.blt.other.module.cost.service.impl.costcheck.*;
import com.blt.other.module.cost.service.impl.costcheck.UnSubmitState;
import com.blt.other.module.cost.vo.CostExportVo; import com.blt.other.module.cost.vo.CostExportVo;
import com.blt.other.module.cost.vo.CostListPrintVo; import com.blt.other.module.cost.vo.CostListPrintVo;
import com.blt.other.module.cost.vo.CostListSearchKeysVo; import com.blt.other.module.cost.vo.CostListSearchKeysVo;
...@@ -225,7 +224,6 @@ public class CostController { ...@@ -225,7 +224,6 @@ public class CostController {
@GetMapping("/check/departmentCheck") @GetMapping("/check/departmentCheck")
public CostResult<Void> departmentCheck(@RequestParam String costNo, public CostResult<Void> departmentCheck(@RequestParam String costNo,
@RequestParam Integer userid) { @RequestParam Integer userid) {
costService = CostServiceFactory.getCostService(costNo);
costService.departmentCheck(costNo, userid); costService.departmentCheck(costNo, userid);
return CostResult.success(); return CostResult.success();
} }
...@@ -234,7 +232,10 @@ public class CostController { ...@@ -234,7 +232,10 @@ public class CostController {
@ApiOperation("部门审核驳回") @ApiOperation("部门审核驳回")
public CostResult<Void> departmentCheckRefuse(@RequestParam String costNo, public CostResult<Void> departmentCheckRefuse(@RequestParam String costNo,
@RequestParam Integer userid) { @RequestParam Integer userid) {
costService = CostServiceFactory.getCostService(costNo); CostContext costContext = new CostContext(costNo, userid);
costContext.setCostState(new DepartmentCheckState());
costContext.refuse();
return CostResult.success(); return CostResult.success();
} }
...@@ -242,8 +243,9 @@ public class CostController { ...@@ -242,8 +243,9 @@ public class CostController {
@ApiOperation("财务审核通过") @ApiOperation("财务审核通过")
public CostResult<Void> financialCheck(@RequestParam String costNo, public CostResult<Void> financialCheck(@RequestParam String costNo,
@RequestParam Integer userid) { @RequestParam Integer userid) {
costService = CostServiceFactory.getCostService(costNo); CostContext costContext = new CostContext(costNo, userid);
costService.financialCheck(costNo, userid); costContext.setCostState(new FinancialCheckState());
costContext.handle();
return CostResult.success(); return CostResult.success();
} }
...@@ -251,7 +253,9 @@ public class CostController { ...@@ -251,7 +253,9 @@ public class CostController {
@ApiOperation("财务审核驳回") @ApiOperation("财务审核驳回")
public CostResult<Void> financialRefuse(@RequestParam String costNo, public CostResult<Void> financialRefuse(@RequestParam String costNo,
@RequestParam Integer userid) { @RequestParam Integer userid) {
costService = CostServiceFactory.getCostService(costNo); CostContext costContext = new CostContext(costNo, userid);
costContext.setCostState(new FinancialCheckState());
costContext.handle();
return CostResult.success(); return CostResult.success();
} }
...@@ -259,8 +263,9 @@ public class CostController { ...@@ -259,8 +263,9 @@ public class CostController {
@ApiOperation("最终审核通过") @ApiOperation("最终审核通过")
public CostResult<Void> finalCheck(@RequestParam String costNo, public CostResult<Void> finalCheck(@RequestParam String costNo,
@RequestParam Integer userid) { @RequestParam Integer userid) {
costService = CostServiceFactory.getCostService(costNo); CostContext costContext = new CostContext(costNo, userid);
costService.finalCheck(costNo, userid); costContext.setCostState(new FinalCheckState());
costContext.handle();
return CostResult.success(); return CostResult.success();
} }
...@@ -268,7 +273,9 @@ public class CostController { ...@@ -268,7 +273,9 @@ public class CostController {
@ApiOperation("最终审核人驳回") @ApiOperation("最终审核人驳回")
public CostResult<Void> finalRefuse(@RequestParam String costNo, public CostResult<Void> finalRefuse(@RequestParam String costNo,
@RequestParam Integer userid) { @RequestParam Integer userid) {
costService = CostServiceFactory.getCostService(costNo); CostContext costContext = new CostContext(costNo, userid);
costContext.setCostState(new FinalCheckState());
costContext.refuse();
return CostResult.success(); return CostResult.success();
} }
......
...@@ -98,33 +98,6 @@ public interface CostService { ...@@ -98,33 +98,6 @@ public interface CostService {
/** /**
* 部门审核
*
* @param currentUserId 当前用户id
* @param costNo 费用单
*/
void departmentCheck(String costNo, Integer currentUserId);
/**
* 财务审核
*
* @param costNo 费用单号
* @param currentUserId 当前用户id
*/
void financialCheck(String costNo, Integer currentUserId);
/**
* 最终审核
*
* @param costNo 费用单号
* @param currentUserId 当前用户id
*/
void finalCheck(String costNo, Integer currentUserId);
/**
* 审核费用单列表 * 审核费用单列表
* *
* @param pageSize page * @param pageSize page
......
package com.blt.other.module.cost.service.impl.cost; package com.blt.other.module.cost.service.impl.cost;
import com.bailuntec.api.bailuntec.cw.CwApi;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.cost.api.dto.CostDto; import com.bailuntec.cost.api.dto.CostDto;
import com.bailuntec.cost.api.dto.CostListPrintDto; import com.bailuntec.cost.api.dto.CostListPrintDto;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -9,7 +11,6 @@ import com.blt.other.common.exception.BizRuntimeException; ...@@ -9,7 +11,6 @@ import com.blt.other.common.exception.BizRuntimeException;
import com.blt.other.common.util.MoneyUtil; import com.blt.other.common.util.MoneyUtil;
import com.blt.other.module.auth.dao.CostReviewerMapper; import com.blt.other.module.auth.dao.CostReviewerMapper;
import com.blt.other.module.auth.dao.OaUserMapper; import com.blt.other.module.auth.dao.OaUserMapper;
import com.blt.other.module.auth.model.CostReviewer;
import com.blt.other.module.auth.service.UserService; import com.blt.other.module.auth.service.UserService;
import com.blt.other.module.cost.dao.CostCompanyDao; import com.blt.other.module.cost.dao.CostCompanyDao;
import com.blt.other.module.cost.dao.CostDao; import com.blt.other.module.cost.dao.CostDao;
...@@ -19,14 +20,12 @@ import com.blt.other.module.cost.dto.CostApiDto; ...@@ -19,14 +20,12 @@ import com.blt.other.module.cost.dto.CostApiDto;
import com.blt.other.module.cost.dto.CostPageResult; import com.blt.other.module.cost.dto.CostPageResult;
import com.blt.other.module.cost.model.CostDetailDomain; import com.blt.other.module.cost.model.CostDetailDomain;
import com.blt.other.module.cost.model.CostDomain; import com.blt.other.module.cost.model.CostDomain;
import com.blt.other.module.cost.model.CostTemplate;
import com.blt.other.module.cost.service.CostLogService; import com.blt.other.module.cost.service.CostLogService;
import com.blt.other.module.cost.service.CostService; import com.blt.other.module.cost.service.CostService;
import com.blt.other.module.cost.service.CostTofinanceService;
import com.blt.other.module.cost.service.ICostTemplateService; import com.blt.other.module.cost.service.ICostTemplateService;
import com.blt.other.module.cost.service.impl.costcheck.CostContext;
import com.blt.other.module.cost.service.impl.costcheck.DepartmentCheckState; import com.blt.other.module.cost.service.impl.costcheck.DepartmentCheckState;
import com.blt.other.module.database.model.CostCompanyDomain; import com.blt.other.module.database.model.CostCompanyDomain;
import com.blt.other.module.database.model.CostLogDomain;
import com.blt.other.module.database.model.CostTypeKindDomain; import com.blt.other.module.database.model.CostTypeKindDomain;
import com.blt.other.module.database.model.UserDomain; import com.blt.other.module.database.model.UserDomain;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
...@@ -34,12 +33,14 @@ import com.github.pagehelper.PageInfo; ...@@ -34,12 +33,14 @@ import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -54,6 +55,23 @@ import java.util.stream.Collectors; ...@@ -54,6 +55,23 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public abstract class AbstractCostService implements CostService { public abstract class AbstractCostService implements CostService {
@Autowired
CwApi cwApi;
@Value("${url.my.costApplyCallbackUrlPost}")
String costApplyCallbackUrlPost;
@Value("${url.my.costCashierCallbackUrlPost}")
String costCashierCallbackUrlPost;
@Value("${url.my.lendCostApplyCallBackUrlPost}")
String lendCostApplyCallBackUrlPost;
@Value("${url.my.lendCostCashierCallbackUrlPost}")
String lendCostCashierCallbackUrlPost;
@Autowired
CostTofinanceService costTofinanceService;
@Autowired @Autowired
CostDao costDao; CostDao costDao;
@Autowired @Autowired
...@@ -173,7 +191,6 @@ public abstract class AbstractCostService implements CostService { ...@@ -173,7 +191,6 @@ public abstract class AbstractCostService implements CostService {
return costDao.updateById(costDomain); return costDao.updateById(costDomain);
} }
@Override @Override
public void updateCashierAnnex(String costNo, String filePath, String downloadUrl) { public void updateCashierAnnex(String costNo, String filePath, String downloadUrl) {
costDao.updateCashierAnnex(costNo, filePath, downloadUrl); costDao.updateCashierAnnex(costNo, filePath, downloadUrl);
...@@ -184,34 +201,6 @@ public abstract class AbstractCostService implements CostService { ...@@ -184,34 +201,6 @@ public abstract class AbstractCostService implements CostService {
return printNos.stream().map(this::printDto).collect(Collectors.toList()); return printNos.stream().map(this::printDto).collect(Collectors.toList());
} }
@Resource
DepartmentCheckState departmentCheckState;
@Transactional
@Override
public void departmentCheck(String costNo, Integer currentUserId) {
CostContext costContext = new CostContext(costNo, currentUserId);
costContext.setCostState(departmentCheckState);
costContext.handle();
}
@Transactional
@Override
public void financialCheck(String costNo, Integer currentUserId) {
CostDomain costDomain = costDao.selectByCostNo(costNo);
CostTemplate costTemplate = costTemplateService.queryDetail(costDomain.getCostTemplateId());
}
protected void financialManualCheck(String costNo, Integer currentUserId) {
}
@Transactional @Transactional
@Override @Override
public IPage<CostDto> checkCostList(Integer userid, Integer pageNum, Integer pageSize, Integer type) { public IPage<CostDto> checkCostList(Integer userid, Integer pageNum, Integer pageSize, Integer type) {
...@@ -312,4 +301,75 @@ public abstract class AbstractCostService implements CostService { ...@@ -312,4 +301,75 @@ public abstract class AbstractCostService implements CostService {
} }
return print; return print;
} }
PostApplyReq buildPostApplyReq(CostDomain cost) {
CostCompanyDomain companyByCompanyNo = costCompanyDao.selectByNo(cost.getCompanyNo());
PostApplyReq req = new PostApplyReq();
// 公司主体(CompanyMainName)不可为空;
req.setCompanyMainName(cost.getCompanyName());
req.setTitle(cost.getCostNo());
// if (cost.getCostNo().startsWith("S")) {
// log.info("补差额的付款单:" + cost.getCostNo());
// applyMoneyDetail.setName("借支单补差额");
// // 审核回调地址(ApplyCallbackUrl)不可为空;
// req.setApplyCallbackUrl(lendCostApplyCallBackUrlPost);
// // 出纳回调地址(CashierCallbackUrl)不可为空;
// req.setCashierCallbackUrl(lendCostCashierCallbackUrlPost);
//
// } else {
// // 审核回调地址(ApplyCallbackUrl)不可为空;
// req.setApplyCallbackUrl(costApplyCallbackUrlPost);
// // 出纳回调地址(CashierCallbackUrl)不可为空;
// req.setApplyCallbackUrl(costCashierCallbackUrlPost);
// }
// 币种编号(UnitCode)不可为空;
req.setUnitCode(cost.getDic());
// 币种名称(UnitName)不可为空;
req.setUnitName(cost.getDic());
// 交易对象改为付款/收款单位
// 交易对象(TradeObjectID/TradeObjectName)不可为空;
req.setTradeObjectID(companyByCompanyNo.getValue() + "");
req.setTradeObjectName(cost.getBankCompany() + "");
req.setBankCardto(cost.getBankCard());
// 交易对象账户(BankNameto/BankCardto/BankCardUserto)资料不完整;
req.setBankCardUserto(cost.getBankCardUser());
// newOtherPurchase申请来源(SourceCode/SourceTypeCode)不可为空;
req.setSourceCode("newCost");
req.setSourceTypeCode("newCostType");
// 账期 0 PayDay
req.setPayDay(0);
// 预计付款时间 ExpectPayTime
req.setExpectPayTime(new Date());
// // 申请类型(ApplyType)不存在;申请类型:1#付款;2#收款;3#无需付款;
// if (1 == cost.getCostForm()) {
// req.setApplyType("" + 1);
// applyMoneyDetail.setName("费用单付款");
// } else if (2 == cost.getCostForm()) {
// req.setApplyType("" + 2);
// applyMoneyDetail.setName("费用单收款");
// } else if (3 == cost.getCostForm() && 1 == cost.getIsLend()) {
// req.setApplyType("" + 1);
// applyMoneyDetail.setName("借支单付款");
// }
// 申请人(UserAcctID/UserAcctName)不存在;
req.setUserAcctID("" + cost.getCreateUserid());
req.setUserAcctName("" + cost.getCreateUsername());
// 设置 detailKey
String detailKey = cost.getDetailKey();
if (null == detailKey || !detailKey.contains("F")) {
detailKey = cost.getCostNo();
}
// 回调必要的key参数(DetailKey)不能为空;
req.setDetailKey(detailKey);
req.setTypeName(cost.getTypeName());
return req;
}
} }
package com.blt.other.module.cost.service.impl.cost; package com.blt.other.module.cost.service.impl.cost;
import com.bailuntec.api.bailuntec.cw.request.ApplyMoneyDetail;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.CwResult;
import com.bailuntec.common.BeanUtils;
import com.bailuntec.common.JsonUtilByJackson;
import com.blt.other.module.cost.model.CostDomain;
import com.blt.other.module.cost.service.CostService; import com.blt.other.module.cost.service.CostService;
import com.blt.other.module.cost.vo.TofinanceVo;
import com.blt.other.module.database.model.CostTofinanceDomain;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* <p> * <p>
* *
...@@ -11,10 +23,43 @@ import org.springframework.stereotype.Service; ...@@ -11,10 +23,43 @@ import org.springframework.stereotype.Service;
* @author robbendev * @author robbendev
* @since 2020/10/29 11:35 上午 * @since 2020/10/29 11:35 上午
*/ */
@Slf4j
@Service @Service
public class Lend1CostServiceImpl extends AbstractCostService implements CostService { public class Lend1CostServiceImpl extends AbstractCostService implements CostService {
@Override @Override
public void finalCheck(String costNo, Integer currentUserId) { public void toFinancial(CostDomain cost) {
PostApplyReq req = super.buildPostApplyReq(cost);
// 审核回调地址(ApplyCallbackUrl)不可为空;
req.setApplyCallbackUrl(costApplyCallbackUrlPost);
// 出纳回调地址(CashierCallbackUrl)不可为空;
req.setApplyCallbackUrl(costCashierCallbackUrlPost);
req.setApplyType("" + 1);
List<ApplyMoneyDetail> applyMoneyDetailList = new ArrayList<>();
ApplyMoneyDetail applyMoneyDetail = new ApplyMoneyDetail();
applyMoneyDetail.setName("借支单付款");
applyMoneyDetail.setMoney(cost.getAmount());
//todo
applyMoneyDetail.setMoneyRmb(cost.getAmount());
applyMoneyDetail.setRemark("");
applyMoneyDetailList.add(applyMoneyDetail);
// 出纳申请金额明细(MoneyDetail)不可为空;
req.setMoneyDetail(applyMoneyDetailList);
CwResult<String> cwResult = cwApi.postApply(req);
TofinanceVo tofinanceVo = JsonUtilByJackson.readValue(cwResult.getData().replaceAll("/^['|\"](.*)['|\"]$/", ""), TofinanceVo.class);
//保存财务系统调用信息
CostTofinanceDomain costTofinanceDomain = new CostTofinanceDomain();
BeanUtils.copyProperties(costTofinanceDomain, tofinanceVo);
costTofinanceDomain.setCostNo(cost.getCostNo().toUpperCase());
costTofinanceDomain.setCode(costTofinanceDomain.getCode().toUpperCase());
costTofinanceService.saveCostTofinanceMsg(costTofinanceDomain);
} }
} }
package com.blt.other.module.cost.service.impl.cost; package com.blt.other.module.cost.service.impl.cost;
import com.bailuntec.api.bailuntec.cw.CwApi;
import com.bailuntec.api.bailuntec.cw.request.ApplyMoneyDetail;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.CwResult;
import com.bailuntec.common.BeanUtils;
import com.bailuntec.common.JsonUtilByJackson;
import com.blt.other.common.exception.BizRuntimeException;
import com.blt.other.module.cost.model.CostDomain;
import com.blt.other.module.cost.service.CostService; import com.blt.other.module.cost.service.CostService;
import com.blt.other.module.cost.vo.TofinanceVo;
import com.blt.other.module.database.model.CostTofinanceDomain;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/** /**
* <p> * <p>
* *
...@@ -11,10 +27,47 @@ import org.springframework.stereotype.Service; ...@@ -11,10 +27,47 @@ import org.springframework.stereotype.Service;
* @author robbendev * @author robbendev
* @since 2020/10/29 11:35 上午 * @since 2020/10/29 11:35 上午
*/ */
@Slf4j
@Service @Service
public class Lend2PayCostServiceImpl extends AbstractCostService implements CostService { public class Lend2PayCostServiceImpl extends AbstractCostService implements CostService {
@Autowired
CwApi cwApi;
@Override @Override
public void finalCheck(String costNo, Integer currentUserId) { public void toFinancial(CostDomain cost) {
if (cost.getLendBalance().compareTo(BigDecimal.ZERO) <= 0) {
throw new BizRuntimeException("invalid amount")
}
PostApplyReq req = super.buildPostApplyReq(cost);
// 审核回调地址(ApplyCallbackUrl)不可为空;
req.setApplyCallbackUrl(costApplyCallbackUrlPost);
// 出纳回调地址(CashierCallbackUrl)不可为空;
req.setApplyCallbackUrl(costCashierCallbackUrlPost);
req.setApplyType("" + 1);
List<ApplyMoneyDetail> applyMoneyDetailList = new ArrayList<>();
ApplyMoneyDetail applyMoneyDetail = new ApplyMoneyDetail();
applyMoneyDetail.setName("借支单付款");
applyMoneyDetail.setMoney(cost.getAmount());
//todo
applyMoneyDetail.setMoneyRmb(cost.getAmount());
applyMoneyDetail.setRemark("");
applyMoneyDetailList.add(applyMoneyDetail);
// 出纳申请金额明细(MoneyDetail)不可为空;
req.setMoneyDetail(applyMoneyDetailList);
CwResult<String> cwResult = cwApi.postApply(req);
TofinanceVo tofinanceVo = JsonUtilByJackson.readValue(cwResult.getData().replaceAll("/^['|\"](.*)['|\"]$/", ""), TofinanceVo.class);
//保存财务系统调用信息
CostTofinanceDomain costTofinanceDomain = new CostTofinanceDomain();
BeanUtils.copyProperties(costTofinanceDomain, tofinanceVo);
costTofinanceDomain.setCostNo(cost.getCostNo().toUpperCase());
costTofinanceDomain.setCode(costTofinanceDomain.getCode().toUpperCase());
costTofinanceService.saveCostTofinanceMsg(costTofinanceDomain);
} }
} }
package com.blt.other.module.cost.service.impl.cost; package com.blt.other.module.cost.service.impl.cost;
import com.bailuntec.api.bailuntec.cw.request.ApplyMoneyDetail;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.CwResult;
import com.bailuntec.common.BeanUtils;
import com.bailuntec.common.JsonUtilByJackson;
import com.blt.other.module.cost.model.CostDomain; import com.blt.other.module.cost.model.CostDomain;
import com.blt.other.module.cost.service.CostService; import com.blt.other.module.cost.service.CostService;
import com.blt.other.module.cost.vo.TofinanceVo;
import com.blt.other.module.database.model.CostTofinanceDomain;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* <p> * <p>
* *
...@@ -12,15 +23,55 @@ import org.springframework.stereotype.Service; ...@@ -12,15 +23,55 @@ import org.springframework.stereotype.Service;
* @author robbendev * @author robbendev
* @since 2020/10/29 11:35 上午 * @since 2020/10/29 11:35 上午
*/ */
@Slf4j
@Service @Service
public class PayCostServiceImpl extends AbstractCostService implements CostService { public class PayCostServiceImpl extends AbstractCostService implements CostService {
@Override
public void finalCheck(String costNo, Integer currentUserId) {
}
@Override @Override
public void toFinancial(CostDomain costDomain) { public void toFinancial(CostDomain cost) {
PostApplyReq req = buildPostApplyReq(cost);
// 审核回调地址(ApplyCallbackUrl)不可为空;
if (cost.getCostNo().startsWith("S")) {
log.info("补差额的付款单:" + cost.getCostNo());
// applyMoneyDetail.setName("借支单补差额");
// 审核回调地址(ApplyCallbackUrl)不可为空;
req.setApplyCallbackUrl(lendCostApplyCallBackUrlPost);
// 出纳回调地址(CashierCallbackUrl)不可为空;
req.setCashierCallbackUrl(lendCostCashierCallbackUrlPost);
} else {
// 审核回调地址(ApplyCallbackUrl)不可为空;
req.setApplyCallbackUrl(costApplyCallbackUrlPost);
// 出纳回调地址(CashierCallbackUrl)不可为空;
req.setApplyCallbackUrl(costCashierCallbackUrlPost);
}
req.setApplyType("" + 1);
List<ApplyMoneyDetail> applyMoneyDetailList = new ArrayList<>();
ApplyMoneyDetail applyMoneyDetail = new ApplyMoneyDetail();
applyMoneyDetail.setName("费用单付款");
applyMoneyDetail.setMoney(cost.getAmount());
//todo
applyMoneyDetail.setMoneyRmb(cost.getAmount());
applyMoneyDetail.setRemark("");
applyMoneyDetailList.add(applyMoneyDetail);
// 出纳申请金额明细(MoneyDetail)不可为空;
req.setMoneyDetail(applyMoneyDetailList);
CwResult<String> cwResult = cwApi.postApply(req);
TofinanceVo tofinanceVo = JsonUtilByJackson.readValue(cwResult.getData().replaceAll("/^['|\"](.*)['|\"]$/", ""), TofinanceVo.class);
//保存财务系统调用信息
CostTofinanceDomain costTofinanceDomain = new CostTofinanceDomain();
BeanUtils.copyProperties(costTofinanceDomain, tofinanceVo);
costTofinanceDomain.setCostNo(cost.getCostNo().toUpperCase());
costTofinanceDomain.setCode(costTofinanceDomain.getCode().toUpperCase());
costTofinanceService.saveCostTofinanceMsg(costTofinanceDomain);
} }
} }
package com.blt.other.module.cost.service.impl.cost; package com.blt.other.module.cost.service.impl.cost;
import com.bailuntec.api.bailuntec.cw.CwApi;
import com.bailuntec.api.bailuntec.cw.request.ApplyMoneyDetail;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.CwResult;
import com.bailuntec.common.BeanUtils;
import com.bailuntec.common.JsonUtilByJackson;
import com.blt.other.module.cost.model.CostDomain;
import com.blt.other.module.cost.service.CostService; import com.blt.other.module.cost.service.CostService;
import com.blt.other.module.cost.vo.TofinanceVo;
import com.blt.other.module.database.model.CostTofinanceDomain;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* <p> * <p>
* *
...@@ -11,10 +25,46 @@ import org.springframework.stereotype.Service; ...@@ -11,10 +25,46 @@ import org.springframework.stereotype.Service;
* @author robbendev * @author robbendev
* @since 2020/10/29 11:35 上午 * @since 2020/10/29 11:35 上午
*/ */
@Slf4j
@Service @Service
public class ReceiptCostServiceImpl extends AbstractCostService implements CostService { public class ReceiptCostServiceImpl extends AbstractCostService implements CostService {
@Autowired
CwApi cwApi;
@Override @Override
public void finalCheck(String costNo, Integer currentUserId) { public void toFinancial(CostDomain cost) {
PostApplyReq req = super.buildPostApplyReq(cost);
// 审核回调地址(ApplyCallbackUrl)不可为空;
req.setApplyCallbackUrl(costApplyCallbackUrlPost);
// 出纳回调地址(CashierCallbackUrl)不可为空;
req.setApplyCallbackUrl(costCashierCallbackUrlPost);
req.setApplyType("" + 2);
List<ApplyMoneyDetail> applyMoneyDetailList = new ArrayList<>();
ApplyMoneyDetail applyMoneyDetail = new ApplyMoneyDetail();
applyMoneyDetail.setName("借支单收款");
applyMoneyDetail.setMoney(cost.getAmount());
//todo
applyMoneyDetail.setMoneyRmb(cost.getAmount());
applyMoneyDetail.setRemark("");
applyMoneyDetailList.add(applyMoneyDetail);
// 出纳申请金额明细(MoneyDetail)不可为空;
req.setMoneyDetail(applyMoneyDetailList);
CwResult<String> cwResult = cwApi.postApply(req);
TofinanceVo tofinanceVo = JsonUtilByJackson.readValue(cwResult.getData().replaceAll("/^['|\"](.*)['|\"]$/", ""), TofinanceVo.class);
//保存财务系统调用信息
CostTofinanceDomain costTofinanceDomain = new CostTofinanceDomain();
BeanUtils.copyProperties(costTofinanceDomain, tofinanceVo);
costTofinanceDomain.setCostNo(cost.getCostNo().toUpperCase());
costTofinanceDomain.setCode(costTofinanceDomain.getCode().toUpperCase());
costTofinanceService.saveCostTofinanceMsg(costTofinanceDomain);
} }
} }
...@@ -201,13 +201,13 @@ public class CostPlanNewLend2ServiceImpl extends AbstractCostPlanService impleme ...@@ -201,13 +201,13 @@ public class CostPlanNewLend2ServiceImpl extends AbstractCostPlanService impleme
costDomain1.setCostNo(getCostNo()); costDomain1.setCostNo(getCostNo());
costDomain1.setCostStatus(0); costDomain1.setCostStatus(0);
costDomain1.setAmount(costDomain1.getCounteract()); costDomain1.setAmount(costDomain1.getCounteract());
costDomain1.setLendBalance(BigDecimal.ZERO);
costDomain1.setPayPlanAmount(costDomain1.getPayCounteract()); costDomain1.setPayPlanAmount(costDomain1.getPayCounteract());
costDomain1.setLendBalance(BigDecimal.ZERO);
costDomain1.setPayLendBalance(BigDecimal.ZERO); costDomain1.setPayLendBalance(BigDecimal.ZERO);
BigDecimal toRmbRate = CurUtils.getCur(costDomain1.getDic(), "CNY", getExchangeRateApi); BigDecimal toRmbRate = CurUtils.getCur(costDomain1.getDic(), "CNY", getExchangeRateApi);
costDomain1.setToRmbRate(toRmbRate); costDomain1.setToRmbRate(toRmbRate);
costDomain1.setAmountRmb(costDomain1.getAmount().multiply(toRmbRate).setScale(2, BigDecimal.ROUND_HALF_UP)); costDomain1.setAmountRmb(costDomain1.getAmount().multiply(toRmbRate).setScale(2, BigDecimal.ROUND_HALF_UP));
int insert1 = costDao.insert(costDomain1); int insert1 = costDao.insert(costDomain1);
log.info("生成一张无需付款的借还单:" + costDomain1); log.info("生成一张无需付款的借还单:" + costDomain1);
costLogService.save(costDomain1.getCostNo(), costDomain1.getCreateUserid(), "由费用计划:" + costDomain1.getCostPlanNo() + " 生成冲销单"); costLogService.save(costDomain1.getCostNo(), costDomain1.getCreateUserid(), "由费用计划:" + costDomain1.getCostPlanNo() + " 生成冲销单");
...@@ -218,8 +218,9 @@ public class CostPlanNewLend2ServiceImpl extends AbstractCostPlanService impleme ...@@ -218,8 +218,9 @@ public class CostPlanNewLend2ServiceImpl extends AbstractCostPlanService impleme
costDomain2.setCostNo(getCostNo()); costDomain2.setCostNo(getCostNo());
costDomain2.setCostStatus(0); costDomain2.setCostStatus(0);
costDomain2.setAmount(costDomain2.getLendBalance()); costDomain2.setAmount(costDomain2.getLendBalance());
costDomain2.setCounteract(new BigDecimal(0));
costDomain2.setPayPlanAmount(costDomain2.getPayLendBalance()); costDomain2.setPayPlanAmount(costDomain2.getPayLendBalance());
costDomain2.setCounteract(new BigDecimal(0));
costDomain2.setPayCounteract(new BigDecimal(0)); costDomain2.setPayCounteract(new BigDecimal(0));
BigDecimal toRmbRate1 = CurUtils.getCur(costDomain2.getDic(), "CNY", getExchangeRateApi); BigDecimal toRmbRate1 = CurUtils.getCur(costDomain2.getDic(), "CNY", getExchangeRateApi);
costDomain2.setToRmbRate(toRmbRate1); costDomain2.setToRmbRate(toRmbRate1);
......
package com.blt.other.module.cost.vo; //package com.blt.other.module.cost.vo;
//
import java.math.BigDecimal; //import java.math.BigDecimal;
//
public class ApplyMoneyDetail { //public class ApplyMoneyDetail {
//
///申请金额的名称(类型) // ///申请金额的名称(类型)
private String Name; // private String Name;
//
///金额 // ///金额
private BigDecimal Money; // private BigDecimal Money;
//
///兑换成人民币金额 // ///兑换成人民币金额
private BigDecimal MoneyRmb; // private BigDecimal MoneyRmb;
//
///备注 // ///备注
private String Remark; // private String Remark;
//
public String getName() { // public String getName() {
return Name; // return Name;
} // }
//
public void setName(String name) { // public void setName(String name) {
Name = name; // Name = name;
} // }
//
public BigDecimal getMoney() { // public BigDecimal getMoney() {
return Money; // return Money;
} // }
//
public void setMoney(BigDecimal money) { // public void setMoney(BigDecimal money) {
Money = money; // Money = money;
} // }
//
public BigDecimal getMoneyRmb() { // public BigDecimal getMoneyRmb() {
return MoneyRmb; // return MoneyRmb;
} // }
//
public void setMoneyRmb(BigDecimal moneyRmb) { // public void setMoneyRmb(BigDecimal moneyRmb) {
MoneyRmb = moneyRmb; // MoneyRmb = moneyRmb;
} // }
//
public String getRemark() { // public String getRemark() {
return Remark; // return Remark;
} // }
//
public void setRemark(String remark) { // public void setRemark(String remark) {
Remark = remark; // Remark = remark;
} // }
//
@Override // @Override
public String toString() { // public String toString() {
return "[{\"ApplyMoneyDetail\":{" + "\"Name\":\"" + Name + "\", \"Money\":\"" + Money + "\",\" MoneyRmb\":\"" + MoneyRmb + "\", \"Remark\":\"" + Remark +"\"}}]"; // return "[{\"ApplyMoneyDetail\":{" + "\"Name\":\"" + Name + "\", \"Money\":\"" + Money + "\",\" MoneyRmb\":\"" + MoneyRmb + "\", \"Remark\":\"" + Remark +"\"}}]";
} // }
} //}
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