|
@@ -5,13 +5,18 @@ import cn.ezhizao.common.utils.poi.ExcelUtil;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Log;
|
|
|
import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
|
|
|
+import cn.ezhizao.framework.lock.DistributionLock;
|
|
|
+import cn.ezhizao.framework.lock.LockKey;
|
|
|
import cn.ezhizao.framework.web.controller.BaseController;
|
|
|
import cn.ezhizao.framework.web.domain.AjaxResult;
|
|
|
import cn.ezhizao.project.business.order.domain.OrderExcelImportLoopModel;
|
|
|
+import cn.ezhizao.project.business.upgrade.domain.BizWorkOrderUpdate;
|
|
|
import cn.ezhizao.project.business.upgrade.service.IBizArchiveInputTempService;
|
|
|
import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderUpdateService;
|
|
|
import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
|
|
|
import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
|
|
|
+import cn.ezhizao.project.fegin.IFeignClient;
|
|
|
+import cn.ezhizao.project.tenant.service.ITenantService;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
@@ -34,24 +39,36 @@ public class crmUpgradeController extends BaseController {
|
|
|
private IBizWorkOrderUpdateService bizWorkOrderUpdateService;
|
|
|
@Resource
|
|
|
private IBizWorkOrderService bizWorkOrderService;
|
|
|
+ @Resource
|
|
|
+ private IFeignClient tenantService;
|
|
|
@Log(title = "合同导入", businessType = BusinessType.IMPORT)
|
|
|
@PreAuthorize("@ss.hasPermi('business:upgrade:order:import')")
|
|
|
@PostMapping("/order/importLoop")
|
|
|
@Transactional
|
|
|
public AjaxResult importLoop(MultipartFile file) throws Exception {
|
|
|
- ExcelUtil<OrderExcelImportLoopModel> util = new ExcelUtil<>(OrderExcelImportLoopModel.class);
|
|
|
- List<OrderExcelImportLoopModel> orderList = util.importExcel(file.getInputStream());
|
|
|
+ String join = LockKey.join(LockKey.REPOR_UPDATE,getTenantId());
|
|
|
+ DistributionLock lock = new DistributionLock(join);
|
|
|
+ try {
|
|
|
+ lock.lock();
|
|
|
+ ExcelUtil<OrderExcelImportLoopModel> util = new ExcelUtil<>(OrderExcelImportLoopModel.class);
|
|
|
+ List<OrderExcelImportLoopModel> orderList = util.importExcel(file.getInputStream());
|
|
|
|
|
|
- // 获取 入Excel 表头字段
|
|
|
- List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
|
|
|
- //获取实体类字段
|
|
|
- List<String> names = getExcelAnnotatedFields(OrderExcelImportLoopModel.class);
|
|
|
- //如果不存在模板中的字段,返回错误
|
|
|
- if (!names.containsAll(excelHeaders)) {
|
|
|
- return error("导入数据与模板不匹配!");
|
|
|
- }
|
|
|
+ // 获取 入Excel 表头字段
|
|
|
+ List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
|
|
|
+ //获取实体类字段
|
|
|
+ List<String> names = getExcelAnnotatedFields(OrderExcelImportLoopModel.class);
|
|
|
+ //如果不存在模板中的字段,返回错误
|
|
|
+ if (!names.containsAll(excelHeaders)) {
|
|
|
+ return error("导入数据与模板不匹配!");
|
|
|
+ }
|
|
|
String message = bizArchiveInputService.importLoop(orderList, SecurityUtils.getUserId(), getTenantId() == null ? 0 : getTenantId());
|
|
|
return success(message);
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error(e.getMessage());
|
|
|
+ return error("错误请联系管理员");
|
|
|
+ }finally {
|
|
|
+ lock.unlock();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Log(title = "基础版升级", businessType = BusinessType.INSERT)
|
|
@@ -59,21 +76,35 @@ public class crmUpgradeController extends BaseController {
|
|
|
@PostMapping("/order/completeUpgrade")
|
|
|
@Transactional
|
|
|
public AjaxResult completeUpgrade() throws NoSuchFieldException, IllegalAccessException {
|
|
|
- Long tenantId =0L;
|
|
|
- String message = "升级成功,请刷新页面";
|
|
|
- tenantId = getTenantId();
|
|
|
+ String join = LockKey.join(LockKey.REPOR_UPDATE,getTenantId());
|
|
|
+ DistributionLock lock = new DistributionLock(join);
|
|
|
+ String message = "升级成功,请关闭浏览器重新进入";
|
|
|
+ try {
|
|
|
+ lock.lock();
|
|
|
+ Long tenantId = 0L;
|
|
|
+ tenantId = getTenantId();
|
|
|
+ bizArchiveInputService.inputUpgrade(tenantId);
|
|
|
+ List<BizWorkOrder> waitingForUpgradingList = bizWorkOrderService.lambdaQuery().eq(BizWorkOrder::getTenantId,tenantId).list();
|
|
|
+ bizWorkOrderUpdateService.workerUpgrade(waitingForUpgradingList,tenantId);
|
|
|
+ tenantService.completeUpgrade(tenantId,1L);
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error(e.getMessage());
|
|
|
+ return error("错误请联系管理员");
|
|
|
+ }finally {
|
|
|
+ lock.unlock();
|
|
|
+ }
|
|
|
|
|
|
- List<BizWorkOrder> waitingForUpgradingList = bizWorkOrderService.lambdaQuery().eq(BizWorkOrder::getTenantId,tenantId).list();
|
|
|
- bizWorkOrderUpdateService.workerUpgrade(waitingForUpgradingList,tenantId);
|
|
|
- return success(message);
|
|
|
+ return success(message);
|
|
|
}
|
|
|
@Log(title = "基础版升级", businessType = BusinessType.OTHER)
|
|
|
@PreAuthorize("@ss.hasPermi('business:upgrade:order:list')")
|
|
|
@PostMapping("/order/checkWorkOrder")
|
|
|
public AjaxResult checkWorkOrder(){
|
|
|
-
|
|
|
- Long count = bizWorkOrderService.query().eq("contract_id",0).eq("tenant_id",getTenantId()).count();
|
|
|
- if (null!= count && count > 0L) {
|
|
|
+ BizWorkOrderUpdate query = new BizWorkOrderUpdate();
|
|
|
+ query.setTenantId(getTenantId());
|
|
|
+ query.setType(1);
|
|
|
+ Long count = bizWorkOrderUpdateService.getToUpLoadCount(query);
|
|
|
+ if (null != count && count>0L) {
|
|
|
return success("false");
|
|
|
}
|
|
|
return success("false");
|