Browse Source

金融调差申请通过推送数据

master
fanzongzhe0036 3 months ago
parent
commit
1b14e48c66
  1. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  2. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  3. 42
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  4. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java
  5. 1
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java
  6. 1
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java
  7. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml
  8. 213
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java

@ -83,6 +83,10 @@ public interface FinKingDeeFeign {
@ResponseBody
ResultBean<String> saveJRRebatePrepareVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存金融贴息差异调整凭证")
@PostMapping("/saveJRAdjustVoucher")
@ResponseBody
ResultBean<String> saveJRAdjustVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存单车返利核对凭证")
@PostMapping("/saveRebateReviewVoucher")

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java

@ -59,6 +59,11 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> saveJRAdjustVoucher(@Valid GeneralVoucher voucher) {
return null;
}
@Override
public ResultBean<String> saveRebateReviewVoucher(@Valid GeneralVoucher voucher) {
return null;

42
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -312,6 +312,48 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
return voucherService.saveVoucher(newVoucher);
}
@Override
public ResultBean<String> saveJRAdjustVoucher(@Valid GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
if (StringUtils.isNotBlank(voucher.getBussDate())) {
newVoucher.setBussDate(voucher.getBussDate());
}
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto1.setSummary("客户承担金融贴息差额");
dto2.setSummary("客户承担金融贴息差额");
if (voucherDetail.getType().equals("上年")) {
dto1.setSubjectNo("1161.02.19");
} else if (voucherDetail.getType().equals("本年")) {
dto1.setSubjectNo("1161.01.19");
}
dto2.setSubjectNo("1133.10.00");
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setManufacturer(voucherDetail.getManufacturer());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setMaterial(voucherDetail.getMaterial());
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(voucherDetail.getAmount().negate().toString());
dto2.setDebit(voucherDetail.getAmount().toString());
resultDetails.add(dto1);
resultDetails.add(dto2);
}
newVoucher.setResultDetails(resultDetails);
}
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}
@Override
public ResultBean<String> saveRebateReviewVoucher(@Valid GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java

@ -81,4 +81,7 @@ public class AdjustDetailsListVo {
*/
private String vinNo;
private String salesOrderSid; // 销售订单sid
private String checkApplySid; // 单车上传核对sid
}

1
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java

@ -47,5 +47,6 @@ public class AdjustVehListVo {
@ApiModelProperty("单车返利管理sid")
private String rebateSid; // 单车返利管理sid
private String salesOrderSid; // 销售订单sid
private String checkApplySid; // 单车上传核对sid
}

1
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java

@ -91,5 +91,6 @@ public class ScmFinanceAdjustDetails extends BaseEntity {
@ApiModelProperty("单车返利管理sid")
private String rebateSid; // 单车返利管理sid
private String salesOrderSid; // 销售订单sid
private String checkApplySid; // 单车上传核对sid
}

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml

@ -50,6 +50,7 @@
END AS `state`
FROM
(SELECT
a.sid as checkApplySid,
d.vehRebateSid as rebateSid,
a.useOrgSid,
d.purchaseSystemSid,
@ -73,7 +74,7 @@
LEFT JOIN scm_vehrebate_checkapply as a ON d.mainSid = a.sid
LEFT JOIN scm_veh_rebate as r ON d.vehRebateSid = r.sid
WHERE r.adjustmentMoney &lt; 0 AND a.nodeState = '已办结' AND d.rebateTypeValue = '金融贴息') as n
INNER JOIN anrui_buscenter.bus_sales_order as bo ON n.orderSid = bo.sid
LEFT JOIN anrui_buscenter.bus_sales_order as bo ON n.orderSid = bo.sid
<where> ${ew.sqlSegment} </where>
</select>
<select id="finAdjustList"
@ -87,6 +88,7 @@
END AS `state`
FROM
(SELECT
a.sid as checkApplySid,
d.vehRebateSid as rebateSid,
a.createBySid,
a.orgPath,

213
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java

@ -31,10 +31,23 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -57,8 +70,13 @@ import com.yxt.anrui.scm.api.scmfile.ScmFileVo;
import com.yxt.anrui.scm.api.scmfinanceadjustapply.*;
import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*;
import com.yxt.anrui.scm.api.scmfinanceadjustdetails.ScmFinanceAdjustDetails;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebate;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapply;
import com.yxt.anrui.scm.biz.scmfile.ScmFileService;
import com.yxt.anrui.scm.biz.scmfinanceadjustdetails.ScmFinanceAdjustDetailsService;
import com.yxt.anrui.scm.biz.scmvehrebate.ScmVehRebateService;
import com.yxt.anrui.scm.biz.scmvehrebatecheckapply.ScmVehrebateCheckapplyService;
import com.yxt.anrui.scm.biz.scmvehrebatewithapply.ScmVehRebateWithApplyService;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -93,7 +111,16 @@ import java.util.stream.Collectors;
*/
@Service
public class ScmFinanceAdjustApplyService extends MybatisBaseService<ScmFinanceAdjustApplyMapper, ScmFinanceAdjustApply> {
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private FinUncollectedReceivablesDetailedFeign finUncollectedReceivablesDetailedFeign;
@Autowired
private BaseVehicleFeign baseVehicleFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private ScmVehrebateCheckapplyService scmVehrebateCheckapplyService;
@Autowired
private MessageFeign messageFeign;
@Autowired
@ -116,6 +143,14 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService<ScmFinanceA
private SysUserFeign sysUserFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private ScmVehRebateWithApplyService scmVehRebateWithApplyService;
@Autowired
private ScmVehRebateService scmVehRebateService;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
private QueryWrapper<ScmFinanceAdjustApply> createQueryWrapper(ScmFinanceAdjustApplyQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -672,26 +707,172 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService<ScmFinanceA
ScmFinanceAdjustApply adjustApply = fetchBySid(sid);
String adjustWay = adjustApply.getAdjustWay();
List<ScmFinanceAdjustDetails> details = scmFinanceAdjustDetailsService.selByMainSid(sid);
String format = scmVehRebateWithApplyService.returnBusDate(new Date());
if (!details.isEmpty() && details.size() > 0) {
for (ScmFinanceAdjustDetails detail : details) {
if (adjustWay.equals("客户交纳")) {
} else if (adjustWay.equals("公司认损")) {
if (adjustWay.equals("客户交纳")) {
//按照采购系统分组
if (!details.isEmpty()) {
Map<String, List<ScmFinanceAdjustDetails>> map = details.stream().collect(Collectors.groupingBy(ScmFinanceAdjustDetails::getPurchaseSystemSid));
map.forEach((k, v) -> {
List<ScmFinanceAdjustDetails> rebates = v;
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmFinanceAdjustDetails rebate : v) {
String useOrgCode = "";
String vinCode = "";
String deptCode = "";
if (StringUtils.isNotBlank(adjustApply.getUseOrgSid())) {
String useOrgSid = adjustApply.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
useOrgCode = organizationVo.getOrgCode();
}
}
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String summaryTag = "";//摘要前缀
ScmVehrebateCheckapply checkapply = scmVehrebateCheckapplyService.fetchBySid(rebate.getCheckApplySid());
if (null != checkapply) {
if (StringUtils.isNotBlank(checkapply.getCheckApply())) {
summaryTag = checkapply.getCheckApply();
}
}
String finalSummaryTag = summaryTag;
String[] split = finalSummaryTag.split("年");
String y1 = split[0]; //核对申请标题年份
ScmVehRebate scmVehRebate = scmVehRebateService.fetchBySid(rebate.getRebateSid());
String palceGenDate = scmVehRebate.getPalceGenDate();
String[] palceGenDateSplit = palceGenDate.split("-");
String y2 = palceGenDateSplit[0];//所属年份
if (y1.equals(y2)) {
voucherDetail.setType("本年");
} else {
voucherDetail.setType("上年");
}
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(rebate.getSalesOrderSid()).getData();
if (null != salesOrder) {
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(salesOrder.getOrgSid()).getData();
if (null != data) {
voucherDetail.setDeptCode(data.getOrgCode()); //部门编码赋值
deptCode = data.getOrgCode();
}
}
BaseVehicle vehicle = baseVehicleFeign.fetchBySid(rebate.getVehSid()).getData();
if (null != vehicle) {
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) {
voucherDetail.setManufacturer(vehicle.getManufacturerCode());
}
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8);
voucherDetail.setMaterial(vinCode);
}
if (StringUtils.isNotBlank(rebate.getCustomerSid())) {
CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(rebate.getCustomerSid()).getData();
if (null != customerTemp) {
voucherDetail.setCustomerCode(customerTemp.getCustomerNo());
}
}
if (null != rebate.getNowAdjustmentMoney()) {
if (rebate.getNowAdjustmentMoney().compareTo(BigDecimal.ZERO) > 0) {
voucherDetail.setAmount(rebate.getNowAdjustmentMoney());
voucherDetails.add(voucherDetail);
}
}
//生成应收
if (null != salesOrder) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(adjustApply.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(adjustApply.getCreateBySid());
finUncollectedReceivablesDetailedDto.setContractNo(rebate.getContractNo());
finUncollectedReceivablesDetailedDto.setCustomerSid(rebate.getCustomerSid());
finUncollectedReceivablesDetailedDto.setCustomerName(rebate.getCustomerName());
finUncollectedReceivablesDetailedDto.setVIN(rebate.getVinNo());
if (StringUtils.isNotBlank(salesOrder.getMobile())) {
finUncollectedReceivablesDetailedDto.setCustomerPhone(salesOrder.getMobile());
}
finUncollectedReceivablesDetailedDto.setUseOrgSid(adjustApply.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setReceivablesName("车款");
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney(rebate.getNowAdjustmentMoney().toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney(rebate.getNowAdjustmentMoney().toString());
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(rebate.getContractNo(), rebate.getVehSid()).getData();
finUncollectedReceivablesDetailedDto.setOrgSidPath(salesOrder.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setBusVinSid(busSalesOrderVehicle.getSid());
finUncollectedReceivablesDetailedDto.setPayTypeKey(salesOrder.getPayTypeKey());
finUncollectedReceivablesDetailedDto.setPayType(salesOrder.getPayType());
finUncollectedReceivablesDetailedDto.setUseOrgName(adjustApply.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedDto.setPurchaseSystemSid(rebate.getPurchaseSystemSid());
finUncollectedReceivablesDetailedDto.setPurchaseSystemName(rebate.getPurchaseSystemName());
finUncollectedReceivablesDetailedDto.setStaffName(salesOrder.getStaffName());
SysUserVo sysUserVo = sysUserFeign.selectByStaffsid(salesOrder.getStaffSid()).getData();
finUncollectedReceivablesDetailedDto.setStaffUserSid(sysUserVo.getSid());
finUncollectedReceivablesDetailedDto.setStaffDeptSid(salesOrder.getOrgSid());
finUncollectedReceivablesDetailedDto.setStaffDeptName(salesOrder.getOrgName());
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
}
if (!voucherDetails.isEmpty()) {
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveJRAdjustVoucher(generalVoucher);
}
}
});
}
} else if (adjustWay.equals("公司认损")) {
if (!details.isEmpty()) {
Map<String, List<ScmFinanceAdjustDetails>> map = details.stream().collect(Collectors.groupingBy(ScmFinanceAdjustDetails::getPurchaseSystemSid));
map.forEach((k, v) -> {
List<ScmFinanceAdjustDetails> rebates = v;
CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill();
costAdjustmentsBill.setBussDate(format);
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> resultDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmFinanceAdjustDetails rebate : v) {
String useOrgCode = "";
String vinCode = "";
String deptCode = "";
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData();
if (null != data) {
deptCode = data.getOrgCode();
}
if (StringUtils.isNotBlank(adjustApply.getUseOrgSid())) {
String useOrgSid = adjustApply.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
costAdjustmentsBill.setUseOrgCode(organizationVo.getOrgCode());
useOrgCode = organizationVo.getOrgCode();
}
}
BaseVehicle vehicle = baseVehicleFeign.fetchBySid(rebate.getVehSid()).getData();
if (null != vehicle) {
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) {
costAdjustmentsBill.setCommUnit(vehicle.getManufacturerCode());
}
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8);
}
if (null != rebate.getNowAdjustmentMoney()) {
if (rebate.getNowAdjustmentMoney().compareTo(BigDecimal.ZERO) > 0) {
//添加成本调整单
CostAdjustmentsBill.CostAdjustmentsBillDetailDto dto = new CostAdjustmentsBill.CostAdjustmentsBillDetailDto();
dto.setCompanyCode(useOrgCode);
dto.setMaterialID(vinCode);
dto.setDeptCode(deptCode);
dto.setAmount(rebate.getNowAdjustmentMoney().toString());
resultDetails.add(dto);
}
}
}
if (!resultDetails.isEmpty()) {
costAdjustmentsBill.setResultDetails(resultDetails);
finKingDeeFeign.pushCostAdjustmentsBill(costAdjustmentsBill);
}
}
});
}
}
}
}

Loading…
Cancel
Save