Browse Source

fix:合同生成合并提交订单

master
tanzs 3 days ago
parent
commit
6149898999
3 changed files with 40 additions and 3 deletions
  1. +3
    -0
      jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vo/AppOrderPage.java
  2. +1
    -1
      jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java
  3. +36
    -2
      jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/impl/OrderServiceImpl.java

+ 3
- 0
jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vo/AppOrderPage.java View File

@ -14,6 +14,8 @@ import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
/**
* @Description: 合同订单表
* @Author: jeecg-boot
@ -46,6 +48,7 @@ public class AppOrderPage {
/**产品合同模板*/
@Excel(name = "产品合同模板", width = 15)
@ApiModelProperty(value = "产品合同模板")
@NotBlank(message = "未识别到产品合同模板,请检查配置")
private java.lang.String productContractTemp;
/**经销商*/
@Excel(name = "经销商", width = 15)


+ 1
- 1
jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java View File

@ -162,7 +162,7 @@ public class OrderController {
QueryWrapper<AppOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("create_by", userInfo.getNickName());
queryWrapper.eq("id",orderId);
queryWrapper.eq("status",1); // 未生效的订单才可以生成
queryWrapper.eq("status",1); // 已生效订单才能失效
AppOrder appOrderEntity = appOrderService.getOne(queryWrapper);
if(appOrderEntity==null) {
return Result.error("未找到对应数据");


+ 36
- 2
jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/impl/OrderServiceImpl.java View File

@ -3,6 +3,7 @@ package org.jeecg.modules.miniapp.order.service.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
@ -76,6 +77,7 @@ public class OrderServiceImpl implements OrderService {
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrder(AppOrder appOrder, List<AppOrderCar> appOrderCarList, List<AppOrderVoucher> appOrderVoucherList, List<AppOrderFinance> appOrderFinanceList) {
OrderInfo orderInfo = new OrderInfo(); // 订单合同内容
// 获取当前用户信息
MLoginUser user =userInfoUtil.getUserInfo();
// 生成唯一订单号
@ -84,10 +86,19 @@ public class OrderServiceImpl implements OrderService {
"CXSC",
DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN),
String.valueOf(ThreadLocalRandom.current().nextInt(100000, 1000000))));
appOrder.setStatus(0); // 默认生效
appOrder.setStatus(1); // 默认生效
// 当前登录用户
appOrder.setCreateBy(user.getNickName());
appOrder.setCreateTime(new Date());
if (StrUtil.isBlank(appOrder.getProductContractTemp())){
throw new RuntimeException("产品模板合同为空,无法生成合同,请配置合同模板!");
}
BeanUtils.copyProperties(appOrder, orderInfo);
BeanUtils.copyProperties(appOrderCarList.get(0),orderInfo);
BeanUtils.copyProperties(appOrderVoucherList.get(0),orderInfo);
BeanUtils.copyProperties(appOrderFinanceList.get(0),orderInfo);
String contractUrl = this.creatContractUrl(orderInfo);
appOrder.setContractUrl(contractUrl);
appOrderMapper.insert(appOrder);
if(appOrderCarList!=null && appOrderCarList.size()>0) {
for(AppOrderCar entity:appOrderCarList) {
@ -163,11 +174,34 @@ public class OrderServiceImpl implements OrderService {
return contractUrl;
}
private String creatContractUrl(OrderInfo orderInfo){
String contractUrl = null;
// pdf 文件表单填充
// 1.定义输出临时路径
String outputPath = System.getProperty("java.io.tmpdir") + "/" + orderInfo.getOrderNum() +".pdf";
// 2.转换实体类到 Map
try {
Map<String,String> formData = jsonToMap(JSONObject.toJSONString(orderInfo));
log.debug("FormData: " + JSONObject.toJSONString(formData));
//3. 拼接 pdf
pdfFormUtils.fillPdfFormFromUrl(orderInfo.getProductContractTemp(),outputPath,formData,6.5f);
//4. 调用合同上传 oss
File pdfFile = new File(outputPath);
contractUrl = CommonUtils.upload(convertFileToMultipartFile(pdfFile), "contract", uploadType);
// 删除临时文件
pdfFile.delete();
} catch (Exception e) {
log.error("合同生成失败,订单编号:{}",orderInfo.getOrderNum());
throw new RuntimeException(e);
}
return contractUrl;
}
@Override
public void canelOrderContract(AppOrder appOrder) {
MLoginUser userInfo = userInfoUtil.getUserInfo();
appOrder.setUpdateBy(userInfo.getNickName());
appOrder.setStatus(0);
appOrder.setStatus(2);
appOrderMapper.updateById(appOrder);
}


Loading…
Cancel
Save