Browse Source

对接调度系统

v1.0
Yen 2 years ago
parent
commit
f1aacd97ce
  1. 21
      src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java
  2. 11
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java
  3. 20
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsCostCenterVo.java
  4. 4
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java
  5. 52
      src/main/java/com/qs/serve/modules/third/PortalBmsController.java
  6. 144
      src/main/java/com/qs/serve/modules/third/entity/ThirtyVerification.java
  7. 95
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

21
src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java

@ -0,0 +1,21 @@
package com.qs.serve.common.config.properties;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author YenHex
* @since 2023/9/7
*/
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "project.apis")
public class ProjectApisProperties {
/** 支付接口 */
private String costToPay;
}

11
src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java

@ -97,11 +97,18 @@ public class BmsSupplierAddressApi {
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); BmsSupplier supplier = AuthContextUtils.getCurrentSupplier();
param.setSupplierId(param.getSupplierId()); param.setSupplierId(param.getSupplierId());
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId())); BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId()));
if(param.getDefaultFlag().equals(1)){
if(supplierAddress!=null){
supplierAddress.setDefaultFlag(0);
bmsSupplierAddressService.updateById(supplierAddress);
}
}else {
if(supplierAddress==null){ if(supplierAddress==null){
param.setDefaultFlag(1); param.setDefaultFlag(1);
}else { }else {
param.setDefaultFlag(0); param.setDefaultFlag(0);
} }
}
boolean result = bmsSupplierAddressService.save(param); boolean result = bmsSupplierAddressService.save(param);
return R.isTrue(result); return R.isTrue(result);
} }
@ -111,9 +118,9 @@ public class BmsSupplierAddressApi {
* @param id 地址ID * @param id 地址ID
* @return * @return
*/ */
@PostMapping("/setDefault") @GetMapping("/setDefault")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R<?> setDefault(@Valid Long id){ public R<?> setDefault(Long id){
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); BmsSupplier supplier = AuthContextUtils.getCurrentSupplier();
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(id); BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(id);
if(!supplierAddress.getSupplierId().toString().equals(supplier.getId())){ if(!supplierAddress.getSupplierId().toString().equals(supplier.getId())){

20
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsCostCenterVo.java

@ -0,0 +1,20 @@
package com.qs.serve.modules.bms.entity.vo;
import lombok.Data;
/**
* @author YenHex
* @since 2022/11/11
*/
@Data
public class BmsCostCenterVo {
/** 科目名称 */
private String name;
/** 科目编码 */
private String code;
/** 备注 */
private String remark;
}

4
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java

@ -274,6 +274,10 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
List<BmsRegion2> regionList = listChild(pid); List<BmsRegion2> regionList = listChild(pid);
if(regionList.size()>0){ if(regionList.size()>0){
regionList = regionList.stream().map(a->{ regionList = regionList.stream().map(a->{
String[] pars = parRegion.getPathIds().split("_");
if(Arrays.stream(pars).anyMatch(v->v.equals(a.getId()))||pars.length>4){
Assert.throwEx("出现递归数据");
}
a.setPathIds(parRegion.getPathIds()+"_"+a.getId()); a.setPathIds(parRegion.getPathIds()+"_"+a.getId());
a.setPathNames(parRegion.getPathNames()+"_"+a.getName()); a.setPathNames(parRegion.getPathNames()+"_"+a.getName());
return a; return a;

52
src/main/java/com/qs/serve/modules/third/PortalBmsController.java

@ -0,0 +1,52 @@
package com.qs.serve.modules.third;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.TreeUtil;
import com.qs.serve.modules.bms.entity.BmsCostCenter;
import com.qs.serve.modules.bms.entity.vo.BmsCostCenterTreeVo;
import com.qs.serve.modules.bms.entity.vo.BmsCostCenterVo;
import com.qs.serve.modules.bms.service.BmsCostCenterService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author YenHex
* @since 2023/9/7
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("thirty/bms")
public class PortalBmsController {
private BmsCostCenterService bmsCostCenterService;
/**
* 树查询
* @return
*/
@GetMapping("/center")
public List<BmsCostCenterVo> getTree(){
List<BmsCostCenter> list = bmsCostCenterService.list(
new LambdaQueryWrapper<BmsCostCenter>()
.eq(BmsCostCenter::getVisibleFlag,1)
.orderByDesc(BmsCostCenter::getId));
List<BmsCostCenterVo> treeVoList = list.stream().map(obj->
CopierUtil.copy(obj,new BmsCostCenterVo())
).collect(Collectors.toList());
return treeVoList;
}
}

144
src/main/java/com/qs/serve/modules/third/entity/ThirtyVerification.java

@ -0,0 +1,144 @@
package com.qs.serve.modules.third.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.*;
import java.math.BigDecimal;
/**
* @version 1.0
* @Author Ken Tam
* @Date 2023-09-07 9:01
* @注释 CMS已经完成的核销单实体类
*/
@Getter
@Setter
public class ThirtyVerification {
private String cacc = "001";
/**
* 原销路通中间表 apticlaimNum
*/
@NotNull(message = "核销编码不能为空")
@Size(max = 30,min = 1,message = "编码长度不符合要求")
private String verificationCode;
/**
* 活动主题
* 原销路通中间表 apticlaim_zhuTi
*/
@NotNull(message = "活动主题不能为空")
private String activityTitle = "";
/**
* 费用申请编码
*/
@Null(message = "不能传入活动编码")
private String activityCode;
/**
* 核销创建日期不能为空
* 原销路通中间表 apticlaim_create_datetime
* 时间格式应为yyyy-MM-dd HH:mm:ss
*/
private String createDate;
/**
* 原销路通中间表 apticlaim_effdate
* 应该成费用对应的活动开始日期 yyyy-MM-dd HH:mm:ss
*/
private String startDate;
/**
* 原销路通中间表 apticlaim_effdate
* 应该成费用对应的活动结束日期
* yyyy-MM-dd HH:mm:ss
*/
private String endDate;
/**
* 中间表无该字段用途不明确
*/
private String kaCode = "";
/**
* 中间表无该字段用途不明确
*/
private Integer kaMdSl = 0;
/**
* 对应 apticlaim_exp_acct 科目编码
*/
@NotNull(message = "科目编码不能为空")
private String subjectCode;
@NotNull(message = "科目名称不能为空")
private String subjectName;
/**
* 原销路通 apticlaim_amt + apticlaim_amt_tax含税核销金额
*/
@DecimalMax(value = "100000000",message = "核销金额不能大于一亿,请检查数据")
@DecimalMin(value = "0",message = "核销金额不能小于0")
@NotNull(message = "核销金额不能为空")
private BigDecimal money;
/**
* 中间表无该字段用途不明确
*/
private BigDecimal xsje = BigDecimal.ZERO;
/**
* 中间表无该字段用途不明确
*/
private BigDecimal tmSl = BigDecimal.ZERO;
/**
* cFyMemo 中间表无该字段
*/
private String memo = "";
private String createUser = "demo - demo";
/**
* 对应 apticlaim_create_datetime
* 时间格式应为yyyy-MM-dd HH:mm:ss
*/
@NotNull(message = "创建时间不能为空")
private String createTime;
private String checkUser = "demo - demo";
/**
* 对应 apticlaim_create_datetime
* 时间格式应为yyyy-MM-dd HH:mm:ss
*/
private String checkTime;
/**
* 对应 apticlaim_addr
*/
@NotNull(message = "客户编码不能为空")
private String cusCode;
@NotNull(message = "客户名称不能为空")
private String cusName;
/**
* 对应 apticlaim_recid
*/
@NotNull(message = "id不能为空")
private String recId;
/**
* 对应apticlaim_id
*/
@NotNull(message = "id不能为空")
private String id;
}

95
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.third.service; package com.qs.serve.modules.third.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.ResultFlag; import com.qs.serve.common.model.consts.ResultFlag;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -30,10 +31,7 @@ import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.third.entity.AptPolicyPayment; import com.qs.serve.modules.third.entity.*;
import com.qs.serve.modules.third.entity.ProcessCreateCostApplyBo;
import com.qs.serve.modules.third.entity.ProcessCreatePolicyCostBo;
import com.qs.serve.modules.third.entity.ProcessGoodsItem;
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; import com.qs.serve.modules.tzc.common.TzPolicyItemStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicyGoodsSync; import com.qs.serve.modules.tzc.entity.TzcPolicyGoodsSync;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
@ -52,6 +50,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
@ -98,6 +97,8 @@ public class PortalOfCostApplication {
private TzcPolicyGoodsSyncService tzcPolicyGoodsSyncService; private TzcPolicyGoodsSyncService tzcPolicyGoodsSyncService;
private final XiaoLuTonService xiaoLuTonService; private final XiaoLuTonService xiaoLuTonService;
private ProjectApisProperties projectApisProperties;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void syncXltPolicyItemPayment(AptPolicyPayment createBo){ public void syncXltPolicyItemPayment(AptPolicyPayment createBo){
@ -565,8 +566,7 @@ public class PortalOfCostApplication {
String costCode = createBo.getCostCode(); String costCode = createBo.getCostCode();
String costTheme = createBo.getCostTheme(); String costTheme = createBo.getCostTheme();
String random = String.format("%03d",new Random().nextInt(999)); String activityCode = costCode;
String activityCode = "G"+ StringUtils.genShortId() + random;
String activityTitle = createBo.getActivityTitle(); String activityTitle = createBo.getActivityTitle();
if(!StringUtils.hasText(activityTitle)){ if(!StringUtils.hasText(activityTitle)){
@ -784,36 +784,61 @@ public class PortalOfCostApplication {
verificationSubject.setCountSession(0); verificationSubject.setCountSession(0);
verificationSubjectService.save(verificationSubject); verificationSubjectService.save(verificationSubject);
//保存支付信息
String timeString = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
ThirtyVerification tv = new ThirtyVerification();
tv.setVerificationCode(verificationSubject.getVerificationSubCode());
tv.setActivityTitle(activityTitle);
tv.setActivityCode(activityCode);
tv.setCreateDate(timeString);
tv.setStartDate(timeString);
tv.setEndDate(timeString);
tv.setSubjectCode(subject.getSubjectCode());
tv.setSubjectName(subject.getSubjectName());
tv.setMoney(totalAmount);
//tv.setCreateUser();
tv.setCreateTime(timeString);
tv.setCheckUser(user.getName());
tv.setCheckTime(timeString);
tv.setCusCode(supplier.getCode());
tv.setCusName(supplier.getName());
tv.setRecId(verificationSubject.getVerificationSubCode());
String COST_TO_PAY_API = projectApisProperties.getCostToPay();
String json = JsonUtil.objectToJson(tv);
log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}",verificationSubject.getVerificationSubCode(),json);
String rs = HttpUtil.doPost(COST_TO_PAY_API,json,null);
log.info("COST_TO_PAY_API 支付单信息:{},结果:{}",verificationSubject.getVerificationSubCode(),rs);
//保存支付 //保存支付
PayPayment payPayment = new PayPayment(); // PayPayment payPayment = new PayPayment();
payPayment.setPayType(PaymentType.PAYMENT); // payPayment.setPayType(PaymentType.PAYMENT);
payPayment.setPayCode("PM"+ StringUtils.genShortId()); // payPayment.setPayCode("PM"+ StringUtils.genShortId());
payPayment.setSupplierId(supplierId); // payPayment.setSupplierId(supplierId);
payPayment.setSupplierCode(supplier.getCode()); // payPayment.setSupplierCode(supplier.getCode());
payPayment.setSupplierName(supplier.getName()); // payPayment.setSupplierName(supplier.getName());
payPayment.setPayAmount(totalAmount); // payPayment.setPayAmount(totalAmount);
payPayment.setUserId(user.getId()); // payPayment.setUserId(user.getId());
payPayment.setUserCode(user.getCode()); // payPayment.setUserCode(user.getCode());
payPayment.setUserName(user.getName()); // payPayment.setUserName(user.getName());
payPayment.setPayTime(nowTime); // payPayment.setPayTime(nowTime);
payPayment.setErpCode(erpCode); // payPayment.setErpCode(erpCode);
payPayment.setBillNumber(billNumber); // payPayment.setBillNumber(billNumber);
paymentService.save(payPayment); // paymentService.save(payPayment);
//
PayPaymentItem paymentItem = new PayPaymentItem(); // PayPaymentItem paymentItem = new PayPaymentItem();
paymentItem.setPaymentId(payPayment.getId()); // paymentItem.setPaymentId(payPayment.getId());
paymentItem.setPayType(PaymentType.PAYMENT); // paymentItem.setPayType(PaymentType.PAYMENT);
paymentItem.setSupplierId(supplierId); // paymentItem.setSupplierId(supplierId);
paymentItem.setItemPayAmount(totalAmount); // paymentItem.setItemPayAmount(totalAmount);
paymentItem.setVerificationId(verification.getId()); // paymentItem.setVerificationId(verification.getId());
paymentItem.setVerificationSubjectId(verificationSubject.getId()); // paymentItem.setVerificationSubjectId(verificationSubject.getId());
paymentItem.setCostApplyId(costApply.getId()); // paymentItem.setCostApplyId(costApply.getId());
paymentItem.setActivityId(activity.getId()); // paymentItem.setActivityId(activity.getId());
paymentItem.setActivityCode(activity.getActivityCode()); // paymentItem.setActivityCode(activity.getActivityCode());
paymentItem.setSubjectId(subject.getId()); // paymentItem.setSubjectId(subject.getId());
paymentItem.setSubjectCode(subject.getSubjectCode()); // paymentItem.setSubjectCode(subject.getSubjectCode());
paymentItem.setSubjectName(subject.getSubjectName()); // paymentItem.setSubjectName(subject.getSubjectName());
paymentItemService.save(paymentItem); // paymentItemService.save(paymentItem);
} }

Loading…
Cancel
Save